Listicles & Resource Roundups Jul 13, 2026

16 Free Steam Daily Export and Wishlist Velocity Tools for Post-Fest Follow-Through - 2026

2026 listicle—sixteen free Steam daily export and wishlist velocity tools for post-fest follow-through, V1–V6 gates, post_fest_wishlist_velocity_receipt_v1.json, facilitator roster JSON, D+14 stall diagnostics.

By GamineAI Team

16 Free Steam Daily Export and Wishlist Velocity Tools for Post-Fest Follow-Through - 2026

Pixel-art hero for sixteen free Steam daily export wishlist velocity post-fest follow-through tools 2026

March 2027, D+14 after February fest: #fest-ops still celebrates hour-one funnel GREEN rows from D1–D7. Steamworks wishlist graph flattened Tuesday. Nobody exported daily visits-to-wishlist ratio since Sunday closeout. Monday debrief facilitator card cited funnel CSV paths—but velocity needs fourteen consecutive daily exports, not one festival snapshot.

March 2027 post-fest sprints punish teams that ran plateau diagnostic once without daily velocity tooling. Funnel CSV proved hour-one health; D+14 stall is a different signal—wishlists per visit decay while feature work resumes. This Listicles & Resource Roundups post gives sixteen free tools (plus a four-tool minimum stack) to export Steam metrics daily, compute velocity, file post_fest_wishlist_velocity_receipt_v1.json with gates V1–V6, and wire a facilitator roster JSON for who owns the morning export ritual.

Non-repetition note: Plateau diagnostic playbook owns hypothesis branches when growth stalls. Hour-one funnel evening owns fest-hour analytics. Refund spike worksheet owns daily refund %. UTM wishlist experiment owns source attribution over weeks. This URL owns post-fest daily export + velocity receipt—tooling stack, not another plateau theory doc.

Pair plateau playbook, hour-one funnel #2, Monday debrief #1, Resource #35 forward, forward blog #5 partner-review empty annex case study, forward blog #4 March evidence sprint challenge.

