Weekly Digest 004
Built from ops/weekly/2026-09-14.json vs ops/weekly/2026-09-21.json, GitHub issue
history for that window, and decisions/ entries dated this week (none).
1. Drivers that moved
Diff of the drivers block, 2026-09-14.json → 2026-09-21.json:
| Driver (JSON key) | 09-14 | 09-21 | Change |
|---|---|---|---|
| reviews_per_active_parent_per_month | 1.333 (n=6) | 1.333 (n=6) | none |
| parents_invited_per_coach_per_month | 2 (n=3) | 2 (n=3) | none |
| invite_to_first_purchase_conversion | 6 (n=1) | 6 (n=1) | none |
| parent_monthly_retention | null (n=0) | null (n=0) | none |
| coach_monthly_churn | 0 (n=3) | 0 (n=3) | none |
| price_per_review.usd | 15.00 (n=8) | 15.00 (n=8) | none |
Zero movement — not even in n, unlike the 09-07→09-14 diff (digest 003), where the
active-coach denominator shrank. All five behavioral drivers are still anchored to
month: "2026-08"; volume.reviews_delivered_in_period and volume.gmv are both 0 for
this period, so there is no September data yet to move them. Nothing was learned this
week that changes a driver value.
Coach-disappearance anomaly (digest 003, §1) — unresolved, not worsened. The coach
dropped from the 09-07→09-14 export (C-0f4b1805, plus three never-purchased parents)
remains absent from coaches/parents/roster in 09-21.json. volume.active_coaches
holds at 3 (was 4 before the drop). No new contact_evidence or decisions/ entry
explains it. Still flagging for the export owner rather than guessing at cause.
Guess-basis baseline — now 4 weeks unowned. Confirmed against
model/assumptions.yaml: coach_monthly_churn, parents_invited_per_coach_per_month,
invite_to_first_purchase_conversion, parent_monthly_retention, and
reviews_per_active_parent_per_month are all still basis: guess with no owner
recorded. Digest 002 (2026-08-24) started this clock; it is now 4 calendar weeks
(08-24 → 09-21) with no movement toward measured or actual on any of the five.
2. Evidence logged
contact_evidence rows in 2026-09-21.json not present in the 09-14.json snapshot
digest 003 was built from:
| Handle | Date | Channel | Driver tags | Direction | |---|---|---|---|---| | C-763bfd8b | 2026-09-14 | in-person (them) | (none) | Indeterminate — no driver tags logged | | C-763bfd8b | 2026-09-14 | in-person (them) | (none) | Indeterminate — no driver tags logged |
Both rows are identical in every field (handle, date, channel, initiated-by, empty tag list) — reads as a duplicate log entry rather than two distinct touches. With no driver tags on either, there is no basis to say which way this pushes; not inventing a direction. Flagging the duplicate for the export owner.
No other rows are new since digest 003 — the five 08-19/08-20 parent rows and the two 09-09/09-11 rows already appear in the 09-14.json snapshot digest 003 used.
3. Backlog shipped and started
Issue history for 2026-09-14 → 2026-09-21 (search_issues on closed/created,
GitHub MCP).
Shipped (closed this week):
| # | Title | Track / driver | |---|---|---| | 190 | Auto-generate joy reel thumbnails for new clips via coach-browser capture at submit | track:table-stakes, P3 | | 186 | Joy reel: clip thumbnails (poster frame at the coach's marked moment) | track:driver, driver:frequency, P3 | | 185 | Joy reel: meaningful clip titles from coach notes (not upload filenames) | track:driver, driver:frequency, P2 | | 184 | Joy reel findability: clip thumbnails + meaningful titles + note-derived keyword tags & filter | track:driver, driver:frequency, P2 | | 181 | Voice-primary playback UX on mobile: text captions overpower the film — make them opt-in closed captions | track:table-stakes, P1 | | 178 | ReviewPlayback fullscreen letterboxes + detaches note overlay on portrait iPhone (same as #177) | track:table-stakes, P2 | | 177 | Coached-clip fullscreen letterboxes + detaches the note overlay on portrait iPhone (#172 Part 2) | track:table-stakes, P2 | | 172 | Coached-clip playback on the joy surface (/j/…/c/…) renders poorly on iPhone | track:table-stakes, P1 |
184 reads as the umbrella issue for the joy-reel findability work; #185 and #186 (and
the still-open #187, see below) are its component parts — all opened and, for 184/185/186,
closed inside this same window. Three track:driver closes this week, all
driver:frequency, all joy-reel findability; the other five were mobile-playback
regression fixes (track:table-stakes).
Started (opened this week, still open):
| # | Title | Track / driver |
|---|---|---|
| 169 | Coach waitlist is write-only — nothing surfaces a /for-coaches signup | track:driver, driver:invites, P1 |
| 187 | Joy reel: note-derived keyword tags + filter/sort | track:driver, driver:frequency, P2 (spike) |
| 171 | Coach-page finished-review view renders sub-optimally on iPhone | track:table-stakes, P1 |
| 173 | Prod clip uploads broke on gamebooth.ca — R2 clips bucket CORS not updated in the domain migration | track:table-stakes, P1 |
| 174 | Post-payment Stripe redirect lands parents on the old pages.dev origin → logged-out "Invitation only" | track:table-stakes, P1 |
| 175 | Worker returns synthesized_with_voice as 0/1, not boolean (React {0 && …} footgun) | track:table-stakes, P3 |
| 182 | Render the real mark-the-player marker in playback (finish #123; placeholder removed in #181) | track:table-stakes, P3 |
(#167, #166, #165 were created 2026-09-14 before this period's cutoff and were already
reported as started in digest 003 — not re-counted here.) Two P1 items worth flagging by
name rather than just by count: #173 and #174 both trace to the gamebooth.ca domain
migration (R2 CORS, VIEWER_SITE_URL) and both block real parent flows (upload, and
post-payment redirect) — this digest doesn't rank them, but they're new and P1 this week.
4. Decisions needed
No decisions/ entries dated this week. Carrying forward digest 003's list unchanged,
with elapsed weeks updated:
- Price-per-review derivation unconfirmed (
decisions/2026-08-19-price-per-review.md) — carried, 4 weeks. Matt still needs to confirm or complete the $120/hr → $15 derivation. - Season-one plan adopted without Alex, Danny, or Derek (
decisions/2026-08-20-season-one-plan.md) — carried, 4 weeks. The free-allowance removal and $20 September default still need those three conversations. - Market analysis + seasonality layer (
decisions/2026-08-20-market-analysis-and-seasonality.md) — carried, 4 weeks. Still flagged for Alex's review at onboarding, still unreviewed. - Startup capital exclusion (
decisions/2026-08-20-startup-capital-excluded-from-operating-model.md) — carried, 4 weeks. Reversal condition is explicitly Alex's to invoke as CFO; still open. - Residual Tier-1 confirmation on incorporation (
decisions/2026-09-09-incorporation-in-place-no-coach-reonboard.md) — carried, 1 week. Still need Stripe/counsel confirmation that the sole-prop → incorporated swap doesn't trigger a platform re-KYC that pauses payouts, and still need to resolve the jurisdiction conflict the decision file itself flags (Delaware C-corp vs. Ontario / GameBooth Inc. appear in different places in the repo).
Five open decisions, four of them now 4 weeks unmoved — still worth a standing agenda item, as digests 002 and 003 both already said.
5. Touch points this week
From the roster block (2026-09-21.json) — identical roster to 2026-09-14.json: same
8 parents, same flags, same last_purchase/last_delivery/last_contact_at for every
one of them. 6 parents carry a flag (all SILENT); 2 cut (P-c4005031, P-64d03653,
both NEVER_CONTACTED, unchanged since digest 002 — no new facts to report).
| Handle | Why (primary_flag) | Owner | Suggested opener | |---|---|---|---| | P-2952f6f8 | SILENT | Alex | Last purchase 8/3, one delivered review 8/4, last touched 8/20 — now 32 days ago with nothing since. | | P-c2dc0179 | SILENT | Alex | Most active parent on record — 3 paid, 3 delivered, all by 8/7 — contacted 9/11 (10 days ago); SILENT persists because there's still no purchase since 8/7 (44 days). Worth asking directly what that call turned up. | | P-494a7944 | SILENT | Alex | 2 paid, 1 cancelled, last delivery 8/16, last touched 8/20 — now 32 days ago, still no follow-up purchase; the cancellation plus continued silence is worth a direct check-in. | | P-7d3431ec | SILENT | Alex | One delivered review 8/14, last touched 8/19 — now 33 days ago, no repeat purchase since. | | P-f1c95a7d | SILENT | Alex | One delivered review 8/14, last touched 8/20 — now 32 days ago, no repeat purchase since. | | P-4719cb7d | SILENT | Alex | One delivered review 8/19, last touched 8/19 — now 33 days ago, no repeat purchase since; earliest-joined (8/18) of this cohort. |
Follow-through on digest 003's touch list (6 handles):
- P-2952f6f8 — no new contact since 8/20. Second week running with no follow-up (also missed between digests 002→003).
- P-c2dc0179 — no new contact since 9/11. First miss (was contacted 9/11, between digests 002→003).
- P-494a7944 — no new contact since 8/20. Second week running.
- P-7d3431ec — no new contact since 8/19. Second week running.
- P-f1c95a7d — no new contact since 8/20. Second week running.
- P-4719cb7d — no new contact since 8/19. Second week running.
Net: zero of the six were followed up on this week (versus 1-for-6 last week). Five of the six are now two weeks running with no contact — not yet the three-weeks-running threshold, but the direction is worth naming plainly rather than softening.
6. Mid-week pulse
No pulse entries this week.