GetGameOutcomesResponse

  • cohorts
    Type: array object[] · GameOutcomesCohort[]
    required

    Entry-cohort funnels for recent ISO weeks, oldest first

    • cohortStartDate
      Type: string
      required

      Monday (UTC) of the cohort week as YYYY-MM-DD

    • isoWeek
      Type: string
      required

      ISO week label of the entry cohort, e.g. 2026-W32

    • skills
      Type: array object[] · SkillOutcomesFunnel[]
      required
  • computedAt
    Type: string Format: date-time
    required

    When this aggregate was computed from the outcome store

  • courses
    Type: 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

    • courseDisplayName
      Type: string
      required
    • courseId
      Type: string
      required
    • effortBeforeInactivity
      Type: object
      required

      Effort 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

    • enteredWithMastery
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • inactiveBeforeAssessment
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • inactiveWhileLearning
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • pendingAssessment
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • pendingLearning
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • reachedMastery
      required

      Achieved: qualified starts that are not tested out and hold a mastery anywhere

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • timeToMastery
      Type: object
      required
  • cumulative
    Type: array object[] · SkillOutcomesFunnel[]
    required

    All-time funnel per catalog skill

    • denominator
      required

      Mastery achieved plus inactive: the resolved population the game is accountable for

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • enteredWithMastery
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • inactive
      required

      Qualified, non-tested-out, unmastered starts with no activity in this game for 14 or more days

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • masteredElsewhere
      required

      Cross-game influence stays visible instead of modeled away

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • masteredInThisGame
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • masteryAchieved
      required

      Qualified starts that are not tested out and hold a mastery for that (player, skill) anywhere — the success-rate numerator

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • masteryEarned
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • masteryFromPlacement
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • pending
      required

      Qualified, non-tested-out, unmastered starts with activity in this game inside 14 days

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • placementCompleted
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • placementStarted
      required

      Players whose placing run started in this game (player grain: retries are one start)

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • placementYieldRate
      required

      Players 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

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: number | null
        min:  
        0
        max:  
        1
        required
    • playersStarted
      required

      Qualified starts: at least 60 seconds of measured active play in this game, or a placement or mastery milestone here

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • reachedMastery
      required

      Qualified 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

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • skillDisplayName
      Type: string
      required
    • skillGroup
      Type: string
      required

      Display-group identifier from the skill catalog

    • skillId
      Type: string
      required
    • successRate
      required

      masteryAchieved ÷ denominator; null when the denominator is 0. Pending is in neither term

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: number | null
        min:  
        0
        max:  
        1
        required
    • timeToMastery
      Type: object
      required
  • gameId
    Type: string
    required
  • overallEffortBeforeInactivity
    Type: object
    required

    Pooled over all quit {student, course} pairs in this game; not derivable from the per-course distributions because percentiles are not additive

    • calendarDays
      Type: object · OutcomeDistribution
      required
    • playHours
      Type: object · OutcomeDistribution
      required
  • overallTimeToMastery
    Type: object
    required

    Pooled over all mastered {student, course} pairs in this game; not derivable from the per-course distributions

    • calendarDays
      Type: object · OutcomeDistribution
      required
    • playHours
      Type: object · OutcomeDistribution
      required
  • playersExcluded
    Type: integer
    min:  
    0
    required

    Outcome rows dropped by the test/canary account exclusion rules

  • population
    Type: object · GameOutcomesPopulation
    required

    Student-grain population composition; while cold is 0 the whole response carries the program-affiliated caveat

    • cold
      required

      Students who arrived outside the program roster (public-link sign-ups). While 0, every rate in this response describes a program-affiliated population only

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • programAffiliated
      Type: object · OutcomeCount
      required

      Students whose TimeBack roster lookup resolved a platformId

    • unclassified
      required

      Students with no population stamp: rows written before instrumentation, or roster lookups that did not resolve

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

  • startingLineYield
    Type: object · StartingLineYield
    required

    Qualified starts converting to a completed placement within the window, per population, with its decision bars

    • bars
      Type: object
      required

      Decision bars served beside the rate so consumers never hardcode them

    • cold
      Type: object · OutcomeRate
      required

      Qualified cold starts completing placement within the window; null below the minimum sample of 20 starts

    • programAffiliated
      required

      Same rate for the program-affiliated population; the sample gate applies per population

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: number | null
        min:  
        0
        max:  
        1
        required
    • windowDays
      Type: integer
      greater than:  
      0
      required

      Whole UTC calendar days from first entry (startedAt, inclusive) within which placement must complete

  • verdictContradiction
    Type: object · VerdictContradiction
    required

    Placement-credited facts missed at first practice exposure, over the rolling window of newest honest placements

    • barRate
      Type: number
      min:  
      0
      max:  
      1
      required

      Contradiction rate above this means placement over-credits on its own stated terms

    • exposures
      required

      First practice exposures of placement-credited facts, pooled over the window

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • misses
      required

      Those first exposures answered incorrectly, pooled over the window

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • placementsInWindow
      required

      Honest placements with first-practice evidence currently in the window; explains a null rate ("45 of 50")

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: integer | null
        min:  
        0
        required

        Integer numbers.

    • rate
      required

      misses ÷ exposures; null until the window holds rollingPlacements placements

      • availability
        Type: string enum
        required

        Whether this funnel stage is instrumented; unmeasured stages present as "not measured yet", never zero

        values
        • measured
        • awaiting_instrumentation
      • blockedByUrl
        Type: string | null
        required
      • value
        Type: number | null
        min:  
        0
        max:  
        1
        required
    • rollingPlacements
      Type: integer
      greater than:  
      0
      required

      Configured window size (newest honest placements)