Faculty Resources / Data dictionary

Telemetry Data Dictionary

Open Answer Analysis to see the answer choices behind current CSV records. Files stay in your browser.

Turn game-data rows into useful instructional questions.

All 88 columns in the current public and classroom Managerial Download Game Data CSV. Reviewed October 13, 2026. Public polished games, including Managerial Intelligence Directorate, Economic Realm, Macro Command System, and Micro Domains, remain local-only for telemetry for now. Supported gameplay records stay on the device unless deliberately downloaded and submitted; downloading a CSV does not transmit or submit it. Private or class-specific builds, including Composer-generated games, can transmit anonymous gameplay and interaction data only when the instructor/deployer explicitly enables collection. Collection is OFF by default. Ordinary collection is operational/instructional/product analytics, not research by default. Separately designated research requires its own institutional decisions and dataset handling. Other games, Composer exports, and older versions can have different fields.

Start with these fields

For collection settings, interpretation and file custody, read Responsible Telemetry Use and your data choices.

Play or test a game → choose Download Game Data from its report → open the CSV in a spreadsheet → filter and analyze. Local exports contain the selected run's retained browser records (up to 1,500); they are not a class roster or a complete cross-device history.

First group by game and runID, then filter event to question. Start with these 12 fields:

Compare correctness and timing by concept or objective to find material worth revisiting. For run-level accuracy, switch to the run's summary row; accuracy is a fraction (0.8 = 80%). Small samples and repeated exposure limit conclusions.

Timing: elapsed, visible, hidden

For newly measured response rows, responseTimeMs ≈ activeResponseTimeMs + hiddenTimeMs. “Active” means the document was visible, not that the student was attentive. Visible graph or modal time remains included.

Illustrative example: a 12-second response

7 seconds visible5 seconds hidden

responseTimeMs = 12000
activeResponseTimeMs = 7000
hiddenTimeMs = 5000
tabSwitchCount = 1

Assume one visible → hidden → visible trip. The final return-to-answer duration is timeAfterReturnMs; it is blank if no return occurred or the page is still hidden.

Do not add hiddenTimeMs and unfocusedTimeMs. Visibility and window focus are independent and can overlap. A window can lose focus while the page stays visible. Focus fields measure blur, time unfocused, and time since final refocus.

Version boundary: a populated activeResponseTimeMs identifies the new measurement. Older rows retain their original gameplay responseTimeMs. On new rows, gameplayResponseTimeMs preserves that original engine value. Menu/Continue starts a fresh view interval; response timing is not an uninterrupted lifetime clock.

Exam review: committed question rows aggregate recorded views of that question/room. Durations and counts accumulate; selection maxima use the maximum and region flags use “any.” Return/refocus durations come from the last recorded view, and are blank if that view had no qualifying return. Copy timing retains the latest copied view's offsets.

Choose the right event rows

Local Download Game Data: use event = question for accepted response analysis. A repeated question can represent another attempt, so do not deduplicate by questionID alone. rapid_guessing records rejected rapid attempts; examine these separately.

Exam exam_answer_initial and exam_answer_revision rows describe drafts. Committed answers appear as question with adaptiveMode = exam-commit. Do not combine draft rows with committed answers or use draft correct = 0 as incorrect performance. Completion and early-ending rows describe runs, not individual answers.

Separate path: anonymous aggregate collection

Explicitly enabled anonymous collection uses a different envelope and field names. It can repeat a response snapshot across answer_submitted, answer_evaluated, and feedback_shown. For that export, normally use answer_evaluated and restrict to accepted attempts when analyzing accepted responses. Counting all three triples the same response. That recommendation does not change the local CSV's question filter.

Aggregate build/schema IDs, sequence numbers and graph indicators are not additional columns in this local 88-field dictionary. Ordinary faculty downloads need no server tools or administrative credentials.

Behavior is interaction evidence, not proof of intent

