Money & Business Jul 12, 2026

February Fest Refund Spike Threshold Worksheet When Wishlist Converts to Demo - 2026

2026 February fest refund spike threshold worksheet when wishlist converts to demo—daily D1–D7 refund % table, february_refund_spike_receipt_v1.json, gates R1–R6, verify_february_refund_spike.sh, BUILD_RECEIPT refund_spike_watch_ok.

By GamineAI Team

February Fest Refund Spike Threshold Worksheet When Wishlist Converts to Demo - 2026

Pixel-art hero for February fest refund spike threshold worksheet wishlist converts demo 2026

February fest day three: wishlists jumped Tuesday after a creator clip. Installs followed Wednesday. Support is quiet. Finance opens Steamworks Friday and refunds are +2.1% versus your October baseline—while hour-one funnel went YELLOW on quit rate Thursday and nobody filed a receipt.

February 2027 live week punishes teams who treat refunds as a post-fest finance surprise. Wishlist spikes convert to demo installs 48–72 hours before refund language spikes—often while jq hourly live ops still shows GREEN build_label rows. You need numeric stop rules per fest day, not a Discord thread titled "are refunds bad?"

This Money & Business worksheet ships february_refund_spike_receipt_v1.json, gates R1–R6, verify_february_refund_spike.sh, a D1–D7 daily refund % threshold table, and BUILD_RECEIPT refund_spike_watch_ok—strategy above the beginner refund signal dashboard, below Resource #37 forward and Course 277 forward.

Non-repetition note: Refund signal dashboard owns evening CSV observability for any fest. Steam refund spike diagnostics owns patch-week event taxonomy. January marketing cap owns weekly marketing cash. This URL owns live-week daily refund % thresholds when wishlist → demo conversion spikes during D1–D7.

Pair hour-one funnel F1–F6, February live week timebox, jq hourly live ops J1–J6, and January marketing cap K1–K6.

Why this matters now (February 2027 live week)

  1. Wishlist lag — Creator clips and fest featuring move wishlists before installs; refunds trail installs by 48–72h—thresholds must be per fest day, not monthly averages.
  2. Funnel early warningHour-one quit rate YELLOW on D2 often precedes refund RED on D4—worksheet wires both without merging schemas.
  3. Paid burst riskJanuary marketing cap paused ads on smoke RED; live week needs refund stop rules that pause paid social when refund_rate_48h crosses RED—even if engineering is mid-HOTFIX.
  4. Pager noise5-night pager challenge P4 routes funnel + moderation; refund thresholds give producers a non-pager lane for finance signals.
  5. Sunday closeout — Forward #11 closeout row review needs february_refund_spike_daily_log.jsonl—not reconstructed from Steamworks screenshots.

Direct answer: Fill february-refund-spike-threshold-2027.md with D1–D7 refund % caps, 48h rolling rate formula, stop rules SR1–SR5, file february_refund_spike_receipt_v1.json, run verify_february_refund_spike.sh, set BUILD_RECEIPT refund_spike_watch_ok: true before declaring live-week marketing GREEN.

Who this worksheet is for

Audience Outcome
Solo founder Printable daily caps you can cite in #fest-live-ops
Producer Pause paid social when refund RED without engineering debate
Working dev refund_spike_watch_ok row + jq diff against funnel CSV
Finance Partner-ready daily log—not month-end surprise

Time: ~50 minutes first worksheet; 8 minutes each fest morning update actual_refund_rate_48h.
Prerequisites: Refund signal dashboard CSV or Steamworks refund export access, hour-one funnel CSV for D1–D7, October or January baseline refund rate documented honestly.

Format ladder (February cluster)

Artifact Role
Refund dashboard Evening CSV + weekly Friday review
Hour-one funnel Launch/quit rates per fest day
This worksheet Daily refund % thresholds D1–D7
jq hourly live ops Hourly BUILD_RECEIPT row diff
January marketing cap Pre-live weekly marketing cash
Forward #10 HOTFIX opinion Mid-fest promotion exceptions

Order: Funnel CSV filed → this worksheet thresholds signed → jq hourly indexes refund_spike_watch_ok → pager P4 crosswalk.

Beginner path — D1–D7 refund threshold table

Copy into release-evidence/ops/february-refund-spike-threshold-2027.md:

Fest day Wishlist spike expected? Max refund rate 48h (%) Yellow at (%) Red at (%) Primary stop rule
D1 Moderate (fest open) 1.8 1.4 1.8 SR1 — pause paid social
D2 High (creator day) 2.2 1.7 2.2 SR2 — hold community promises
D3 Peak installs 2.5 2.0 2.5 SR3 — pager consult if funnel RED
D4 Refund lag hits 2.8 2.2 2.8 SR4 — no HOTFIX without #10
D5 Mid-fest fatigue 2.4 1.9 2.4 SR1
D6 Weekend clip replay 2.6 2.1 2.6 SR2
D7 Closeout noise 2.0 1.6 2.0 SR5 — defer post-fest ads

