GameBooth — Operating System
Canonical source: model/ in the repo. Generated 2026-08-20 12:42 UTC.
Aggregates and pseudonymous IDs only.
How this model changes
This page is generated — nothing on it is editable, and the retired
Google Sheet is not the model anymore. Every number here derives from exactly one input
surface: model/assumptions.yaml in the repo.
To change an assumption: edit assumptions.yaml → the regression tests in
model/test_model.py run (13 fixtures pin the math itself; a wrong model that
renders is worse than one that doesn't) → commit → CI re-renders and re-deploys this page.
The change arrives with a diff, an author, and a timestamp — a model change is a
code change, reviewable and revertable like any other.
Two kinds of values never need a hand edit: measured drivers overlay
automatically from the weekly prod snapshot (ops/weekly/*.json) when their
sample clears the n≥5 floor, and computed figures (everything not chip-
tagged below) follow from the inputs. If a number on this page looks wrong, the fix is in
the yaml or in model/model.py — never in this page.
Drivers & assumptions — the honesty column
| Input | Value | Basis | Note |
|---|---|---|---|
| starting_active_coaches | 1 | ✓ actual | Danny |
| coach_monthly_churn | 0.05 | ● guess insufficient (n=3) | |
| parents_invited_per_coach_per_month | 8.00 | ● guess insufficient (n=4) | |
| invite_to_first_purchase_conversion | 0.35 | ● guess insufficient (n=1) | |
| parent_monthly_retention | 0.70 | ● guess | Highest-leverage unknown. Enters as 1/(1-r). |
| reviews_per_active_parent_per_month | 1.17 | ◐ measured (n=6) | |
| price_per_review | 15.00 | ◐ measured (n=7) | PLAN ticket, not a decree: $20 is the recommended list price for coaches onboarded from Sept 2026 (Danny + Derek grandfathered at $15) — the modeled average as the mix shifts. Decision: decisions/2026-08-20-season-one-plan.md, partially superseding 2026-08-19-price-per-review.md. The measured lens keeps showing the real average ($15.00, n=7, weekly overlay) until reality moves — plan vs measured divergence here is honest and intentional. |
| base_take_rate | 0.20 | ◆ decision | |
| premium_take_rate | 0.28 | ◆ decision | |
| free_reviews_per_coach_month | 0 | ◆ decision | SET TO 0 2026-08-20 (season-one plan, decisions/2026-08-20-season-one-plan.md) — the allowance cost ~$9/coach/mo in waived take and was the single cheapest profitability lever. Danny + Derek conversation still owed; their reaction is a reversal condition. |
| matched_share | 0.00 | ✓ actual | No platform_matched transactions exist yet. The projection uses the RAMP below instead — a plan, not an estimate (sheet Model row 22). |
| coach_reference_hourly_rate | 120 | ▢ canvas | |
| minutes_per_async_clip | 5 | ▢ canvas | |
| minutes_per_sync_session | 60 | ▢ canvas | |
| stripe_pct_of_gmv | 0.03 | ▤ vendor | |
| stripe_fixed_per_txn | 0.30 | ▤ vendor | |
| infra_cost_per_review | 0.75 | ● guess | |
| coach_onboarding_cost | 40 | ● guess | |
| fixed_monthly_costs | 250 | ● guess | |
| one_time_legal | 6000 | ● guess | Founder-absorbed startup capital — excluded from the operating lines, visible on the card. |
| activity | [1.0, 1.0, 1.0, 0.7, 0.4, 0.3, 0.3, 0.4, 1.0, 1.0, 1.0, 1.0] | ● guess | |
| ontario_aaa_players | 3978 | ▢ canvas | |
| ontario_rep_players | 18414 | ▢ canvas | |
| na_u14_18_players | 292687 | ▢ canvas | |
| na_supplemental_spend_tam | 117848450 | ▢ canvas | |
| na_platform_revenue_tam | 3814765 | ▢ canvas | |
| wallet_budget_aaa_annual | 2000 | ▢ canvas | |
| wallet_budget_a_annual | 500 | ▢ canvas |
Measured overlays this build:
reviews_per_active_parent_per_month: promoted to measuredparents_invited_per_coach_per_month: REFUSED — insufficient (n=4); assumption keptinvite_to_first_purchase_conversion: REFUSED — insufficient (n=1); assumption keptparent_monthly_retention: not tracked (null) — assumption keptcoach_monthly_churn: REFUSED — insufficient (n=3); assumption keptprice_per_review: promoted to measured
Changed since previous snapshot:
- no driver changes between the last two snapshots
Sensitivity — plausible ranges (never ±% flexing)
Sorted by swing, descending — and the priority rule is the biggest swing
that is also a ● guess: a decision can be
argued in a meeting, a guess can only be resolved by measurement. Ranges are explicit
plausible bounds in assumptions.yaml, never a ±% flex.
What-if — steady state, live
Driver trends — weekly snapshots
One small multiple per driver — different scales never share an axis. Series are sparse: the weekly export began 2026-08-18.
18-month projection
Every column below is COMPUTED from these assumptions (hover a chip for
its note; change any of them via assumptions.yaml, never here):
Plus two plans (decisions, not estimates —
projection: in the yaml): coaches added per month (shown as
+n in the Coaches column) and the platform-matched share ramp
(0 → 18% from month 10, which is what lifts the blended take rate late in the table).
CONVENTION: reviews are driven off ending parents — optimistic in a growing book. Cumulative cash from a zero starting balance.
uncertainty band (the four unknown drivers — retention, invites, frequency, conversion — ALL at their plausible lows or highs simultaneously; a compound floor and ceiling, not forecasts) · measured today · plan (yaml values, no measured overlay) · price and take rate are decisions, held identical in every scenario.
Measured vs. plan vs. needed
| Driver | Measured today | Plan | Needed |
|---|---|---|---|
| Parent monthly retention | 70.0% (guess) | 70.0% | 64.8% |
| Invites / coach / month | 8.00 (guess) | 8.00 | 7.19 |
| Reviews / active parent / month | 1.17 (measured n=6) | 2.00 | 1.80 |
| Invite → first purchase | 35.0% (guess) | 35.0% | 31.4% |
| Cash at month 18 | −$3,243.99 | $630.79 | target: ≥ $0 |
| Cash-positive month | never | M17 | target: by M18 |
"Needed" = the value of that ONE driver that turns cash positive by M18 holding every other driver at plan. Measured values carry their current sample-size and seasonality limits — check each driver's basis badge before treating a red line as fate.
⚑ Startup capital — founder-absorbed and
excluded from every line above, kept visible on purpose:
$6,000.00 one time legal.
Reclassified 2026-08-20; Alex (CFO) can reverse — see
decisions/2026-08-20-startup-capital-excluded-from-operating-model.md.
Month-by-month detail — measured today
| Mo | Season | Coaches | Parents | Reviews | Billable | Revenue | Absorbed | Fixed | Onboard | Net | Cash |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 Sep | ×1 | 3.95 +3 | 11.06 | 12.91 | 12.91 | $38.72 | $19.17 | $250.00 | $120.00 | −$350.45 | −$350.45 |
| 2 Oct | ×1 | 6.75 +3 | 26.65 | 31.10 | 31.10 | $93.30 | $46.18 | $250.00 | $120.00 | −$322.88 | −$673.33 |
| 3 Nov | ×1 | 8.41 +2 | 42.22 | 49.27 | 49.27 | $147.80 | $73.16 | $250.00 | $80.00 | −$255.36 | −$928.69 |
| 4 Dec | ×1 | 9.99 +2 | 57.53 | 67.14 | 67.14 | $201.43 | $99.71 | $250.00 | $80.00 | −$228.28 | −$1,156.97 |
| 5 Jan | ×1 | 11.49 +2 | 72.46 | 84.56 | 84.56 | $253.68 | $125.57 | $250.00 | $80.00 | −$201.89 | −$1,358.86 |
| 6 Feb | ×1 | 11.92 +1 | 84.10 | 98.14 | 98.14 | $294.42 | $145.74 | $250.00 | $40.00 | −$141.32 | −$1,500.18 |
| 7 Mar | ×1 | 12.32 +1 | 93.37 | 108.97 | 108.97 | $326.90 | $161.82 | $250.00 | $40.00 | −$124.91 | −$1,625.10 |
| 8 Apr | ×0.7 | 11.71 | 88.31 | 72.14 | 72.14 | $216.42 | $107.13 | $250.00 | — | −$140.71 | −$1,765.80 |
| 9 May | ×0.4 | 11.12 | 74.27 | 34.67 | 34.67 | $104.01 | $51.49 | $250.00 | — | −$197.47 | −$1,963.28 |
| 10 Jun | ×0.3 | 10.57 | 60.87 | 21.31 | 21.31 | $64.41 | $31.64 | $250.00 | — | −$217.24 | −$2,180.52 |
| 11 Jul | ×0.3 | 10.04 | 51.04 | 17.87 | 17.87 | $54.41 | $26.53 | $250.00 | — | −$222.13 | −$2,402.64 |
| 12 Aug | ×0.4 | 12.54 +3 | 49.77 | 23.23 | 23.23 | $71.26 | $34.50 | $250.00 | $120.00 | −$333.24 | −$2,735.88 |
| 13 Sep | ×1 | 14.91 +3 | 76.58 | 89.37 | 89.37 | $276.16 | $132.72 | $250.00 | $120.00 | −$226.56 | −$2,962.44 |
| 14 Oct | ×1 | 16.16 +2 | 98.87 | 115.38 | 115.38 | $359.11 | $171.33 | $250.00 | $80.00 | −$142.23 | −$3,104.66 |
| 15 Nov | ×1 | 17.36 +2 | 117.80 | 137.47 | 137.47 | $430.98 | $204.15 | $250.00 | $80.00 | −$103.17 | −$3,207.83 |
| 16 Dec | ×1 | 17.49 +1 | 131.43 | 153.37 | 153.37 | $484.28 | $227.76 | $250.00 | $40.00 | −$33.48 | −$3,241.31 |
| 17 Jan | ×1 | 17.61 +1 | 141.32 | 164.92 | 164.92 | $524.43 | $244.90 | $250.00 | $40.00 | −$10.47 | −$3,251.78 |
| 18 Feb | ×1 | 17.73 +1 | 148.57 | 173.38 | 173.38 | $555.26 | $257.47 | $250.00 | $40.00 | $7.79 | −$3,243.99 |
Market & penetration
| Parents | vs. AAA wedge | vs. rep pool | |
|---|---|---|---|
| Break-even book — at plan drivers | 53 parents | 1.3% of Ontario AAA | 0.3% of the Ontario rep pool |
| Break-even book — at measured today | 141 parents | 3.6% of Ontario AAA | 0.8% of the Ontario rep pool |
| Projection at M18 | 149 parents | 3.7% of Ontario AAA | 0.8% of the Ontario rep pool |
Wallet sanity: the plan asks an active parent for $364.00/year (frequency × price × season) — against assumed family budgets of $500.00 (A-tier) to $2,000.00 (AAA) for supplemental coaching.
Market numbers are canvas-grade — registration counts are sourced
(USA Hockey / Hockey Canada), but the dollar TAMs inherit ASSUMED per-tier budgets
and velocities. Canonical source + caveats: strategy/market-analysis.md.
Unit economics — per review
The free allowance is NOT free to the platform: allowance reviews earn zero take but still incur the Stripe + infra legs above. Coach pitch: async net $144.00/effective-hour = 1.20× sync net; throughput 12.00× — publish the net multiple only.
Raise gates
| Gate | Threshold | Base case | Status |
|---|---|---|---|
| active_coaches | 5 | 4 | ✗ BASE CASE FAILS |
| coaches_retained_90d | 3 | — | ◌ no data yet |
| total_paying_parents | 50 | — | ◌ no data yet |
| reviews_per_active_parent_per_month | 2.50 | 1.17 | ✗ BASE CASE FAILS |
| month3_parent_retention | 0.40 | — | ◌ no data yet |
| monthly_gmv | 3000 | — | ◌ no data yet |
| platform_matched_transactions | 1 | 0 | ✗ BASE CASE FAILS |
| consecutive_months_positive_contribution | 2 | — | ◌ no data yet |
| legal_posture_counsel_signoff | 1 | — | ◌ no data yet |
Open issues snapshot as of 2026-08-20 12:42 UTC — the tracker itself (GitHub Issues) is canonical; this tab is a render. P0 = blocks the beta · P1 = before break-even · P2 = before raise · P3 = someday.
| Track | P0 | P1 | P2 | P3 | Total |
|---|---|---|---|---|---|
| driver | — | 11 | 11 | 2 | 24 |
| obligation | 6 | 7 | 7 | — | 20 |
| table-stakes | 1 | 10 | 5 | 1 | 17 |
Drivers with open work: coach-churn, frequency, infra-cost, invites, matched-premium, price, retention. ● no open work: conversion — an unworked driver is a modeling claim nobody is testing.
P0 — 7 open
| # | Title | Labels | Milestone |
|---|---|---|---|
| #105 | Close the unauthenticated playlist share-token PII leak (full player names) | obligation · records | M1 First Cohort |
| #103 | Coach agreement | obligation · coach · needs-counsel | M1 First Cohort |
| #102 | Privacy Policy | obligation · platform · needs-counsel | M1 First Cohort |
| #101 | Terms of Service | obligation · platform · needs-counsel | M1 First Cohort |
| #88 | COPPA: consent record storage and audit trail | obligation · platform · needs-counsel | M1 First Cohort |
| #87 | COPPA: verifiable parental consent flow | obligation · parent · needs-counsel | M1 First Cohort |
| #83 | Error monitoring and alerting | table-stakes · platform | M1 First Cohort |
P1 — 28 open
| # | Title | Labels | Milestone |
|---|---|---|---|
| #119 | iOS/iPad device-test pass on the live parent and coach surfaces | table-stakes · platform | M1 First Cohort |
| #118 | Telestrator finger-draw on iPad scrolls the screen / exits fullscreen | table-stakes · review · feedback | M1 First Cohort |
| #116 | Refine menu unusable on the Closing bookend — popover opens below the viewport and dismisses on scroll | table-stakes · review · feedback | M1 First Cohort |
| #115 | Resilient clip uploads — chunked/resumable transfer that survives flaky home networks | table-stakes · capture · feedback | M2 Break-even |
| #114 | Upload accepts non-video files silently — VidSwap/Pixellot ZIP renamed .mp4 played as a black screen for the coach | table-stakes · capture · feedback | M2 Break-even |
| #113 | Cloned voice mispronounces player names in review open/close — needs per-kid pronunciation handling | table-stakes · review · feedback | M2 Break-even |
| #109 | Parent's request note invisible inside the review studio | table-stakes · review · feedback | M1 First Cohort |
| #104 | Confirm agent-of-payee exemption posture with counsel | obligation · payments · needs-counsel | M2 Break-even |
| #98 | No-contact policy between coach and athlete outside the platform | obligation · platform · needs-counsel | M2 Break-even |
| #97 | SafeSport-aligned policy and coach agreement | obligation · coach · needs-counsel | M2 Break-even |
| #96 | Coach background checks (Checkr or Sterling) | obligation · coach | M1 First Cohort |
| #91 | COPPA: separate opt-in for session-follow-up capture | obligation · payments · needs-counsel | M2 Break-even |
| #90 | COPPA: parental access, review and deletion rights | obligation · parent · needs-counsel | M2 Break-even |
| #84 | Automated backups and restore test | table-stakes · platform | M2 Break-even |
| #82 | Admin console | table-stakes · platform | M2 Break-even |
| #81 | Per-review cost instrumentation | driver · platform · infra-cost | M1 First Cohort |
| #77 | SPIKE: will a roster-struggling coach pay 25-30% on a matched player? | driver · matching · matched-premium · spike | M2 Break-even |
| #76 | SPIKE: where does the first unattached parent come from? | driver · matching · matched-premium · spike | M2 Break-even |
| #71 | Refunds, disputes and chargebacks | obligation · payments | M2 Break-even |
| #70 | Pre-authorized standing arrangement for session follow-ups | driver · payments · retention | M2 Break-even |
| #68 | Free-review allowance: first N per coach per month | driver · payments · price | M1 First Cohort |
| #63 | Coach vetting rubric | driver · coach · retention · canvas-blocker | M2 Break-even |
| #61 | Coach earnings transparency: publish net-of-take figures | driver · coach · coach-churn | M1 First Cohort |
| #59 | Coach dashboard: queue, earnings, roster | driver · coach · coach-churn | M2 Break-even |
| #43 | Review quality rubric encoded in the tooling | driver · review · retention · canvas-blocker | M2 Break-even |
| #40 | GameBooth-handled video cutting | driver · review · coach-churn | M2 Break-even |
| #32 | Clip trimming before submission | driver · capture · infra-cost | M2 Break-even |
| #26 | Duplicate athlete record detection and merge | table-stakes · records | M2 Break-even |
P2 — 23 open
| # | Title | Labels | Milestone |
|---|---|---|---|
| #123 | Mark-the-player step is frame-zero only — can't advance the video to a frame where the player is identifiable | table-stakes · capture · feedback | M2 Break-even |
| #121 | Audit Stripe test-mode webhook endpoints | obligation · payments | M2 Break-even |
| #120 | Ship the built management/joy surface (player sharing) | driver · player · retention · needs-counsel | M2 Break-even |
| #117 | UX design review of the coach review studio (with a UX expert) | table-stakes · review · spike, feedback | M2 Break-even |
| #108 | review.submitted events emit kid_id=null — attribution silently lost on every submission | table-stakes · records | M2 Break-even |
| #100 | Content moderation on uploaded video | obligation · capture · needs-counsel | M3 Raise-ready |
| #95 | AI training-data consent capture (13+ only) | obligation · platform · needs-counsel | M3 Raise-ready |
| #94 | Biometric data written policy and retention schedule | obligation · platform · needs-counsel | M3 Raise-ready |
| #93 | Biometric consent (BIPA-style) for pose and velocity data | obligation · platform · needs-counsel | M3 Raise-ready |
| #92 | Data retention policy and automated enforcement | obligation · platform · needs-counsel | M3 Raise-ready |
| #86 | Weekly driver export to the operating model | driver · platform · retention | M3 Raise-ready |
| #75 | Concierge matching: first match by hand | driver · matching · matched-premium | M3 Raise-ready |
| #74 | Coach-absorbed billing fallback | driver · payments · price | M3 Raise-ready |
| #73 | Tax reporting for coaches (1099 / T4A) | obligation · payments · needs-counsel | M3 Raise-ready |
| #69 | Source-differentiated take rate | driver · payments · matched-premium | M3 Raise-ready |
| #64 | Coach offboarding and record handling | table-stakes · coach | M3 Raise-ready |
| #60 | Coach-branded low-friction mode | driver · coach · coach-churn | M3 Raise-ready |
| #55 | Parent-facing progress framing (loss-frame, carefully) | driver · parent · retention | M3 Raise-ready |
| #49 | Athlete progress view (player-framed) | driver · player · retention | M3 Raise-ready |
| #45 | Review revision or follow-up question from parent | driver · review · frequency | M3 Raise-ready |
| #33 | Coach in-session capture (the neuro-mirror flow) | driver · capture · invites | M1 First Cohort |
| #29 | Longitudinal progress view across reviews | driver · records · retention | M3 Raise-ready |
| #27 | Athlete record export (portability) | table-stakes · records | M3 Raise-ready |
P3 — 3 open
| # | Title | Labels | Milestone |
|---|---|---|---|
| #122 | Checkout-abandon polish follow-ups (grouped) | table-stakes · payments | — |
| #78 | Coach roster-need expression | driver · matching · matched-premium | M3 Raise-ready |
| #34 | Mobile capture from the bench or rinkside | driver · capture · frequency | M2 Break-even |
Asset A · owner both CEOs · reviewed quarterly ·
canonical in-repo since 2026-08-19 (edit model/canvas.yaml, never this page) ·
Stress-tested draft. Tensions are left visible by design.
The spine — two moats with opposite timing
GameBooth has two moats with opposite timing. The wedge (frictionless async-review tooling) gets coaches in the door but is replicable by a flat-fee SaaS competitor. The wall (matching unattached parent demand to coaches) cannot be replicated by any tooling competitor — but it is structurally absent during bootstrap, because Tier 1 coaches arrive with their own rosters and need no matching.
Everything below is an attempt to survive the danger window — the period where you are Tier-1-only, matching isn't live, and the only thing you offer is a tool a third party could clone. The business is durable if and only if it reaches liquidity (matching switched on) before that window closes.
| Phase | Matching live? | Take rate | What take rate IS in this phase |
|---|---|---|---|
| Bootstrap | no | Flat 20% | Not a margin to protect. Take rate held flat; frequency comes from the product being genuinely more profitable per hour and ~12x higher throughput, not from a price bribe. |
| Post-liquidity | yes | 20% base / 25–30% on platform-matched | A finder's premium on demand GameBooth manufactured. Blended take RISES as matched share grows. Take-rate expansion = proof the moat switched on. |
The nine blocks
Key Partners
- Coaches (supply) — the binding constraint on the whole business. Not a vendor: the scarce input.
- Stripe Connect (Express, agent-of-payee posture, separate charges/transfers).
- Infra: Cloudflare (Workers/D1/R2), LiveKit.
- AI/voice: Cartesia (TTS), Deepgram/Gemini (STT). Voice clone is a commodity API call — explicitly NOT a moat.
- Trust & Safety vendors: Checkr/Sterling, SafeSport framework.
- Outside legal counsel — THREE distinct consent items tracked separately: (i) pre-authorized session-follow-up capture/billing; (ii) COPPA training-data consent (13+ scope, banked early); (iii) biometric consent (BIPA-style, age-independent).
Key Activities
Ranked by strategic load.
- 1. Manufacturing unattached parent demand (so matching has fuel) — the activity that switches the moat on. Least-built, most important.
- 2. Matching players to coaches by need — the wall.
- 3. Two capture modes: parent-uploads-footage → async review; coach-captures-in-session → next-day neuro-mirror follow-up (the physical→digital bridge; fastest path to T1 density + record population).
- 4. Async-review + AI-coaching-notes tooling — the wedge. Treat as acquisition, not moat; absorbed via the two-mode architecture rather than ceded.
- 5. CV/AI augmentation flywheel — augment the coach, never replace. Pose estimation + velocity trends, longitudinal via kid_id. Trains on 13+ only; needs its own biometric consent.
- 6. Provenance instrumentation (origin-stamping) — makes the revenue model and two-mode architecture enforceable.
- 7. Trust & Safety / coach vetting — table stakes given minors; where the anti-toxicity promise must be operationalized.
Key Resources
- The kid_id athlete record — the SUBSTRATE everything runs on (explicitly not a moat: portable by design; the rails, not the train).
- Coach supply — the scarce input and binding constraint.
- Provenance (immutable origin) — what makes premium pricing enforceable.
- The expert-annotated video corpus (future, 13+ only) — the only asset that compounds with scale, if deliberately built.
Value Propositions
Full detail in Asset B (the Value Prop tab).
- To coaches: leverage now → demand later. Async wins on effective hourly earnings AND ~12x calendar throughput; GameBooth absorbs the video-cutting/prep sync forces on the coach. Post-liquidity: players they cannot source themselves.
- To parents: a coached, annotated clip of their child, plus a continuous athlete record. Sold as edge; intended to retain on reassurance/development.
- To players: a record that travels with them across teams and seasons.
Customer Relationships
The central question: does GameBooth OWN the relationship, or merely HOST it? Hosted relationships disintermediate; owned ones don't.
- Tier 1 (coach-owned, hosted): fragile. Mitigation is SPEED TO LIQUIDITY, not retention mechanics. Accept some anchor coaches may leave once they've lent credibility — treat as a paid marketing channel if they do.
- Tier 2 (platform-owned): durable. The coach cannot operate without the player flow GameBooth provides.
- Parents: today bonded to the COACH (they buy edge). Long-run intent: bond them to the SYSTEM (record, progress continuity) so retention survives a coach's departure. Weakest of the lock-in mechanisms — acknowledged.
Channels
- Bootstrap: Tier 1 coaches as distribution — their existing clients are the first parents. Coach credibility IS the channel.
- Organic: parent-to-parent loop (unproven).
- Post-liquidity: GameBooth's own matching surface becomes a channel TO coaches (delivering players) — the channel that creates the wall.
Customer Segments
Three parties, distinct roles. Do not collapse them.
- Players — the protagonist, never a customer. Data subject only. The kid_id athlete record is the SUBSTRATE the business runs on — necessary rails, not a moat. Never an account holder, never a payer.
- Parents — the buyer. Account holder, payer, consent-giver (COPPA). What they BUY today is competitive edge; what GameBooth INTENDS to sell is reassurance + development. That gap is a strategic problem, not a copy problem (see Asset B).
- Coaches Tier 1 — roster-bringers. Arrive with their own players; relationship is coach-owned. Most important to credibility, least defensible. The bootstrap cohort and the disintermediation risk.
- Coaches Tier 2 — player-receivers. GameBooth matches players to them; relationship is platform-created. This is where the wall exists. Only possible once liquidity exists.
Cost Structure
- Two engineering cost profiles — do not conflate: product-eng (founder-absorbed pre-PMF) vs sustaining-eng (volume-driven). The step-change in burn is at the Phase 1→2 boundary.
- Coach-leveraged model: $1M net revenue does not require a large team. The constraint is coach supply, never headcount efficiency.
- Platform absorbs Stripe processing fees so coach net is a clean 80% (on billable reviews).
Revenue Streams
Three streams, distinct by who initiates and who pays. Merchant of record stays consistent: separate charges and transfers, agent-of-payee posture.
- (i) Parent-initiated async reviews — platform fee per review; GameBooth holds the full fee, pays the coach 80% on delivery. Bootstrap flat 20%; post-liquidity 20% coach_invited / 25–30% platform_matched. Blended take is an OUTPUT of sourcing mix, not an input.
- (ii) Session-follow-up reviews (coach-captured neuro-mirror) — a sequence: free first clip (CAC) → pre-authorized standing arrangement (primary; parents resent a clip that APPEARED, not one they AUTHORIZED) → coach-absorbed fallback (coach bundles into in-person price, pays the fee from margin).
- (iii) Future: matched-player premium — the 25–30%. Distinct because the revenue RISES as the moat switches on.
- Coach to Own: the first N reviews per coach each month carry no platform fee (free at the BOTTOM, monthly reset — explicitly NOT a cap; free-at-the-top asymptotes take to zero on the best coaches. Free-at-the-bottom is acquisition; free-at-the-top is suicide).
- One platform, two modes, one record (the anti-CoachClip judo): a marketplace mode and a low-friction coach-branded mode that FEELS standalone — both writing to the same kid_id record. The low-friction mode is the acquisition channel for the record, not a separate revenue line.
The defensibility verdict
Genuinely defensible
- Matching (the wall) — no tooling competitor can replicate it; it requires a demand side.
- The take-rate structure taxing manufactured demand at a premium, enforced by immutable provenance.
- The coach-supply constraint cutting FOR you once you have density.
- The switching CLIFF — real today, even on Tier 1 (see below).
- (Long-run, optional) the data flywheel — expert-annotated sports video collected as a paid byproduct. The only asset that compounds with scale. NOT built; a deliberate future choice. 13+ only.
NOT a moat — stop describing it as one
- The voice clone (commodity API).
- The async tooling on its own (replicable flat-fee SaaS; it's a wedge).
- Tier 1 relationships (coach-owned).
- The kid_id record itself — substrate, not moat. Portability and lock-in are contradictory; what's defensible is what runs ON the record.
The switching cliff
A coach who leaves to dodge the 20% take returns to doing their own video cutting and prep — falling from $192 to $120 per effective hour: a 37% drop to avoid a 20% fee. A genuine anti-disintermediation force that operates today, in bootstrap, without matching.
A cliff, not a wall: it only protects against the coach going fully manual. A flat-fee competitor offering the same prep-elimination at $40/mo neutralises it entirely. The wall is still matching.
Data governance
Serve all ages, train on 13+ only. Converts the COPPA training-data question from existential risk into a bounded segmentation decision, and doubles as a brand asset ("we don't train AI on little kids' video"). Biometric (BIPA-style) consent is a SEPARATE door with no age cutoff — the 13+ segmentation does not close it.
The bet, in one sentence
GameBooth wins if it converts coach-owned Tier 1 relationships into platform-owned Tier 2 liquidity — manufacturing unattached parent demand and stamping provenance — BEFORE a flat-fee tooling competitor or a defecting anchor coach exploits the defenceless bootstrap window.
Validate next, in order
- Where does the first UNATTACHED parent come from? (Fuels matching; currently unanswered.)
- Do parents value the artifact/record over the human coach? (Watch/rewatch instrumentation is the first proxy.)
- Will a roster-struggling coach gladly pay 25–30% on a matched player?
Asset B · owner both CEOs · reviewed quarterly ·
canonical in-repo since 2026-08-19 (edit model/cvp.yaml, never this page) ·
Stress-tested draft. Tensions are left visible by design.
Coach value proposition — wedge and wall
Customer profile
Jobs
- Generate income from coaching (primary job is on-ice/field; review is secondary income).
- Service more players per available hour.
- Build a roster of GOOD players (hard; high-value if solved).
- Maintain reputation/results with existing clients.
Pains
- Sync review is time-expensive: ≥30 min prep + 30 min call = ≥60 min per session, often more when video isn't pre-cut.
- Sync forces a direct cost: unpaid prep time OR paying for editing tools out of the session fee.
- Effective hourly earnings capped at the nominal rate — prep time is unpaid drag.
- Roster-building is slow and uncertain.
- Income capped by hours physically available.
Gains
- More coaching outcomes per hour.
- Higher EFFECTIVE earnings per hour worked, not just more volume.
- Flexibility around a primary job.
- Access to players they couldn't otherwise reach.
Value map
Pain relievers (the WEDGE — replicable)
- Async review: ≤5 min of work per clip, priced off hourly rate. ~12x calendar throughput (twelve clips vs one session per hour).
- AI-assisted notes + GameBooth-handled video cutting remove the prep burden entirely — eliminating a cost line the coach carries under sync.
- GameBooth handles payment and (post-liquidity) matching.
Gain creators (the WALL — not replicable)
- Matching delivers players the coach cannot source — the durable gain, and the one a flat-fee competitor structurally cannot offer.
The pain relievers are the WEDGE (replicable). The matching gain creator is the WALL (not replicable). A coach's dependency grows only as they consume matched players — which is why pricing taxes growth (matched), not base.
The jobs grid
The Jobs Grid — the purchase trigger and the retention driver are different jobs held by different people
| Functional | Social | Emotional | |
|---|---|---|---|
| Player (user) | Close the specific skill gap | Not be the weak link in front of teammates/coach | Protect love of the game from toxic, politically-driven team-coach culture (the founding insight) ● dominant |
| Parent (buyer) | Close the gap that's putting the kid in the bottom half of the roster | Keep up with the families who already pay for private coaching (positional / arms-race) | Manage the recurring dread of relegation — "don't let my kid be the bubble kid" ● dominant |
The parent's loss-aversion job is the most durable in the model: (1) it never self-extinguishes — relegation dread is structurally renewed every season/coach-change by the league's own mechanics; (2) it's loss-framed, therefore price-insensitive (prospect theory); (3) the cohort self-selects for the economics — bubble-anxious AAA/AA parents pay repeatedly.
The player's dominant job = protected joy. A GameBooth review is NOT a fault-finding takedown — it spotlights the kid and teaches when they want/need it, routing AROUND the toxic culture rather than adding to it.
The split-frame architecture — the core design constraint
The two dominant jobs point in opposite directions: the parent's job is to monetise relegation dread; the player's job is to escape the anxiety machine that creates that dread. Collapsing them recreates the toxic coach and triggers the one churn event GameBooth cannot survive: kid quits → parent churns regardless of coach quality.
- Parent buys on loss-aversion (the purchase trigger). The league supplies the dread — never market it directly.
- Player experiences encouragement + targeted teaching (the retention mechanism). The kid never feels the relegation pressure.
- The product's core job is the TRANSLATION between these frames.
Parent and player — pains, gains, relievers
Parent (buyer)
Pains
- Recurring, league-manufactured dread of the kid being cut/relegated.
- Can't coach the gap themselves; the team coach may be the SOURCE of the problem.
- No continuity of record as the kid moves across teams/seasons/coaches.
Gains
- The kid stays off the bubble.
- A trusted coach outside the team's politics.
- A record that follows the player through the yearly roster churn.
Player (user)
Pains
- Being judged/nitpicked by a politically-motivated team coach.
- Losing love of the game.
Gains
- Encouragement and targeted teaching when wanted.
- A coach who is on THEIR side, outside team politics.
Relievers / creators
- Coached, annotated clip (parent-frame: gap-closing; player-frame: encouragement).
- Coach outside the team's political structure.
- The athlete record (kid_id) — continuity that survives the exact churn the league forces.
GameBooth has been selling the GAIN frame ("competitive edge"). The durable, price-insensitive job is the LOSS frame ("don't get cut") for the buyer, delivered as PROTECTED JOY for the user. Go-to-market language and the dual-surface design should reflect the split.
The session-follow-up VP (coach-captured "neuro-mirror")
Not "do more async volume" but "extend and differentiate my in-person offering." The neuro-mirror clip makes the coach's in-person hour worth more and last longer (the kid re-watches; learning consolidates). A retention hook that does NOT depend on matching.
Natively split-frame-compliant: a neuro-mirror of a skills rep is inherently encouraging ("here's your good rep, here's how to make it cleaner") — possibly the cleanest expression of the anti-toxicity brand.
The fastest real-world path to T1 density and record population: a coach's existing in-person roster converts to platform-active kid_id records in one motion. Accepted risk: produces only coach_invited players — fuels the wedge, may starve the wall.
Who hears which frame
Who hears which frame — the thing most likely to be got wrong under time pressure
| Audience | Lead with | Never lead with |
|---|---|---|
| Parents (customers) | Protected joy, a coach on your kid's side, a record that follows them | Relegation dread. It works, and using it makes you part of the machine you position against. |
| Players (users) | Encouragement, targeted teaching, seeing yourself improve | Anything that leaks the parent's anxiety |
| Coaches (supply) | ~12x throughput, prep eliminated, then 1.6x net rate | The 2x figure. It does not survive arithmetic. |
| Investors | The loss frame, explicitly — it is why this is repeat-purchase and price-insensitive | The gain frame. "Helps kids improve" does not explain why demand renews every season. |
The investor and customer frames are deliberately opposite. Naming that split openly in a pitch is a strength: it demonstrates you understand your own demand engine well enough to know why you do not point it at your customers.