A tab switch, long hidden interval, rapid response, selection, or copy action is not proof of cheating. Use patterns to understand engagement, compare visible and elapsed work time, investigate unusual attempts in context, improve assessment design, or support appropriate research. There is no automatic misconduct score.

The selection/copy tracker records settled selection counts, the largest selected character count, question/answer region flags, relevant copy counts, and timing to subsequent hide or blur. It inspects relevant DOM selection transiently to calculate these measurements.

This tracker does not store selected or copied text, read clipboard contents, or collect keystrokes, screen contents, unrelated-tab URLs, or browser history. This describes the behavioral tracker, not all data on the website. The CSV also contains question metadata and run identifiers; the separate anonymous collection uses random persistent client/run identifiers. See the privacy information for broader context.

Explore all 88 fields

Use the categories or search. Technical fields are last. On narrow screens, scroll each table sideways to read all columns; keyboard users can focus the table region and use arrow keys. Definitions describe the current Managerial local export; absent artifact, boss, mastery-detail, or graph-indicator columns are not invented here.

88 fields shown.

Build authorization is separate from measurement

You can choose to collect anonymous gameplay data when you create a game with the official Mastery Quests Composer. Collection is OFF by default. To send data, the game must be published on a supported HTTPS website. Permission to send data lasts 365 days for each generated game. Collection stops if that permission expires or is withdrawn, or if a player turns it off in their browser. Players can still play and download their game data. Data already received stays subject to the separate 730-day retention policy.

A game opened directly from a file on your computer can be played and can save a CSV, but it cannot send gameplay data to Mastery Quests. Publish the same file on a supported HTTPS website to enable collection while its permission is valid. Your LMS or network may still block data collection, so test the game the way students will open it. Anonymous records cannot confirm who played or reliably link the same player across different websites.

The National Engine uses an older data-collection setup. Check its own notice for details.

Capability digests, build scope, issuance, expiry and revocation metadata are server authorization controls, not new learner measurement fields. Raw capabilities are not analytical fields or CSV columns. HTTPS transport permission alone does not authorize collection. The measurement, governance and disclosure contract versions remain unchanged.

Which export version do I have?

Column counts vary by game family and release. The header identifies the format; older files keep their original measurements. A blank value indicates unavailable data.

ExportColumnsCoverage
Retained See It in Action demonstration41Historical sample, without answer snapshots
Historical Managerial75Before measurement contract metadata; still older exports used 57
Managerial measurement contract 187Before answer snapshots
Current Managerial local88Public and classroom exports including answerSnapshotJSON
Current Composer, Economic Realm and Macro local117Previously 116 before answer snapshots
Current Micro local70Includes answer snapshots; some timing measures are unavailable
Current private admin export82Previously 81 before the flattened answer snapshot field

The October 13 answers2 tracker saves version 2 snapshots inside the existing column. Version 2 includes game identity, available learning-objective metadata and correct choices for accepted answers. Version 1 preserves wording and selected choices without a key. Older files without snapshots cannot supply question wording or answer distributions. Class Answer Analysis reports these limitations.

Run information

Run information — 17 fields
Field / typeMeaning / when populatedInterpretation / caution
runIDtextLocal run identifier shared by rows from one run.

When: All events

Values: Game-supplied text

Group by game and runID; this is not a student identifier.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

gametextGame title recorded by the game.

When: All events

Values: Game-supplied text

Use with questionID because IDs are game-specific.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

modetextInternal game-mode name.

When: All events

Values: standard, timed, exam, score, practice, legendary, quiz, fadingFortune, riskReward and other supported modes

A trailing -complete suffix is removed; use event to identify completion.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

eventtextThe action represented by this row.

When: All events

Values: question, rapid_guessing, start, resume, exam_answer_initial, exam_answer_revision, completion and mechanic events

Use question for accepted responses. See event guidance below.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

timestampISO timestampTime the local record was saved, in UTC.

When: All events

Values: ISO 8601 date/time