Beginner rule: refund_rate_48h = refunds in trailing 48 hours ÷ demo installs in trailing 48 hours × 100. Use Steamworks exports or honest manual counts—do not invent precision.

Baseline: Document baseline_refund_rate_pct from your last fest or last 30-day demo window (e.g. 1.2%). Thresholds above assume micro-studio demo scope—tighten if your baseline is lower.

Success check: Each morning stand-up answers: "Are we YELLOW or RED on today's row?" without opening three browser tabs.

Stop rules SR1–SR5 (copy to stand-up pin)

Rule Trigger Action
SR1 YELLOW on current fest day Pause paid social until next morning sample
SR2 RED on current fest day Hold feature/marketing promises in Discord/Steam news
SR3 RED + funnel quit_rate YELLOW Pager P4 consult—gameplay vs store-copy
SR4 RED + build_label change requested Forward #10 HOTFIX exception list before promote
SR5 D7 RED Defer post-fest ads until Sunday closeout #11 filed

Producer sign-off: No SR rule fires on vibes—attach february_refund_spike_receipt_v1.json path to stand-up thread.

Developer path — gates R1–R6

Gate Check Fail action
R1 Schema + fest_window Fix february_refund_spike_receipt_v1
R2 fest_day in D1–D7 Fill current fest day
R3 Threshold row exists for fest_day Complete worksheet table
R4 refund_rate_48h computed Attach export path in notes
R5 Funnel crosswalk hour_one_funnel_receipt path resolvable
R6 refund_spike_watch_ok All R1–R5 pass + stop rule documented

R5 fail-closed: If funnel receipt missing, route hour-one funnel evening before refund comms.

february_refund_spike_receipt_v1.json (schema)

{
  "schema": "february_refund_spike_receipt_v1",
  "fest_window": "2027-02-next-fest-live",
  "fest_day": "D4",
  "observed_utc": "2027-02-25T14:00:00Z",
  "baseline_refund_rate_pct": 1.2,
  "refund_rate_48h": 2.6,
  "installs_48h": 1840,
  "refunds_48h": 48,
  "threshold_yellow_pct": 2.2,
  "threshold_red_pct": 2.8,
  "stop_rule": "SR4",
  "status": "RED",
  "snapshot": {
    "hour_one_funnel_receipt": "release-evidence/funnel/HOUR_ONE_FUNNEL_SNAPSHOT_D4.json",
    "hour_one_quit_rate": 0.44,
    "february_fest_live_ops_hourly_ok": true,
    "marketing_spend_paused": true
  },
  "gates": {
    "R1_schema": "pass",
    "R2_fest_day": "pass",
    "R3_threshold_row": "pass",
    "R4_rate_computed": "pass",
    "R5_funnel_crosswalk": "pass",
    "R6_receipt_filed": "pass"
  },
  "refund_spike_watch_ok": true
}

Daily log (jsonl)

release-evidence/february-live/february_refund_spike_daily_log.jsonl — one line per fest morning:

{"fest_day":"D4","observed_utc":"2027-02-25T14:00:00Z","refund_rate_48h":2.6,"status":"RED","stop_rule":"SR4","receipt_path":"release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_D4.json"}

verify_february_refund_spike.sh

#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_LATEST.json}"

jq -e '.schema == "february_refund_spike_receipt_v1"' "$REC" || exit 1
jq -e '.fest_day != null and (.fest_day | test("^D[1-7]$"))' "$REC" || exit 2
jq -e '.threshold_red_pct != null and .threshold_yellow_pct != null' "$REC" || exit 3
jq -e '.refund_rate_48h != null and .installs_48h >= 1' "$REC" || exit 4
jq -e '.snapshot.hour_one_funnel_receipt != null' "$REC" || exit 5
jq -e '.refund_spike_watch_ok == true' "$REC" || exit 6

# RED must name stop_rule
jq -e 'if .status == "RED" then .stop_rule != null else true end' "$REC" || exit 7

echo "february_refund_spike verify: OK"

PowerShell verify cousin

$Rec = "release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_LATEST.json"
$j = Get-Content $Rec -Raw | ConvertFrom-Json
if ($j.schema -ne "february_refund_spike_receipt_v1") { exit 1 }
if ($j.fest_day -notmatch "^D[1-7]$") { exit 2 }
if (-not $j.refund_rate_48h) { exit 4 }
if (-not $j.snapshot.hour_one_funnel_receipt) { exit 5 }
if (-not $j.refund_spike_watch_ok) { exit 6 }
Write-Host "february_refund_spike verify: OK"