Why this matters now (March 2027 post-fest weeks)

  1. Funnel GREEN ≠ velocity GREEN — D7 hour_one_quit_rate can pass while D+14 wishlists per visit collapse.
  2. Feature sprint blindness — Engineering ships March milestones while marketing lacks daily ratio—partners ask "what changed since debrief?"
  3. Plateau without exportsDiagnostic playbook needs week buckets; velocity needs day buckets first.
  4. Facilitator handoffMonday debrief card names annex owners; velocity roster names who exports at 09:00 daily.
  5. BUILD_RECEIPT culturepost_fest_wishlist_velocity_ok proves fourteen-day export discipline before March evidence sprint (March cluster #4 — published).

Direct answer: Deploy four-tool minimum (Steamworks export + daily CSV + jq diff + roster), file post_fest_wishlist_velocity_receipt_v1.json with V1–V6 GREEN by D+14, set BUILD_RECEIPT post_fest_wishlist_velocity_ok: true when velocity jsonl has no gaps.

Who this listicle is for

Audience Outcome
Beginner Four-tool stack in one afternoon
Solo founder Stop guessing plateau from one weekly screenshot
Producer Daily stand-up number with export path proof
Working dev jq-validated velocity jsonl beside BUILD_RECEIPT

Time: ~90 minutes to wire minimum stack; ~3 hours for full sixteen-tool pass + receipt before D+1 post-fest.

Beginner cheat sheet — four-tool minimum stack

# Tool Post-fest job
1 Steamworks Marketing & Sales (native export) Daily wishlists + visits CSV
2 Google Sheets or LibreOffice Calc wishlists_per_visit column + chart
3 jq (CLI) Diff today vs yesterday JSON row
4 Facilitator roster (velocity_roster_v1.json) Who exports at 09:00 local

Rule: All four wired → ready for V1–V3. Tools 5–16 add git versioning, DuckDB SQL, CI reminders, Grafana sketches, and BUILD_RECEIPT wiring.

Developer path — gates V1–V6

Gate Pass criterion
V1 velocity_roster_v1.json lists ≥1 facilitator with export_utc window + backup
V2 post-fest-wishlist-velocity-2027.csv has ≥14 consecutive daily rows post-fest
V3 wishlists_per_visit derived—not hand-typed—in every row
V4 post_fest_wishlist_velocity_daily_log.jsonl one line per day with export file sha256
V5 post_fest_wishlist_velocity_receipt_v1.json committed under release-evidence/analytics/
V6 BUILD_RECEIPT post_fest_wishlist_velocity_ok: true matches receipt

post_fest_wishlist_velocity_receipt_v1.json (template)

{
  "schema": "post_fest_wishlist_velocity_receipt_v1",
  "fest_window": "2027-02-next-fest-live",
  "post_fest_start_utc": "2027-03-01T00:00:00Z",
  "generated_at": "2027-03-15T09:00:00Z",
  "roster_path": "release-evidence/analytics/velocity_roster_v1.json",
  "csv_path": "release-evidence/analytics/post-fest-wishlist-velocity-2027.csv",
  "jsonl_path": "release-evidence/analytics/post_fest_wishlist_velocity_daily_log.jsonl",
  "velocity_definition": "daily_wishlist_delta / daily_visit_delta",
  "gates": {
    "V1": "GREEN",
    "V2": "GREEN",
    "V3": "GREEN",
    "V4": "GREEN",
    "V5": "GREEN",
    "V6": "GREEN"
  },
  "cousin_receipts": {
    "hour_one_funnel": "release-evidence/analytics/HOUR_ONE_FUNNEL_SNAPSHOT_RECEIPT.json",
    "monday_debrief_facilitator": "release-evidence/post-fest/debrief/POST_FEST_DEBRIEF_FACILITATOR_RECEIPT.json"
  },
  "post_fest_wishlist_velocity_ok": true
}

velocity_roster_v1.json (facilitator roster)

{
  "schema": "velocity_roster_v1",
  "fest_window": "2027-02-next-fest-live",
  "facilitators": [
    {
      "name": "producer@studio",
      "role": "primary_export",
      "export_local_time": "09:00",
      "timezone": "America/Los_Angeles",
      "backup": "analytics@studio"
    },
    {
      "name": "analytics@studio",
      "role": "backup_export",
      "export_local_time": "09:30",
      "timezone": "America/Los_Angeles",
      "backup": "producer@studio"
    }
  ],
  "standup_channel": "#fest-metrics",
  "sla_hours_if_gap": 24
}

verify_post_fest_wishlist_velocity.sh

#!/usr/bin/env bash
set -euo pipefail
REC="${1:-release-evidence/analytics/POST_FEST_WISHLIST_VELOCITY_RECEIPT.json}"
CSV="${2:-release-evidence/analytics/post-fest-wishlist-velocity-2027.csv}"
ROSTER="${3:-release-evidence/analytics/velocity_roster_v1.json}"

jq -e '.schema == "post_fest_wishlist_velocity_receipt_v1"' "$REC" || exit 1
jq -e '(.facilitators | length) >= 1' "$ROSTER" || exit 2
ROWS=$(tail -n +2 "$CSV" | wc -l)
test "$ROWS" -ge 14 || exit 3
jq -e '.post_fest_wishlist_velocity_ok == true' "$REC" || exit 6
echo "post_fest_wishlist_velocity verify: OK"

Daily CSV schema (beginner)

Create release-evidence/analytics/post-fest-wishlist-velocity-2027.csv:

utc_date,wishlist_total,visit_total,wishlist_delta,visit_delta,wishlists_per_visit,velocity_band,export_sha256,notes
2027-03-01,12400,89000,180,4200,0.043,GREEN,abc123…,D+1 post-fest
2027-03-02,12520,91200,120,2200,0.055,YELLOW,def456…,traffic tail lower

Column rules:

Column Meaning
wishlist_delta Today total − yesterday total
visit_delta Today visits − yesterday visits
wishlists_per_visit wishlist_delta / visit_delta (guard divide-by-zero)
velocity_band GREEN ≥0.04, YELLOW 0.02–0.04, RED <0.02 (tune in VELOCITY_DEFINITION.md)
export_sha256 Hash of raw Steamworks export file for that day

The sixteen tools

Tool 1 — Steamworks Marketing & Sales (native export)

Post-fest job: Source of truth for wishlist and visit totals.

Setup: Partner portal → Marketing & Sales → Wishlists / Traffic → export CSV for rolling window.

Pro tip: Export same UTC hour daily—roster export_utc prevents comparing 9 a.m. Monday to 6 p.m. Tuesday.

Outbound: Steamworks Marketing documentation

Tool 2 — Google Sheets (free tier)

Post-fest job: Live chart for wishlists_per_visit with fourteen-day sparkline.

Setup: Import CSV; add formula =IF(D2=0,"",C2/D2) for ratio column.

Beginner pitfall: Do not edit imported Steamworks raw file—derived sheet only.

Tool 3 — LibreOffice Calc (free desktop alternative)

Post-fest job: Offline velocity sheet when partner VPN blocks Google.

Pro tip: Pin post-fest-wishlist-velocity-2027.ods path in receipt notes if team uses Calc instead of Sheets.

Tool 4 — jq (CLI JSON processor)

Post-fest job: Append daily jsonl line; diff yesterday vs today receipt fields.

jq -n --arg d "2027-03-02" --arg sha "$(sha256sum raw-export.csv | awk '{print $1}')" \
  '{utc_date:$d, export_sha256:$sha, wishlists_per_visit:0.055}' \
  >> release-evidence/analytics/post_fest_wishlist_velocity_daily_log.jsonl

Working dev: Pair jq hourly fest ops pattern—jsonl integrity same discipline.

Tool 5 — csvkit (csvcut, csvstat)

Post-fest job: Validate CSV column counts before appending velocity row.

csvstat --nulls post-fest-wishlist-velocity-2027.csv
csvcut -c wishlist_delta,visit_delta post-fest-wishlist-velocity-2027.csv | head

Install: pip install csvkit (free).

Tool 6 — Python + pandas (scripted velocity)

Post-fest job: Recompute wishlists_per_visit for V3 audit—never trust hand-typed ratios.

import pandas as pd
df = pd.read_csv("post-fest-wishlist-velocity-2027.csv")
df["computed"] = df["wishlist_delta"] / df["visit_delta"].replace(0, float("nan"))
assert (df["computed"] - df["wishlists_per_visit"]).abs().max() < 0.001

Tool 7 — Git (daily export commits)

Post-fest job: Version raw Steamworks exports under release-evidence/analytics/raw/YYYY-MM-DD/.

Pro tip: One commit per export day—partner diligence can git log export discipline.

Tool 8 — GitHub Actions (scheduled export reminder)

Post-fest job: Cron workflow posts to #fest-metrics if today's export file missing by 10:00 UTC.

on:
  schedule:
    - cron: '0 17 * * *'  # 09:00 Pacific
jobs:
  remind-export:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: test -f "release-evidence/analytics/raw/$(date -u +%Y-%m-%d)/steamworks.csv" || exit 1

Tool 9 — DuckDB (local SQL on CSVs)

Post-fest job: Query fourteen-day rolling average without shipping data to cloud.

SELECT AVG(wishlists_per_visit) FROM read_csv('post-fest-wishlist-velocity-2027.csv') WHERE velocity_band IS NOT NULL;

Beginner: One SQL file velocity_rolling_avg.sql checked into repo.

Tool 10 — Google Looker Studio (free dashboards)

Post-fest job: Shareable dashboard for producers—connect Sheets source refreshed daily.

Pro tip: Dashboard is presentation; CSV + jsonl remain source of truth for V4.

Tool 11 — Grafana Cloud (free tier)

Post-fest job: Alert when wishlists_per_visit drops below RED threshold three days running.

Working dev: Push daily row via simple HTTP JSON API or manual CSV ingest—alert routes to #fest-metrics.

Tool 12 — Notion (free database)

Post-fest job: Facilitator-friendly view of velocity bands with notes field for "store page A/B" links.

Caution: Sync from CSV—do not make Notion the only export store (V4 requires jsonl on disk).

Tool 13 — PowerShell Import-Csv (Windows cousin)

Post-fest job: Same V3 recompute on Windows laptops without Python.

$rows = Import-Csv "post-fest-wishlist-velocity-2027.csv"
$rows | ForEach-Object {
  if ([double]$_.visit_delta -le 0) { return }
  $r = [double]$_.wishlist_delta / [double]$_.visit_delta
  if ([math]::Abs($r - [double]$_.wishlists_per_visit) -gt 0.001) { exit 3 }
}

Tool 14 — VELOCITY_DEFINITION.md (team doc — free)

Post-fest job: Single definition of bands, export hour, and zero-visit handling.

# Post-fest wishlist velocity — March 2027
- Export UTC: 17:00 (09:00 Pacific)
- wishlists_per_visit: wishlist_delta / visit_delta; null if visit_delta = 0
- GREEN: >= 0.04 | YELLOW: 0.02–0.04 | RED: < 0.02
- Owner: producer@studio; backup analytics@studio

Tool 15 — Text Blaze / pinned Discord template (free)

Post-fest job: Daily stand-up post format:

## Velocity D+{N}
- wishlists_per_visit: {ratio} ({band})
- export: `raw/2027-03-02/steamworks.csv`
- action: {plateau branch or hold}

Pair plateau playbook hypothesis pick in {action}.

Tool 16 — BUILD_RECEIPT.json row (post_fest_wishlist_velocity_ok)

Post-fest job: Single boolean latch for Thursday row review and March evidence sprint cousin checks.

{
  "post_fest_wishlist_velocity_ok": true,
  "post_fest_wishlist_velocity_receipt": "release-evidence/analytics/POST_FEST_WISHLIST_VELOCITY_RECEIPT.json",
  "velocity_last_export_utc": "2027-03-15T17:00:00Z"
}

Velocity band routing (post-fest)

Band Condition Route
GREEN wishlists_per_visit ≥ 0.04 Feature sprint continues; log in jsonl only
YELLOW 0.02–0.04 Run plateau playbook hypothesis #1 presentation branch
RED < 0.02 three days Pause feature promises; pair partner-review case study (#5 forward) if diligence scheduled

Log routing in jsonl routing field—same pattern as hour-one funnel CSV.

Comparison pack (velocity vs cousins)

Artifact Owns Granularity
Hour-one funnel Fest hour one quit/launch Hour
Refund spike worksheet Refund % daily Day (refund lag)
Plateau diagnostic Hypothesis branches Week
This listicle Daily export + velocity receipt Day

Proof table

Row Evidence GREEN when
P1 post-fest-wishlist-velocity-2027.csv V2 ≥14 rows
P2 velocity_roster_v1.json V1 facilitators named
P3 pandas/jq recompute V3 ratios match
P4 daily jsonl V4 no gap >24h
P5 velocity receipt V5–V6 pass
P6 BUILD_RECEIPT boolean Matches receipt

Scenarios A–G

A — D+3 gap: vacation
Backup facilitator exports; document waiver in jsonl notes—gap >24h fails V4 unless producer waiver.

B — visit_delta zero (Steam reporting delay)
Mark row velocity_band: DEFERRED; do not divide by zero—V3 honesty.

C — Funnel CSV GREEN but velocity RED
Expected—route to plateau presentation branch, not pager hotfix.

D — Partner asks velocity proof
Send csv + jsonl + receipt—same bundle as Monday debrief card annex style.

E — October prep team reads this in July
Use fest_window: 2026-10-next-fest in receipt—do not copy February filenames blindly.

F — GitHub Action reminder fires daily
Tool 8 is nudge only—human still files export; Action does not replace Steamworks login.

G — Resource #35 ships expanded bookmarks
This blog owns V1–V6 policy; resource owns tool URLs—reciprocal demote duplicate prose.

Mid-post-fest roster change protocol

If primary facilitator unavailable:

  1. Update velocity_roster_v1.json with replacement_for field.
  2. Bump velocity_roster_sha256 on BUILD_RECEIPT.
  3. Post handoff in #fest-metrics within SLA hours (default 24).
  4. Do not change export UTC hour without VELOCITY_DEFINITION.md version bump.

BUILD_RECEIPT row catalog extension

Column When updated
post_fest_wishlist_velocity_ok After V6 GREEN (typically D+14)
post_fest_wishlist_velocity_receipt Path to receipt JSON
velocity_last_export_utc Each daily export
velocity_roster_sha256 Roster JSON changes

Thursday row review can diff post_fest_wishlist_velocity_ok beside hour_one_funnel_snapshot_ok during March sprint.

Extended scenarios H–L

H — Steamworks UI changes column names
Document mapping in notes column—V3 uses normalized names only.

I — Wishlist total decreases (data correction)
Negative wishlist_delta allowed—log Steam correction in notes; do not hide row.

J — Multiple apps / demos
Split CSV per app_id—never blend SKUs in one velocity row.

K — March evidence sprint starts before V6
7-day challenge (#4) expects velocity receipt or documented waiver.

L — Empty closeout annex at partner call
Velocity csv does not replace annex—pair #5 recovery case study.

Beginner path — first export evening (step-by-step)

Prerequisites: Steamworks partner login, release-evidence/analytics/ folder in repo, roster JSON drafted.

  1. Create folders: release-evidence/analytics/raw/, post-fest-wishlist-velocity-2027.csv with header row from schema above.
  2. Export Steamworks: Marketing & Sales → Wishlists → pick app → export last 7 days CSV to raw/2027-03-01/steamworks-wishlists.csv; repeat for Traffic/Visits.
  3. Normalize totals: Take latest day row wishlist total and visit total—compute delta vs prior day (first post-fest day uses fest closeout totals from Sunday closeout annex or manual snapshot).
  4. Append CSV row with derived wishlists_per_visit—run Python snippet from Tool 6 to verify.
  5. Append jsonl with jq one-liner from Tool 4.
  6. Post stand-up using Tool 15 template.
  7. Repeat daily until D+14, then file receipt V5–V6.

Time: 15 minutes per day after day-one setup (~90 minutes).

Partner diligence zip (D+14)

#!/usr/bin/env bash
set -euo pipefail
OUT="release-evidence/analytics/partner-velocity-d14-2027.zip"
zip -j "$OUT" \
  release-evidence/analytics/POST_FEST_WISHLIST_VELOCITY_RECEIPT.json \
  release-evidence/analytics/post-fest-wishlist-velocity-2027.csv \
  release-evidence/analytics/post_fest_wishlist_velocity_daily_log.jsonl \
  release-evidence/analytics/velocity_roster_v1.json
zip -r "$OUT" release-evidence/analytics/raw/
echo "partner velocity zip: $OUT"

Attach beside Monday debrief facilitator card when partners ask for post-fest metrics—not only fest-week funnel.

Steamworks export hygiene (working dev)

Check Why
Same app_id filter daily Multi-SKU studios blend metrics accidentally
UTC date boundary documented Steam totals shift at partner timezone settings
Raw file sha256 in jsonl Proves export not hand-edited
Separate wishlist vs visit files Merge in script with explicit join key utc_date

Tool depth notes (5–16 quick reference)

Tool When to adopt Skip when
csvkit CSV validation fails mysteriously Single-column exports
pandas Team already runs Python analytics Solo founder prefers Sheets only
Git raw/ Partner diligence expected Solo with local-only evidence
GitHub Actions Missed exports happened before Strict VPN-only export policy
DuckDB Rolling SQL without cloud <14 rows—eyeball enough
Looker Studio Producer wants pretty charts Receipt path is enough
Grafana RED band alerts needed Team checks Discord daily
Notion Non-dev stakeholders read metrics Notion becomes only store (forbidden)
PowerShell Windows-only export machine macOS/Linux primary
VELOCITY_DEFINITION Always—free doc Never skip
Text Blaze Stand-up format drift Pinned Discord template suffices
BUILD_RECEIPT Always for V6 Never skip

Integration with March cluster siblings

March row Relationship
#1 Monday debrief card Annex paths for fest-week; velocity is post-fest daily
#2 October RC label July prep—different fest_window in receipt
#3 This listicle Daily velocity tooling
#4 Evidence sprint (forward) Nightly E gates may reference post_fest_wishlist_velocity_ok
#5 Empty annex case study (forward) Recovery when closeout GREEN but annex empty

CI hook sketch (D+14 gate)

jobs:
  post-fest-velocity:
    if: github.ref == 'refs/heads/march-sprint-2027'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: bash scripts/verify_post_fest_wishlist_velocity.sh
      - run: jq -e '.post_fest_wishlist_velocity_ok == true' release-evidence/BUILD_RECEIPT.json

Fail-closed: March feature branches should not merge when D+14 velocity receipt missing and producer declared metrics SLA.

Worked example — D+1 through D+3 (synthetic)

Day wishlist_Δ visit_Δ ratio band
D+1 180 4200 0.043 GREEN
D+2 120 2200 0.055 YELLOW
D+3 45 3100 0.015 RED

D+3 read: Ratio RED—run plateau playbook presentation branch before promising March feature trailer.

Stand-up post (Tool 15 template):

## Velocity D+3
- wishlists_per_visit: 0.015 (RED)
- export: raw/2027-03-03/steamworks.csv
- action: plateau playbook §presentation — capsule hero readability pass

Facilitator morning script (five minutes)

  1. Export Steamworks CSV to raw/YYYY-MM-DD/.
  2. Append normalized row to velocity CSV.
  3. Run jq jsonl append + sha256.
  4. Post Tool 15 template to #fest-metrics.
  5. If RED three days, tag producer for plateau branch pick.

Common mistakes

Weekly screenshots only — Fails V2 fourteen-day requirement.

Hand-typing ratios — V3 fails pandas/jq audit.

Mixing export times — False RED/GREEN bands; fix roster UTC.

Using SteamDB as source of truth — Tool 9 cousin for sanity only; Steamworks export for receipt.

Skipping roster — V1 fails; solo founders must list backup even if same person on vacation alert.

Replacing plateau playbook — This stack feeds diagnostics with daily data.

Key takeaways

  1. Post-fest velocity needs daily exports—not one plateau pass.
  2. Four-tool minimum: Steamworks + sheet + jq + roster.
  3. post_fest_wishlist_velocity_receipt_v1.json gates V1–V6.
  4. wishlists_per_visit must be derived—V3 audit.
  5. Pair hour-one funnel for fest-week cousin.
  6. Pair Monday debrief for annex path culture.
  7. March evidence sprint challenge (#4 published) consumes velocity receipt on Night 2.
  8. Forward partner empty annex case study (#5 published).
  9. Resource #35 forward expands tool bookmarks.
  10. verify_post_fest_wishlist_velocity.sh gives CI one exit code.
  11. October RC label #2 is prep-era cousin—different fest window.
  12. March cluster #3 consumed—#4 evidence sprint next.

FAQ

Is this replacing the plateau diagnostic playbook?
No—playbook owns hypothesis branches; this listicle owns daily export tooling + receipt.

Do we need all sixteen tools?
No—four-tool minimum satisfies V1–V3; sixteen covers team preferences.

Same roster as moderation listicle?
Different file (velocity_roster_v1.json)—export SLA, not Discord shifts.

Can velocity be GREEN while funnel was RED during fest?
Yes—post-fest store fixes can recover conversion; log in notes.

What if we skipped D+1–D+5 exports?
Backfill from Steamworks historical if available; document gaps in jsonl—V2 may waive with producer note.

How does Resource #35 differ?
Resource = bookmark URLs; blog = V1–V6 policy + receipt schema.

Related GamineAI reads


Daily exports beat weekly panic—wire the four-tool stack, file post_fest_wishlist_velocity_receipt_v1.json, and give March stand-ups a ratio with a path—not a vibe.