Exam commits are recorded at commitment, not necessarily initial selection.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

contractIDtextTechnical / QAVersioned measurement contract identity.

When: See stream-specific contract applicability

Values: mq-measurement/1; unknown future values require a newer validator.

mq-measurement/1; unknown future values require a newer validator.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

manifestIDtextTechnical / QASHA-256 reference to the immutable analytical run segment manifest.

When: See stream-specific contract applicability

Values: Resolve from export_manifest rows in local CSV or run_manifest in the private stream.

Resolve from export_manifest rows in local CSV or run_manifest in the private stream.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

provenanceStatustextTechnical / QAWhether the row was stamped in a measured segment, a resumed segment, or lacks a resolved context.

When: See stream-specific contract applicability

Values: A resume-segment label does not assign the current build to earlier answers.

A resume-segment label does not assign the current build to earlier answers.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

presentationIDtextTechnical / QAIdentifier for the observed question view.

When: See stream-specific contract applicability

Values: A revisit has a new presentation; exam views may share one attempt. Missing legacy views stay unknown.

A revisit has a new presentation; exam views may share one attempt. Missing legacy views stay unknown.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

attemptIDtextTechnical / QAIdentifier joining presentation and draft/revision records to an accepted outcome.

When: See stream-specific contract applicability

Values: Local event=question or anonymous answer_evaluated with acceptedAttempt determines an accepted response, not the existence of this identifier.

Local event=question or anonymous answer_evaluated with acceptedAttempt determines an accepted response, not the existence of this identifier.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

canonicalSelectedIndexintegerTechnical / QAZero-based position of the selected option in the versioned authoring bank before display shuffling.

When: See stream-specific contract applicability

Values: selectedIndex remains the displayed position. No answer text or key is added.

selectedIndex remains the displayed position. No answer text or key is added.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Option zero is the first canonical option; local sequences start at one.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

localSequenceintegerTechnical / QACreation sequence scoped to this local run and measurement segment history.

When: See stream-specific contract applicability

Values: Independent of the private sequenceNumber. Missing historical sequence values cannot be reconstructed.

Independent of the private sequenceNumber. Missing historical sequence values cannot be reconstructed.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Option zero is the first canonical option; local sequences start at one.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

manifestJSONJSON textTechnical / QAAllowlisted analytical configuration and artifact fingerprints, included once per referenced segment in the CSV.

When: export_manifest (local), run_manifest (private)

Values: Only export_manifest / private run_manifest rows carry it. No titles, names, custom URLs, question text or answer keys.

Only export_manifest / private run_manifest rows carry it. No titles, names, custom URLs, question text or answer keys.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

deliveryQualityJSON textTechnical / QAJSON containing observed storage failures, truncation or private queue outcomes.

When: See stream-specific contract applicability

Values: Counts describe observed delivery limits, not lossless delivery or intentional abandonment.

Counts describe observed delivery limits, not lossless delivery or intentional abandonment.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

supportJSONJSON textTechnical / QAResponse-time snapshot of displayed hint, artifact and mode option removal, canonical removed options, and remaining count.

When: Question responses and exam drafts/commitments

Values: Exam commitment uses its last draft snapshot. Hint display and link activation do not establish reading or learning.

Exam commitment uses its last draft snapshot. Hint display and link activation do not establish reading or learning.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

originAttemptIDtextTechnical / QAObserved originating miss for an active repair, bridge or retest sequence.

When: See stream-specific contract applicability

Values: Blank when no originating measured miss is available; never infer an old attempt identity.

Blank when no originating measured miss is available; never infer an old attempt identity.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

resourceIDtextTechnical / QAStable authoring resource identifier on an observed recommendation or link activation.

When: resource_offered, resource_activated

Values: resource_activated observes activation only, not PDF loading, reading or improvement.

resource_activated observes activation only, not PDF loading, reading or improvement.

Blank: Unknown, not collected historically, or inapplicable for this event. Do not replace with zero.

