KWL

Project room · Cloudflare Access — allowlist only

Cadence, in the open.

The full state of the Cadence product project: workstreams, artifacts, evidence and decisions. If you can read this, you’re on the access list — welcome.

Status board

Data pipeline — 9 fetchers, cron + checkpointing KWL eng in-progress All fetchers proven; recurrence being switched on
France Edition 01 (public flagship) KWL live Published at /reports/france/
Report generator (values JSON → template → edition) KWL eng in-progress Seeded from extract_real_values_v6.py
UK market onboarding (terms, articles, queries config) KWL eng next Edition 01 target: July 2026
Phase 2 backtest — RUN, verdict published KWL research live Test B failed both arms; Test A nowcast inconclusive at n=18. Receipts in Artifacts.
Phase 2 powered nowcast — RUN (FR + DE + JP) KWL research live Does NOT validate. Primary (savings-intent) non-sig; headline-CCI music significantly DEGRADES (FR p=0.036). The n=18 +23% reversed under power. Thread closed.
Origin classifier v3 (artist-area lookup) KWL research blocked IAM extension to sugr-pulse OR MusicBrainz fallback
Cadence Skill (Claude Skill / MCP / prompt packs) KWL eng next Ships with first subscriber edition
Stripe checkout + customer portal KWL next Stubs live on /pricing/ and /account/
Music data — DE/JP 2019–25 + FR-2019 in Athena NPILABS (Jeth) live Pulled: charts_poc_{fr,de,jp}_v1, audio features, 2019→2026, ~260k rows/market

The evidence, honestly

Phase 1 — failed, published

Pre-registered hinge test: 0/32 music features pass Bonferroni against French CCI. Forecast backtest: music degrades RMSE 4.1–14.8% vs macro-only. Verdict honoured; forecast claims withdrawn from all marketing.

Proxy validation — passed on robustness

Tempo × savings intent r = −0.52 (Tier 1, CI clear of zero); mode-major × CCI r = +0.43 (Tier 2); four further features at Tier 2 against sub-indices. This is the validated foundation of the descriptive product.

Phase 2 — run, published, killed

Pre-registered 13 Jun, run the same day. Brand/category backtest failed both arms — 0/2 features survive Bonferroni; music degrades the out-of-sample forecast in 4/6 categories. Nowcast inconclusive at n=18 (primary outcome p=0.62). Two pre-registered tests now agree: we do not sell prediction. The league tables are descriptive share-of-attention. Powered re-run done (France, Germany, Japan, n≈45): savings-intent non-significant; on headline CCI music significantly degrades the nowcast (France p=0.036) — the n=18 +23% reversed under power. The predictive thread is closed — three published clean results.

Artifacts

Decision log

28 Apr 2026 Phase 1 verdict honoured: predictive claims retracted from all marketing; descriptive pricing band adopted.
28 Apr 2026 Phase 2 pre-registration locked (6 categories × 4 brands, weekly Google Trends primary outcome). Germany & Japan held out.
11 Jun 2026 Relaunch positioning adopted: behavioural + receipts-grade + LLM-native; monthly cadence; prediction not sold until Phase 2 passes.
11 Jun 2026 Website rebuilt on the npilabs.com stack (Astro 5 + Cloudflare Pages + Access); self-service stubs shipped.
13 Jun 2026 Phase 2 pre-registration re-locked: nowcast test added; Wikipedia attention made the primary outcome (Google Trends demoted — throttle-fragile); first-difference-of-z transform and per-feature parity gate locked.
13 Jun 2026 Phase 2 RUN. Brand/category backtest failed both arms; nowcast inconclusive at n=18. A silent walk-forward bug that faked a null was self-caught and documented. No predictive claim adopted; descriptive product confirmed as the honest ceiling.
13 Jun 2026 Powered re-run amendment A2 locked before any data pull: verdict pre-committed to savings-intent (primary), per-market generalisation bar held, 2020 COVID control mandatory. DE/JP + FR-2019 confirmed in Athena; export queries written.
13 Jun 2026 Powered nowcast RUN — France, Germany, Japan (n≈45; German macro from Eurostat, Japanese CCI from OECD SDMX). Does not validate: savings-intent non-significant; on headline CCI music significantly DEGRADES the forecast (France p=0.036) — the exciting n=18 +23% reversed under power. Discipline held (amendment locked → data pulled → run). Predictive thread closed for this cycle.