5-Night Post-October Fest Demo Retention Response Challenge - 2026

November D+2 after October Next Fest: #metrics still celebrates fest-week downloads. Support tickets mention "crashed at menu." Post-fest analytics listicle #2 filed post_fest_analytics_ok: true—but nobody ran a five-night response ladder when the uninstall curve started. Engineering wants to ship a hotfix; marketing wants a capsule refresh; the producer cannot answer "what changed since D+1?" without opening four tabs.
November 2026 first week needs retention response accountability, not post-fest hero threads. Branch unset #1 returned default; analytics tools #2 wired four lanes—this Challenges & Community Hooks sprint is the five-night retention ladder: ~20 minutes per evening D+1…D+5, gates R1–R5, file post_fest_retention_challenge_receipt_v1.json, hashtag #PostOctoberRetention2026.
Direct answer: Five nights (~20 minutes each); gates R1–R5; artifacts under release-evidence/post-fest/retention-challenge-2026/; file post_fest_retention_challenge_receipt_v1.json; set BUILD_RECEIPT post_fest_retention_ok: true when R5 passes.
Non-repetition note: October upload dress rehearsal owns pre-live upload R1–R5. February pager challenge owns live-week P1–P5. 5-day crash log challenge owns pre-fest weekday repro folders. Analytics listicle #2 owns T1–T6 tooling bookmark stack. This URL owns D+1…D+5 post-fest retention response with nightly one-metric cards and master receipt.
Pair branch unset #1, analytics tools #2, wishlist plateau cousin, forward blog #4 crash recovery case study, Course 302 forward.
Why this matters now (November 2026 post-October fest)
- Downloads cliff D+1 — Fest traffic drops; teams that wait until November closeout lose fixable crashes.
- Refund spikes need a ritual — Not a one-time CSV export; five nights catch drift.
- Uninstall proxies need honest notes — Analytics #2 lanes active; challenge forces response not only logging.
- Hotfix temptation — Forward #9 patch exception opinion needs receipt baseline first.
- Public accountability —
#PostOctoberRetention2026catches skipped nights before forward #12 capstone.
Direct answer: Run the ladder when post_fest_analytics_ok is GREEN and branch unset upstream—produce one master retention receipt before jq weekly #7 and uninstall trend #5.
Who this challenge is for
| Audience | You will… |
|---|---|
| Beginner | Log one metric card per night—downloads, crashes, refunds |
| Solo founder | Post daily #PostOctoberRetention2026 with receipt path |
| Producer | Block unreceipted post-fest patch until nightly R4 reviewed |
| Working dev | File crash repro folder path and diff nightly BUILD_RECEIPT columns |
Prerequisites: Branch unset #1 branch_unset_ok; analytics #2 post_fest_analytics_ok; post_fest_daily_export_2026.csv started.
Time: ~1.5–2 hours total over five nights.
Challenge vs cousin ladders (format ladder)
| Artifact | When | Gates |
|---|---|---|
| Branch unset evening | D+0 / first evening | U1–U6 |
| Analytics tools listicle | D+1 setup | T1–T6 |
| This challenge | D+1…D+5 | R1–R5 |
| Crash recovery case study forward #4 | When R3 RED persists | C1–C6 |
| jq weekly retention forward #7 | After R5 GREEN | J1–J6 |
Order: Unset GREEN → analytics T6 GREEN → this 5-night ladder on D+1…D+5 → forward case study if R3 stays RED → weekly jq #7.
Rules of the challenge
- One retention owner signs each night (
night_N_ownerin receipt). - Fail stops patch — RED R3 blocks post-fest hotfix until smoke reruns or forward #9 exception filed.
- Twenty-minute cap — Ritual is one-metric card + stand-up post, not full incident marathon.
- Post nightly with
#PostOctoberRetention2026including gate color + receipt path. - No invented uninstall % — Log honest proxy notes per analytics #2.
- Capsule refresh waits until R5 GREEN unless documented YELLOW waiver in
notes. - Producer reviews R5 capstone before forward #12 first-week capstone index.
Five-night calendar at a glance
| Night | Post-fest day | Gate | Primary ritual | Pass signal |
|---|---|---|---|---|
| N1 | D+1 | R1 | Analytics baseline latch | post_fest_analytics_ok + daily export row |
| N2 | D+2 | R2 | One-metric card (refunds) | refund_rate logged vs threshold |
| N3 | D+3 | R3 | Crash repro folder + smoke | crash_triage_ok or documented fix path |
| N4 | D+4 | R4 | Response action or defer | retention_action_logged |
| N5 | D+5 | R5 | Master receipt + BUILD_RECEIPT | post_fest_retention_ok: true |
Map nights to calendar days after your fest end date; keep gate order R1 → R5.
Before you start — readiness checklist
Create the evidence folder:
release-evidence/
post-fest/
retention-challenge-2026/
README.md
nightly-cards/
night-1.md
night-2.md
...
crash-repro/
receipts/
archives/
Readiness checklist:
- [ ]
branch_unset_ok: trueon BUILD_RECEIPT - [ ]
post_fest_analytics_ok: trueandpost_fest_analytics_tools_receipt_v1.jsonexists - [ ]
post_fest_daily_export_2026.csvhas D+1 row template - [ ]
refund_threshold_v1.jsonfrom analytics listicle exists - [ ] jq installed for receipt verify
- [ ] Crash repro folder path chosen (cousin 5-day crash log structure OK)
Night 1 — R1 analytics baseline (~20 minutes)
Goal: Confirm upstream analytics receipt GREEN before retention response begins.
Steps
- Open
post_fest_analytics_tools_receipt_v1.json— verifypost_fest_analytics_ok: true. - Append D+1 row to
post_fest_daily_export_2026.csv(crosswalk lane). - Write
nightly-cards/night-1.mdwith downloads snapshot +build_id. - Post
#PostOctoberRetention2026:- R1 GREEN/YELLOW/RED
- analytics receipt path
- build_id under measurement
Stand-up script (paste and edit)
## #PostOctoberRetention2026 — Night 1 (R1)
Analytics baseline: GREEN
build_id: 2026-11-01-trunk01
Receipt: release-evidence/analytics/post_fest_analytics_tools_receipt_v1.json
Next: Night 2 refund one-metric card
Pass criteria for R1
post_fest_analytics_oktrue on BUILD_RECEIPT.- D+1 crosswalk row exists in daily export CSV.
Night 2 — R2 refund one-metric card (~20 minutes)
Goal: Log refund rate against threshold—one number, one decision.
Steps
- Export Steamworks Sales & Activations for D+1…D+2 (or use cached export from analytics setup).
- Compute
refund_rate_pct; compare torefund_threshold_v1.json. - Write
nightly-cards/night-2.mdwith rate + RED/YELLOW/GREEN vs threshold. - If YELLOW/RED: create
crash-repro/D+2/folder placeholder—even if empty, path must exist. - Post
#PostOctoberRetention2026with R2 status and rate (no player PII).
Pass criteria for R2
- Refund rate logged on daily export CSV refunds row.
- Threshold comparison documented in night-2 card.
Night 3 — R3 crash triage + smoke (~20 minutes + smoke time)
Goal: Tie uninstall proxy notes to reproducible crash evidence or clean smoke.
Steps
- Review support tickets + uninstall notes from analytics dashboard
uninstalls-01. - Run installed smoke on trunk
build_id(boot to first interactive screen). - If crash reproduced: save logs under
crash-repro/D+3/withrepro_steps.md. - File
demo_smoke_receipt_v1.jsonor update night card withsmoke_clean: true/false. - Post
#PostOctoberRetention2026with R3 status—if RED, link repro folder path.
Pass criteria for R3
- Smoke receipt or night card documents pass/fail honestly.
- RED triggers pause on post-fest patch until forward #4 case study path or fix merged.
Night 4 — R4 retention action logged (~20 minutes)
Goal: Record what the team did about signals—not only what metrics said.
Steps
- Decide one action: hotfix branch, config toggle, FAQ/store copy fix, community recap, or defer with reason.
- If hotfix: reference forward #9 PATCH exception schema in
notes—do not ship without numbered row. - If defer: document why (e.g. "refund YELLOW but smoke GREEN—watch D+5").
- Update
nightly-cards/night-4.mdwithretention_actionfield. - Post
#PostOctoberRetention2026with R4 action summary (no hype—receipt language).
Pass criteria for R4
retention_action_logged: truein night-4 card JSON or markdown frontmatter.- Deferrals include owner + revisit night (usually N5).
Night 5 — R5 capstone receipt + BUILD_RECEIPT latch (~20 minutes)
Goal: File master challenge receipt and set retention latch before forward #7 jq weekly.
Steps
- Generate
post_fest_retention_challenge_receipt_v1.jsonunderreceipts/. - Update BUILD_RECEIPT
post_fest_retention_ok: true. - Run
verify_post_fest_retention_challenge.sh(below). - Post
#PostOctoberRetention2026R5 GREEN with master receipt path. - Schedule forward #5 uninstall trend read if wishlist/refund lanes still YELLOW.
BUILD_RECEIPT latch snippet
{
"post_fest_retention_ok": true,
"post_fest_retention_challenge_receipt": "release-evidence/post-fest/retention-challenge-2026/receipts/post_fest_retention_challenge_receipt_v1.json"
}
post_fest_retention_challenge_receipt_v1.json template
{
"schema": "post_fest_retention_challenge_receipt_v1",
"fest_window": "2026-10-next-fest-live",
"post_fest_week": "2026-11-first-week",
"hashtag": "#PostOctoberRetention2026",
"build_id": "2026-11-01-trunk01",
"analytics_receipt_path": "release-evidence/analytics/post_fest_analytics_tools_receipt_v1.json",
"evidence_dir": "release-evidence/post-fest/retention-challenge-2026/",
"nights": [
{"night": 1, "gate": "R1", "owner": "REPLACE_ME", "pass": true},
{"night": 2, "gate": "R2", "owner": "REPLACE_ME", "pass": true},
{"night": 3, "gate": "R3", "owner": "REPLACE_ME", "pass": true},
{"night": 4, "gate": "R4", "owner": "REPLACE_ME", "pass": true},
{"night": 5, "gate": "R5", "owner": "REPLACE_ME", "pass": true}
],
"nightly_metrics": {
"D+1_downloads_note": "",
"D+2_refund_rate_pct": 0.0,
"D+3_smoke_clean": true,
"D+4_retention_action": ""
},
"notes": "",
"post_fest_retention_ok": true
}
verify_post_fest_retention_challenge.sh
#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/post-fest/retention-challenge-2026/receipts/post_fest_retention_challenge_receipt_v1.json}"
jq -e '.schema == "post_fest_retention_challenge_receipt_v1"' "$REC" >/dev/null
jq -e '.nights | length == 5' "$REC" >/dev/null
jq -e '[.nights[].pass] | all' "$REC" >/dev/null
jq -e '.post_fest_retention_ok == true' "$REC" >/dev/null
ANALYTICS="$(jq -r '.analytics_receipt_path' "$REC")"
test -f "$ANALYTICS"
jq -e '.post_fest_analytics_ok == true' "$ANALYTICS" >/dev/null
echo "post_fest_retention_challenge verify: OK"
Gates R1–R5 summary (beginner)
| Gate | What is RED | What you do |
|---|---|---|
| R1 | Analytics receipt missing or false | Finish analytics #2 first |
| R2 | Refund rate not logged | Export Sales & Activations; append CSV row |
| R3 | Smoke fails with no repro folder | Open crash-repro/D+3/; pair forward #4 |
| R4 | No action or defer documented | Write night-4 card before N5 |
| R5 | Master receipt invalid | Fix JSON; re-run verify script |
One-metric card template (all nights)
Store in nightly-cards/NIGHT_N_TEMPLATE.md:
# Post-fest retention — Night N (Gate R_N)
Date UTC: __________
Owner: __________
build_id: __________
| Metric | Value | vs threshold | Color |
|--------|-------|--------------|-------|
| Downloads note | | n/a | |
| Refund rate % | | warn/stop | |
| Smoke clean | yes/no | | |
| Uninstall proxy notes | | | |
Action tonight: __________
Receipt path: __________
#PostOctoberRetention2026
Proof table (what GREEN means)
| Gate | Evidence | GREEN when |
|---|---|---|
| R1 | analytics receipt + CSV row | upstream analytics ok |
| R2 | night-2 card + refund row | rate logged vs threshold |
| R3 | smoke + repro path | smoke pass OR repro filed |
| R4 | night-4 action | action or defer with owner |
| R5 | master receipt | all nights pass + ok true |
Integration with November cluster
| Cousin | Relationship |
|---|---|
| Branch unset #1 | Upstream branch truth before metrics |
| Analytics #2 | R1 consumes post_fest_analytics_ok |
| Plateau playbook | R4 may defer capsule work here |
| 5-day crash log | R3 folder structure cousin |
| Forward #4 case study | When R3 RED without quick fix |
| Forward #7 jq weekly | After R5 GREEN |
| Forward #12 capstone | Indexes post_fest_retention_ok in F6 sweep |
Scenarios A–G
A — Analytics T6 not filed before D+1
R1 RED—complete analytics listicle stack first.
B — Refund RED night 2 but smoke GREEN
R2 YELLOW/RED; R3 may still GREEN—R4 action might be FAQ/store copy not hotfix.
C — Smoke RED night 3
Pause challenge progression; pair forward #4 recovery narrative; do not set R5 ok until R3 re-run passes.
D — Team wants capsule refresh night 4
Defer in R4 card until R5 unless analytics wishlist lane documents plateau per plateau playbook.
E — Solo dev skips public hashtag
Allowed if internal stand-up log replaces post—document public_post_skipped: true in receipt notes.
F — Multi-SKU demo + full game
Split nightly cards per app_id; one master receipt with skus[] array—do not blend refund rates.
G — Publisher asks for five-night zip
Attach master receipt + nightly cards + crash-repro paths—redact player identifiers.
Common mistakes
- Starting challenge before
branch_unset_okandpost_fest_analytics_ok. - Logging fest-week downloads on D+5 instead of post-fest daily exports.
- Shipping hotfix on R3 RED without forward #9 exception list.
- Inventing uninstall percentages in hashtag posts.
- Skipping R4 "action" night because metrics "look fine."
- Treating challenge as substitute for forward #7 weekly jq—R5 precedes jq, not replaces it.
RED / YELLOW / GREEN routing
| Color | Condition | Action |
|---|---|---|
| RED | R3 smoke fail + no repro | Block patch; open case study path |
| YELLOW | Refund at warn | Continue ladder; escalate R4 action |
| GREEN | R1–R5 pass | Proceed to jq weekly #7 and trend #5 |
Enterprise and ops notes
- Incident ownership: Name
night_N_ownerfor audit—not only "#general" thread. - Data minimization: Refund posts use rates, not order IDs.
- Change control: R4 hotfix ties to BUILD_RECEIPT
build_idbump row in daily export.
Printable facilitator card
Pin in release-evidence/post-fest/retention-challenge-2026/README.md:
# #PostOctoberRetention2026 — Night _N_ (Gate R_N)
Date: __________ build_id: __________ owner: __________
[ ] Upstream analytics ok (R1 prerequisite)
[ ] One-metric card filed under nightly-cards/
[ ] Gate R_N checklist done
[ ] Crash-repro path updated if R3
[ ] Night posted OR public_post_skipped documented
[ ] Master receipt path ready for R5
Sign: __________ UTC: __________
Key takeaways
- Post-fest retention needs five nights — not one analytics export and silence.
- Gates R1–R5 run on
post_fest_retention_challenge_receipt_v1.jsonwith nightly one-metric cards. - Latch
post_fest_retention_ok: trueonly after analytics upstream GREEN and all nights pass. - R3 smoke + repro folder is the hard gate before post-fest hotfix culture wins.
- Pair analytics #2 for T1–T6 tooling—this challenge consumes it in R1.
- Pair branch unset #1 for branch truth before metrics attribution.
- Forward #4 case study when R3 stays RED without quick fix.
- Forward #7 jq weekly runs after R5 GREEN—not in parallel without waiver.
- Hashtag
#PostOctoberRetention2026is optional accountability—not a marketing campaign. - Forward #12 capstone indexes
post_fest_retention_okin child receipt crosswalk. - After R5 GREEN, file uninstall curve trend playbook #5 (G1–G6) before November sprint store edits—R2/R4 nights reference
uninstall_curve_class_v1.json. - After curve + badge-strip cousins GREEN, run jq weekly retention #7 (J1–J6,
post_october_retention_weekly_ok) each Monday—R5 is point latch, not weekly truth.
FAQ
Can I run this during fest live week?
No—this ladder is D+1…D+5 after fest ends. Live week uses February pager cousin format.
What if I only have three engineers?
Twenty-minute cap still applies—one owner per night can rotate; all five nights required for R5.
Do I need exact uninstall rates?
No—use proxy notes per analytics #2; do not invent percentages in posts.
How does this relate to the crash recovery case study?
Forward #4 is the deep recovery narrative when R3 RED persists—challenge is the five-night accountability shell.
Can I skip hashtag posts?
Yes with public_post_skipped: true in receipt notes—internal stand-up log must still exist.
Related reads
- 14 Free Post-October Fest Steam Analytics Refund and Demo Uninstall Tools
- Your First SteamFest Branch Unset and Default Branch Return Receipt After October Live
- Post-Next-Fest Wishlist Plateau Diagnostic Playbook
- 5-Day Demo Crash Log Challenge Before Next Fest
- 5-Night October Next Fest Upload Dress Rehearsal Challenge
- We Recovered Steam Demo Crash Rate Spike After October Fest — cluster #4
- November 2026 Post-October Fest Uninstall Curve Trend Playbook — cluster #5; file after R5 when D+7 proxy notes plateau
- jq Gate Sketch for post_october_fest_retention Weekly Demo Row Diff — cluster #7; J1–J6 weekly row diff after R5 GREEN
- 25 Free Live-Ops Analytics Tools Indie Games 2026 Edition
- Official docs: Steamworks Sales Reports
Closing
The first five nights after October fest are when downloads cliff, refunds spike, and crash reports arrive—whether the team has a ladder for them or only a fading #fest-live thread. Run gates R1–R5, file one master receipt, and let post_fest_retention_ok mean you responded on purpose—not that you hoped players would stay. When forward weekly jq reads a green latch backed by five nightly cards, November sprint stops being retention theater and becomes evidence you can grep.