Zero: Not a numeric measurement.

Use the original row contract and event filter; metadata is not evidence of attention, misconduct or identity.

Question and content

Question and content — 6 fields
Field / typeMeaning / when populatedInterpretation / caution
roomintegerGame room or section position attached to the event.

When: Question-related events; defaults on other rows

Values: Numeric value

Context may remain on non-question rows; not a unique question ID.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

questionIDtext or numberStable question identifier within its game.

When: Question-related events; defaults on other rows

Values: Numeric or alphanumeric identifiers; preserve the original value.

Combine game identity and question revision when grouping. Matching IDs alone do not establish matching questions.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

difficultytextSupplied question difficulty, current-question fallback, or mode fallback.

When: Question-related events; defaults on other rows

Values: Game difficulty label or blank

May describe the current question on unrelated events; compare within the same game.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

tagtextQuestion concept/tag label.

When: Question-related events; defaults on other rows

Values: Game-supplied text

Group accepted responses by concept; empty on many lifecycle rows.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

typetextQuestion's instructional type label.

When: Question-related events; defaults on other rows

Values: Game-supplied text

Use accepted question rows; this is not a graph-required flag.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

objectivetextLearning objective supplied or inferred for the question.

When: Question-related events; defaults on other rows

Values: Game-supplied text

Use for instructional grouping; names may vary across games.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Response and performance

Response and performance — 8 fields
Field / typeMeaning / when populatedInterpretation / caution
selectedIndexinteger indexSelected answer option, counted from zero.

When: question and rapid_guessing; see individual notes

Values: -1 or nonnegative option index

0 is the first option; -1 means no selected index supplied. Exam drafts can contain a choice.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

correct0/1 indicatorWhether the response was correct.

When: question and rapid_guessing; see individual notes

Values: 0 or 1

Use question rows. Other event types, including exam drafts and completion, normalize to 0; these are not incorrect answers.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

rapidGuessing0/1 indicatorWhether the response was flagged as a rapid guess.

When: question and rapid_guessing; see individual notes

Values: 0 or 1

rapid_guessing rows are rejected attempts; do not include them as accepted question responses. A flag is not evidence of intent.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

attemptinteger countGame's cumulative attempt counter at the event.

When: question and rapid_guessing; see individual notes

Values: Numeric value

Not a per-question attempt number; also supplied on summaries. Defaults to 0 when omitted.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

streakinteger countCurrent consecutive-correct streak recorded by the engine.

When: question and rapid_guessing; see individual notes

Values: Numeric value

Timing of the snapshot follows the event producer; not the run maximum.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

scorenumber, pointsCurrent mode score or bankroll supplied by the game.

When: question and rapid_guessing; see individual notes

Values: Numeric value

Risk & Reward uses bankroll; Fading Fortune uses its score. Other rows may fall back to Score Attack state; compare like modes only.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

bestScorenumber, pointsStored Score Attack best score.

When: question and rapid_guessing; see individual notes

Values: Numeric value

May carry prior-run/browser state even in other modes; not this run's maximum score.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

elapsedTimeMsmillisecondsRun elapsed time supplied at the event.

When: question and rapid_guessing; see individual notes

Values: Numeric value

Completion events use supplied totalTime; other events use supplied elapsedTime. Zero is a default when omitted; distinct from response duration.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Adaptive and remediation

Adaptive and remediation — 4 fields
Field / typeMeaning / when populatedInterpretation / caution
adaptiveModetextAdaptive context label supplied by the event or current engine state.

When: Question-related events and current game-state fallbacks

Values: Game-supplied text

Includes exam-commit and completion labels; this is not a numerical mastery estimate.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

remediationStagetextExplicit remediation stage or current active-remediation stage.

When: Question-related events and current game-state fallbacks

Values: Stage label such as repair, bridge, retest, or blank

Blank commonly means no active stage. Do not infer a separate exported boss or bridge column.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