Exit code table

Exit Meaning Fix
0 R1–R6 pass Marketing lane follows status
1 Wrong schema Fix receipt filename
2 Invalid fest_day Set D1–D7
3 Missing thresholds Complete worksheet row
4 Rate not computed Attach Steamworks export
5 Funnel path missing Run funnel evening first
6 refund_spike_watch_ok false Complete gates
7 RED without stop_rule Name SR1–SR5

jq sketches (funnel + refund crosswalk)

Compare quit_rate vs refund status

FUNNEL=release-evidence/funnel/HOUR_ONE_FUNNEL_SNAPSHOT_D4.json
REC=release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_LATEST.json

jq -s '
  .[0] as $f | .[1] as $r |
  {
    fest_day: $r.fest_day,
    quit_rate: $f.hour_one_quit_rate,
    refund_rate_48h: $r.refund_rate_48h,
    refund_status: $r.status,
    route: (if $f.hour_one_quit_rate > 0.42 and $r.status == "RED"
            then "SR3 pager consult"
            else "producer lane" end)
  }
' "$FUNNEL" "$REC"

Append daily jsonl line

jq -c '{
  fest_day, observed_utc, refund_rate_48h, status, stop_rule,
  receipt_path: "release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_LATEST.json"
}' "$REC" >> release-evidence/february-live/february_refund_spike_daily_log.jsonl

Pair jq hourly live ops when february_fest_live_ops_hourly_ok must snapshot refund_spike_watch_ok beside funnel rows.

BUILD_RECEIPT wiring

{
  "build_label": "fest-demo-2027-02-rc2",
  "refund_spike_watch_ok": true,
  "february_refund_spike_receipt": "release-evidence/february-live/FEBRUARY_REFUND_SPIKE_RECEIPT_LATEST.json",
  "february_refund_spike_daily_log": "release-evidence/february-live/february_refund_spike_daily_log.jsonl",
  "marketing_spend_paused": false
}

Latch order during live week:

  1. Morning: compute refund_rate_48h, file daily receipt, append jsonl.
  2. If YELLOW/RED: flip marketing_spend_paused per SR rules—cousin January marketing cap stop rules.
  3. Hourly jq receipt snapshots refund_spike_watch_ok—does not replace R1–R6 gates.

Integration with February cluster #1–#8

Row Refund worksheet coupling
#1 timebox Refund watch is non-pager morning lane
#2 funnel R5 crosswalk + SR3 routing
#4 pager SR3 consult when funnel + refund RED
#6 queue Do not blame queue for refund spike without R4 proof
#8 jq hourly Snapshot refund_spike_watch_ok in hourly row_diff

Worked example — D4 wishlist-to-refund lag

Time Event Worksheet action
D2 18:00 Creator clip → wishlist +18% Note in notes; thresholds unchanged
D3 09:00 Installs spike; funnel quit_rate 0.39 GREEN funnel; continue SR watch
D3 22:00 quit_rate 0.43 YELLOW File funnel receipt; warn in stand-up
D4 08:00 refund_rate_48h 2.6% RED File receipt; SR4; pause paid social
D4 10:00 Engineer requests HOTFIX Forward #10 exception list
D4 14:00 verify script exit 0 refund_spike_watch_ok true on BUILD_RECEIPT

Producer rule: Do not post "we hear you on performance" until R4 shows rate—not funnel vibes alone.

Facilitator morning script (8 min)

## February refund spike morning (D?)

- [ ] Export installs + refunds trailing 48h
- [ ] Compute refund_rate_48h vs today's threshold row
- [ ] Load hour_one_funnel_receipt for same fest_day
- [ ] File february_refund_spike_receipt_v1.json
- [ ] Run verify_february_refund_spike.sh → exit 0
- [ ] If YELLOW/RED → name SR1–SR5 in stand-up
- [ ] Append february_refund_spike_daily_log.jsonl
- [ ] Update BUILD_RECEIPT refund_spike_watch_ok

Proof table

Row Evidence GREEN when
P1 Daily receipt JSON R1 pass
P2 Worksheet threshold row R3 pass
P3 Steamworks export path R4 pass
P4 Funnel receipt path R5 pass
P5 jsonl morning line Logged
P6 verify script exit 0 R1–R6 pass

Scenarios A–G

A — D1 below baseline — Status GREEN; still file receipt (proves watch active).

B — D2 YELLOW, funnel GREEN — SR1 pause paid social only.

