GetGameOutcomesResponse
- cohortsType: array object[] · GameOutcomesCohort[]required
Entry-cohort funnels for recent ISO weeks, oldest first
- cohortType: string
Start Date requiredMonday (UTC) of the cohort week as YYYY-MM-DD
- isoType: string
Week requiredISO week label of the entry cohort, e.g. 2026-W32
- skillsType: array object[] · SkillOutcomesFunnel[]required
- computedType: string Format: date-time
At requiredWhen this aggregate was computed from the outcome store
- coursesType: array object[] · CourseOutcomesFunnel[]required
One row per CASE course with qualified starts; course = skill 1:1 via SKILL_TO_COURSE_MAP — a re-key of the matching cumulative skill row, not an aggregation
- courseType: string
Display Name required - courseType: string
Id required - effortType: object
Before Inactivity requiredEffort invested by qualified starts that never mastered and have been inactive for at least the resolution window — the funnel’s Quit population (inactiveBeforeAssessment + inactiveWhileLearning). Calendar days span entry to last observed activity on this course row
- enteredType: object · OutcomeCount
With Mastery requiredStudents whose TimeBack roster lookup resolved a platformId
- inactiveType: object · OutcomeCount
Before Assessment requiredStudents whose TimeBack roster lookup resolved a platformId
- inactiveType: object · OutcomeCount
While Learning requiredStudents whose TimeBack roster lookup resolved a platformId
- pendingType: object · OutcomeCount
Assessment requiredStudents whose TimeBack roster lookup resolved a platformId
- pendingType: object · OutcomeCount
Learning requiredStudents whose TimeBack roster lookup resolved a platformId
- reached
Mastery requiredAchieved: qualified starts that are not tested out and hold a mastery anywhere
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- timeType: object
To Mastery required
- cumulativeType: array object[] · SkillOutcomesFunnel[]required
All-time funnel per catalog skill
- denominatorrequired
Mastery achieved plus inactive: the resolved population the game is accountable for
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- enteredType: object · OutcomeCount
With Mastery requiredStudents whose TimeBack roster lookup resolved a platformId
- inactiverequired
Qualified, non-tested-out, unmastered starts with no activity in this game for 14 or more days
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- mastered
Elsewhere requiredCross-game influence stays visible instead of modeled away
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- masteredType: object · OutcomeCount
In This Game requiredStudents whose TimeBack roster lookup resolved a platformId
- mastery
Achieved requiredQualified starts that are not tested out and hold a mastery for that (player, skill) anywhere — the success-rate numerator
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- masteryType: object · OutcomeCount
Earned requiredStudents whose TimeBack roster lookup resolved a platformId
- masteryType: object · OutcomeCount
From Placement requiredStudents whose TimeBack roster lookup resolved a platformId
- pendingrequired
Qualified, non-tested-out, unmastered starts with activity in this game inside 14 days
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- placementType: object · OutcomeCount
Completed requiredStudents whose TimeBack roster lookup resolved a platformId
- placement
Started requiredPlayers whose placing run started in this game (player grain: retries are one start)
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- placement
Yield Rate requiredPlayers with a recorded placing-run start who finished one, over players with a recorded start. Counts every completion including low-confidence ones placementCompleted excludes; null while no started rows exist
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: number | nullmin:0max:1required
- players
Started requiredQualified starts: at least 60 seconds of measured active play in this game, or a placement or mastery milestone here
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- reached
Mastery requiredQualified starts who mastered the skill in any game — includes players who tested out, and so is a superset of masteryAchieved. Mastery is a property of the student, not of the game that hosted the final session
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- skillType: string
Display Name required - skillType: string
Group requiredDisplay-group identifier from the skill catalog
- skillType: string
Id required - success
Rate requiredmasteryAchieved ÷ denominator; null when the denominator is 0. Pending is in neither term
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: number | nullmin:0max:1required
- timeType: object
To Mastery required
- gameType: string
Id required - overallType: object
Effort Before Inactivity requiredPooled over all quit {student, course} pairs in this game; not derivable from the per-course distributions because percentiles are not additive
- calendarType: object · OutcomeDistribution
Days required - playType: object · OutcomeDistribution
Hours required
- overallType: object
Time To Mastery requiredPooled over all mastered {student, course} pairs in this game; not derivable from the per-course distributions
- calendarType: object · OutcomeDistribution
Days required - playType: object · OutcomeDistribution
Hours required
- playersType: integer
Excluded min:0requiredOutcome rows dropped by the test/canary account exclusion rules
- populationType: object · GameOutcomesPopulationrequired
Student-grain population composition; while cold is 0 the whole response carries the program-affiliated caveat
- coldrequired
Students who arrived outside the program roster (public-link sign-ups). While 0, every rate in this response describes a program-affiliated population only
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- programType: object · OutcomeCount
Affiliated requiredStudents whose TimeBack roster lookup resolved a platformId
- unclassifiedrequired
Students with no population stamp: rows written before instrumentation, or roster lookups that did not resolve
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- startingType: object · StartingLineYield
Line Yield requiredQualified starts converting to a completed placement within the window, per population, with its decision bars
- barsType: objectrequired
Decision bars served beside the rate so consumers never hardcode them
- coldType: object · OutcomeRaterequired
Qualified cold starts completing placement within the window; null below the minimum sample of 20 starts
- program
Affiliated requiredSame rate for the program-affiliated population; the sample gate applies per population
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: number | nullmin:0max:1required
- windowType: integer
Days greater than:0requiredWhole UTC calendar days from first entry (startedAt, inclusive) within which placement must complete
- verdictType: object · VerdictContradiction
Contradiction requiredPlacement-credited facts missed at first practice exposure, over the rolling window of newest honest placements
- barType: number
Rate min:0max:1requiredContradiction rate above this means placement over-credits on its own stated terms
- exposuresrequired
First practice exposures of placement-credited facts, pooled over the window
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- missesrequired
Those first exposures answered incorrectly, pooled over the window
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- placements
In Window requiredHonest placements with first-practice evidence currently in the window; explains a null rate ("45 of 50")
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: integer | nullmin:0required
Integer numbers.
- raterequired
misses ÷ exposures; null until the window holds rollingPlacements placements
- availabilityType: string enumrequired
Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero
values- measured
- awaiting
_instrumentation
- blockedType: string | null
By Url required - valueType: number | nullmin:0max:1required
- rollingType: integer
Placements greater than:0requiredConfigured window size (newest honest placements)