priorExposureCountinteger countEarlier stored question or rapid_guessing rows for the same questionID in this local run.

When: Question-related events and current game-state fallbacks

Values: Numeric value

Scoped to retained local run records: prior question and rapid_guessing rows, not lifetime learner exposure or every view. Truncated history can undercount.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

firstExposure0/1 indicator1 when a positive questionID has no earlier stored response rows in this run.

When: Question-related events and current game-state fallbacks

Values: 0 or 1

Scoped to retained local run records: prior question and rapid_guessing rows, not lifetime learner exposure or every view. Truncated history can undercount.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Run completion

Run completion — 5 fields
Field / typeMeaning / when populatedInterpretation / caution
totalTimeMsmillisecondsTotal run duration supplied by the summary producer.

When: Run summary events: complete, mode completions, early endings or busts where supplied

Values: Numeric value

Not a sum of response times; also populated on early-ending summaries.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

accuracyfraction 0–1Run accuracy supplied as a proportion.

When: Run summary events: complete, mode completions, early endings or busts where supplied

Values: 0–1

0.8 means 80%; format as a percentage in a spreadsheet. Non-summary rows default to 0; this is not objective-level mastery.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

maxStreakinteger countLongest correct-answer streak reported for the run.

When: Run summary events: complete, mode completions, early endings or busts where supplied

Values: Numeric value

Use summary rows; other events default to 0.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

totalAttemptsinteger countTotal attempts reported in the run summary.

When: Run summary events: complete, mode completions, early endings or busts where supplied

Values: Numeric value

Use the same summary's accuracy; do not sum this cumulative value across rows.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

verificationCodetextGame-generated completion/report code.

When: Run summary events: complete, mode completions, early endings or busts where supplied

Values: Game-supplied text

Helps compare a report with its local export; not secure identity verification.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Fading Fortune

Fading Fortune — 8 fields
Field / typeMeaning / when populatedInterpretation / caution
fadingFortuneScorenumber, pointsCumulative points earned for correct Fading Fortune answers.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

Available on responses and summaries; compare within this mode.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneQuestionValuenumber, pointsPoints available for the question at response.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: 100, 75, 50, 25; 0 default elsewhere

Value can decrease as answer options fade.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneFadeCountinteger countNumber of fades recorded for this question.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

Zero on a measured mode response means no fade.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneIntervalMsmillisecondsConfigured interval between question fades.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

Game-mechanic timer, not measured response time.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortunePausedDurationMsmillisecondsPaused time accumulated by the Fading Fortune gameplay timer.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

Not hiddenTimeMs; visible pauses may be included in telemetry time.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneMaxScorenumber, pointsSummary maximum: question target multiplied by 100.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

A theoretical target, not observed score; summary only.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneAverageValuenumber, pointsRounded average available question value across completed questions.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Numeric value

Includes incorrect answers; not average points earned. Summary only.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

fadingFortuneDistributionJSON textSummary counts of answered questions at each available point value.

When: Fading Fortune response rows; summary fields only on Fading Fortune run summaries

Values: Object keyed by 100, 75, 50, 25

Includes correct and incorrect answers. Blank outside supplied summaries.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Risk & Reward

Risk & Reward — 16 fields
Field / typeMeaning / when populatedInterpretation / caution
riskRewardBankrollBeforenumber, pointsBankroll before the current wager.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Use response rows; wager-committed events do not supply this exported field under this name.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardWagerAmountnumber, pointsPoints staked on the current question.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Use response rows; do not assume the wager-committed event populates this column.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardWagerPercentpercentage 0–100Rounded percentage of bankroll chosen for the wager.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

25 means 25%, not 0.25.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardWagerTiertextWager tier label for the selected fraction.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: 10%, 25%, 50%, ALL IN; blank elsewhere