C — D3 RED, funnel YELLOW — SR3 pager consult; do not HOTFIX blindly.

D — D4 RED, label drift — SR4 + setlive case study routing.

E — Refund spike, queue slowQueue Q4 comms_only—separate from SR rules.

F — Marketing cap conflict — January cap paused ads; this worksheet resumes only when status returns GREEN two mornings.

G — D7 closeout — SR5 defer ads; hand jsonl to forward #11 Sunday closeout.

Comparison pack (refund artifacts)

Artifact Cadence Schema
Refund dashboard CSV Weekly Friday refund-signals.csv
Patch-week diagnostics Per patch event taxonomy
This worksheet Daily D1–D7 february_refund_spike_receipt_v1
October fest spend cap Pre-fest pool marketing runway

Common mistakes

Monthly average during live week — D4 RED hides inside a "fine" monthly rate.

Wishlist celebration without install denominator — Refund % needs installs_48h, not wishlist count.

Skipping funnel crosswalk — Store-copy refunds look like gameplay bugs in stand-up.

HOTFIX on RED without SR4 — Forward #10 before promote.

Duplicate refund dashboard — Keep CSV for language tags; this receipt owns daily % thresholds.

Printable producer card

# february_refund_spike morning (pin near finance)

1. refunds_48h ÷ installs_48h → rate
2. Compare to today's D? yellow/red row
3. Load funnel receipt same fest_day
4. verify_february_refund_spike.sh → exit 0
5. YELLOW → SR1 pause ads
6. RED → SR2–SR4 per table
7. Append jsonl + BUILD_RECEIPT latch

Steamworks export notes (honest limits)

Steamworks does not ship a one-click "fest demo refund rate" API for all partners. Acceptable R4 evidence:

  • Manual count from Sales & Activations + refund reports for trailing 48h
  • Exported CSV snapshots stored under release-evidence/february-live/refund-exports/
  • notes field documenting export timestamp and rounding

Do not claim sub-hour precision—48h rolling windows are intentionally coarse.

Saturday rehearsal (pre-live week)

Run this once the week before D1—treat as dress rehearsal, not optional:

  1. Copy D1–D7 threshold table with your baseline filled in.
  2. Backfill three synthetic rows in february_refund_spike_daily_log.jsonl from October or January data.
  3. Run verify_february_refund_spike.sh on a sample receipt until exit 0 twice.
  4. Pair producer + finance on SR1 wording for Discord/Steam news holds.
  5. Confirm hour-one funnel CSV path matches R5 crosswalk in jq sketch.

Success check: Facilitator can compute refund_rate_48h in under five minutes without asking engineering for a new export format.

Related GamineAI reads

Key takeaways

  1. Wishlist spikes convert to refund spikes 48–72h later—thresholds must be per fest day D1–D7.
  2. february_refund_spike_receipt_v1.json gates R1–R6 with honest refund_rate_48h.
  3. february_refund_spike_daily_log.jsonl timestamps morning finance truth for Sunday closeout.
  4. SR1–SR5 pause ads, hold promises, and route pager/HOTFIX—no Discord panic.
  5. R5 crosswalks hour-one funnel—quit_rate YELLOW + refund RED → SR3.
  6. BUILD_RECEIPT refund_spike_watch_ok latches before live-week marketing GREEN.
  7. jq hourly #8 snapshots refund bool beside funnel rows.
  8. Cousin refund dashboard owns weekly CSV tags—not daily % caps.
  9. Forward #10 HOTFIX exception when SR4 fires on RED—#10 consumed (HOTFIX exception opinion).
  10. Sunday closeout C5 indexes daily jsonl debrief annex—#11 consumed.
  11. Resource #37 + Course 277 forward own tool/milestone cousins.
  12. February cluster #12 published—same-day Whisper live-week triage closes February cluster #1–#12.

FAQ

Is this the same as the refund signal dashboard?
No—dashboard owns weekly CSV + language tags; this worksheet owns daily % thresholds during live fest.

What denominator should I use?
Demo installs in trailing 48h—not wishlists, not total library owners.

Can I skip mornings when rate is GREEN?
File a minimal receipt anyway—proves watch was active for partners.

Does RED always mean gameplay bug?
Often store-copy or scope mismatch—check funnel + refund dashboard tags before HOTFIX.

What ships next in February cluster?
Blog-Create #10 — stop hotfixing fest demos without numbered HOTFIX exception list.

Closing

February live week converts wishlist hype into refund math faster than most teams expect. One daily threshold row, one morning receipt, and R1–R6 turn finance panic into BUILD_RECEIPT truth—beginners copy the D1–D7 table, working devs wire verify + jq crosswalk, producers get stop rules before paid social amplifies a RED morning.