Tier is a game choice, not a measure of student risk preference.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardBankrollAfternumber, pointsBankroll after answer settlement.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Rejected rapid guesses can precede settlement; use accepted question rows.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardAllIn0/1 indicatorWhether the current wager used essentially the entire bankroll.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: 0 or 1

Use response rows in this mode; 0 elsewhere may be a default.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardStartingBankrollnumber, pointsStarting bankroll supplied in the run summary.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; game points, not money.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardFinalBankrollnumber, pointsBankroll remaining at the run summary.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; 0 may mean a bust in this mode.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardNetnumber, pointsFinal bankroll minus starting bankroll.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; negative values represent a net loss.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardPeakBankrollnumber, pointsHighest bankroll recorded during the run.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; not final bankroll.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardLargestWagernumber, pointsLargest single wager committed in the run.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; not a total of wagers.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardAllInAttemptsinteger countCount of all-in wagers committed.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; counts wager choices, not necessarily distinct completed questions.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardBusted0/1 indicatorWhether the run summary reports a bust.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: 0 or 1

Use this mode's summary event; unrelated rows default to 0.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardQuestionsCompletedinteger countNumber of questions completed in the wager run.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; may be below the target after early ending or bust.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardTargetinteger countPlanned question count for the wager run.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Numeric value

Summary only; not the observed completion count.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Interpret only for the stated events and mode; defaults are not evidence of performance.

riskRewardWagerDistributionJSON textSummary count of committed wagers by tier.

When: Risk & Reward response rows; run-level fields only on Risk & Reward summaries

Values: Object keyed by 10%, 25%, 50%, ALL IN

Counts choices; not correctness or an intent score.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Interpret only for the stated events and mode; defaults are not evidence of performance.

Visibility and focus

Visibility and focus — 8 fields
Field / typeMeaning / when populatedInterpretation / caution
responseTimeMsmillisecondsTotal elapsed telemetry response interval on newly measured rows.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Includes hidden time and visible modal/graph time. Legacy rows retain gameplay timing: require nonblank activeResponseTimeMs for current semantics.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent. Older rows preserve different gameplay-clock semantics.

activeResponseTimeMsmillisecondsResponse interval spent with the document visible.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Visible is not proof of attention; window focus is separate.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

hiddenTimeMsmillisecondsAccumulated time the document was hidden.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Includes a still-open hidden interval at submission; capped at total interval.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

tabSwitchCountinteger countDistinct visible-to-hidden transitions during the interval.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

A hidden document does not reveal destination or reason; starting hidden does not count as a switch.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

timeAfterReturnMsmillisecondsTime from final return to visibility until submission.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Blank if never returned or still hidden. Exam aggregates follow the view aggregation rules below.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

focusLossCountinteger countDistinct window blur transitions.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Window focus loss can occur while the document remains visible.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

unfocusedTimeMsmillisecondsAccumulated time between window blur and refocus.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Can overlap hiddenTimeMs; never add the two to calculate time away.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

timeAfterFocusMsmillisecondsTime from final window refocus until submission.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Blank if never refocused or still unfocused.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

Selection and copy

Selection and copy — 10 fields
Field / typeMeaning / when populatedInterpretation / caution
selectionCountinteger countSettled nonempty selections intersecting question or answer text.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Uses a 250ms settle delay and flush at submission; not every selection-change signal.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

maxSelectedCharsinteger countLargest trimmed relevant selection length.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

JavaScript UTF-16 string length; not bytes or necessarily visible character count. No selected text is stored.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

questionSelected0/1 indicatorWhether a relevant selection intersected question text.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: 0 or 1

1 means observed at least once; not how much was read.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

answersSelected0/1 indicatorWhether a relevant selection intersected answer text.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: 0 or 1

1 means observed at least once.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

copyCountinteger countCopy events with a nonempty relevant selection.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Does not confirm clipboard success, paste destination, or intent.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

questionCopied0/1 indicatorWhether a relevant copy intersected question text.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: 0 or 1

No copied text or clipboard content is stored by this tracker.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

answersCopied0/1 indicatorWhether a relevant copy intersected answer text.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: 0 or 1

No destination is observed.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

lastCopyElapsedMsmillisecondsLatest relevant copy's offset from the response-view start.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Blank if no relevant copy. Exam commits retain the last copied view's offset, not an offset from exam start.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

timeCopyToHideMsmillisecondsTime from latest relevant copy to its first subsequent hide.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Blank until that transition follows the latest copy; a new copy clears the previous relationship.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

timeCopyToBlurMsmillisecondsTime from latest relevant copy to its first subsequent window blur.

When: Measured question, rapid_guessing, exam_answer_initial/revision rows; exam-commit question rows aggregate views

Values: Numeric value

Blank until that transition follows the latest copy; not a suspicious-behavior threshold.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

Technical / QA

Technical / QA — 5 fields
Field / typeMeaning / when populatedInterpretation / caution
eventIDtextTechnical / QAUnique ID assigned to this local event record.

When: All events unless noted

Values: UUID or local fallback identifier

Useful for identifying duplicate exported records; not a student ID.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Used for troubleshooting; does not establish learning or identity.

telemetryVersiontextTechnical / QAMeasurement implementation label stamped when the row is created.

When: All events unless noted

Values: mq-tracker-2026.10.13-answers2 for current rows; original labels for historical rows.

answers1 introduced the snapshot column; answers2 adds snapshot version 2 without adding CSV columns. Earlier contract1 Managerial exports have 87 columns; historical v5-engine2 labels were reused across 57- and 75-column exports.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Used for troubleshooting; does not establish learning or identity.

gameVersiontextTechnical / QAVersion label embedded in the game HTML.

When: All events unless noted

Values: Game-supplied text

Does not separately identify the private telemetry adapter version.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: Not a numeric measure.

Used for troubleshooting; does not establish learning or identity.

questionVersionintegerTechnical / QASupplied question version, current-question version, or default 1.

When: All events unless noted

Values: Numeric value

Fallback can appear without a question; not a guarantee of content identity.

Blank: Unavailable in older data or not supplied; see event and mode.

Zero: May be an unused default outside the stated events/mode; within those events, zero is the recorded value.

Used for troubleshooting; does not establish learning or identity.

gameplayResponseTimeMsmillisecondsTechnical / QAOriginal game-engine responseTimeMs preserved on newly measured rows.

When: All events unless noted

Values: Numeric value

Measured response events only; legacy/non-response cells are blank. Can differ from telemetry responseTimeMs, especially with gameplay pauses.

Blank: Not measured, not applicable, older row, or a required return/copy/transition has not occurred.

Zero: Measured zero duration/count or false indicator; does not mean unavailable.

Interaction evidence is not proof of attention or intent.

Answer choices

Answer choices — 1 fields
Field / typeMeaning / when populatedInterpretation / caution
answerSnapshotJSONJSON textSaved question wording, options, selected choice, revision and available learning-objective metadata. Version 2 adds the authoritative correct option after an accepted answer.

When: Local accepted answers, rapid guesses and exam drafts/revisions; private answer_evaluated events. Blank on lifecycle events.

Values: mq-answer-snapshot/2: prior version 1 fields plus gameID, objectiveID, objectiveLabel and correctOptionIndices (zero-based option positions, or null when unavailable). Version 1 remains supported without an answer key.

The revision includes game identity, wording and option order. Original order requires a reliable shuffle mapping; otherwise optionOrder is displayed. Exact objective identifiers and labels are retained. Exam commits preserve the final saved selection and use that room’s question key.

Blank: Older record, unavailable question content or selection, or content too large to record.

Zero: A selectedIndex of zero means the first option in the snapshot.

Correct options are saved only for accepted answers; drafts and rapid guesses carry no key. Conflicting keys for one revision are flagged for review. Authored choices contain no typed learner input or clipboard contents. Historical content is never reconstructed from current banks.