Neato FlowCast
OrdersProductsInsightsAdmin
← Admin

Signal Freshness SLOs

Actual last-refresh per data signal vs its declared SLO (spec §9). SLOs are declared from the measured Keepa token budget (docs/PHASE0-BUDGET.md), not assumed. A violated SLO means every dependent decision is degraded — explicitly, on the surface that shows it.

9 signals are out of SLO. Dependent decisions degrade as listed in the table — wider buffers / advisory-only outputs — until the feed recovers. This page never shows a stale signal as healthy.
SignalStatusSLOLast refreshAgeData throughSLO basisDependent decisionsDegradation when violated
Ad spend by ASIN (Daton)VIOLATED30h2026-05-09 05:49 UTC58.0d2026-05-07Daily cron (vercel.json 15:00 UTC) + 6h slack.None shipped yet (dashboards land in W3)No shipped decision consumes this signal yet; violation blocks W3 dashboards, nothing degrades today.
FBA inventory by FC — monthly storage-fee PROXY (not the Inventory Ledger)MET45d2026-07-03 09:29 UTC2.9d2026-05-01Monthly upstream report (haul_raw.sp_api_us_fba_storage_fees, avg qty on hand per ASIN × FC × fee month) with ~1 month publication lag; full-refresh sync `pnpm w3:haul-sync --kind inventory`; 45d budget per W3-DECISIONS.md D2. Fee month 2026-02 is absent UPSTREAM. This proxy stands in for GET_LEDGER_SUMMARY_VIEW_DATA, which is unreachable without SP-API creds (W3-BLOCKED.md B1a); swaps to the Ledger without UI change when creds land.Regional inventory share (W3.2 coverage + heatmap) — grade-capped B wherever used (D2)Coverage pages always label the proxy semantics + fee-month window; on violation the label escalates to a stale-proxy banner and coverage numbers render with their as-of month, never as current truth.
Amazon Fulfilled Shipments (Haul → Neon, daily by FC × ship-to state)VIOLATED2d2026-07-03 09:53 UTC2.8d2026-07-02Daily incremental `pnpm w3:haul-sync --kind shipments` + 24h slack. Source: BigQuery neato-haul-prod, splice of daton_archive.us_fulfilled_shipments (2022-04-05→2026-05-24) and haul_raw.sp_api_us_amazon_fulfilled_shipments (2026-05-25→, ingests daily). Same report W3.2(b) names (GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL); direct SP-API pull blocked on absent LWA creds (W3-BLOCKED.md B1, D1).Regional demand geography (W3.2 coverage + heatmap), cross-country fulfillment %, S7 ship-distance validationCoverage pages show the §9 degradation banner with data_through when violated; demand-share windows clamp to data_through rather than silently shortening.
FBA inventory snapshot (Daton)MET30h2026-07-05 10:57 UTC19h2026-07-05Daily cron (vercel.json 14:45 UTC) + 6h slack. Spec §9: daily.PO recommendations (on-hand units, stockout risk)Recommendations page stale-data banner covers on-hand inputs; urgency bands advisory-only.
Keepa buy-box seller historyVIOLATED30h2026-07-03 02:43 UTC3.1d—Measured 2.2 tokens/ASIN with buybox=1 (w0-token-measurement.json, production key 2026-07-03). 2,702 ASINs ≈ 5,944 tokens/refresh = 1.6% of the 367,200/day budget (255 tokens/min) → daily affordable; full sweep ≈ 23 min worst-case wall-clock.None shipped yet (BB unit-share calibration lands in W1)Violation caps calibration-cell trust and grades in W1; today nothing shipped consumes it.
Keepa monthlySold (+history)VIOLATED30h2026-07-03 02:43 UTC3.1d—Measured 1.0 token/ASIN (docs/artifacts/w0-token-measurement.json, re-measured 2026-07-03 on the production key). Catalog 2,251 + 20% prospect headroom = 2,702 tokens/refresh = 0.7% of the 367,200/day budget (255 tokens/min, verified via /token 2026-07-03) → daily trivially affordable. 24h cadence + 6h slack.monthlySold coverage census (W0.1); demand intervals from W1 onwardCensus page shows a stale-signal warning and every monthlySold interval carries its own observation timestamp (G2), so consumers see staleness per-ASIN.
Keepa live offers + stock seriesVIOLATED30h2026-07-03 02:43 UTC3.1d—Measured 4.0 tokens/ASIN with buybox+offers=20+stock (w0-token-measurement.json, production key 2026-07-03). 2,702 ASINs ≈ 10,808 tokens/refresh = 2.9% of the 367,200/day budget → DAILY (was weekly only under the wrong 25/min quota; corrected 2026-07-03). Catalog-scale pulls begin in W1; until then this signal reads never-refreshed (only the measurement samples exist), which is the honest state.None shipped yet (tail stock-signal stack lands in W1/W2)Violation widens tail uncertainty and caps grades once W1 ships; today nothing shipped consumes it.
Keepa price history + offer countsVIOLATED30h2026-07-03 02:43 UTC3.1d—Same 1.0-token/ASIN pull as monthlySold (measured, production key 2026-07-03); refreshed by the same daily sweep.None shipped yet (calibration + reconciliation land in W1)Violation caps downstream grades once W1 ships; today nothing shipped consumes it.
Own sales (Daton → BigQuery → Neon)SUPERSEDED
→ own_sales_haul
30h2026-07-03 02:46 UTC3.1d2026-06-29Daily cron (vercel.json 14:30 UTC) + 6h pipeline slack. Spec §9: daily. OUTAGE: upstream Daton BigQuery project (#861821516724) was deleted — feed dead since 2026-05-05, confirmed by backfill attempt 2026-07-02; re-pointing the sales source is an AC/infra decision outside this repo. RETIRED 2026-07-02 (W1.0): superseded by own_sales_haul + own_sales_traffic (BigQuery project neato-haul-prod). Row kept for history; no longer counts as a violation.PO recommendations, volume tiers (A/B/C/U), census GMV weightingRecommendations page shows a visible stale-data downgrade banner (outputs advisory-only); census page labels the actual GMV window used and flags it as stale.
Own sales (Haul fct_orders → Neon)VIOLATED30h2026-07-03 02:39 UTC3.1d2026-07-03Daily cron (vercel.json 14:30 UTC) + local runner `pnpm w1:haul-sync` + 6h slack. Spec §9: daily. Source: BigQuery neato-haul-prod dbt_prod_mart.fct_orders (order-line grain, LIVE, 2021-09→today), ADC read-only. Replaces the Daton feed that died 2026-05-05 (see superseded own_sales row).PO recommendations, calibration ground truth (W1.2/W1.3 fit windows), reconciliation bottom-up leg (W1.4), future backtests (W2)Recommendations page shows the §9 degradation banner (advisory-only) when violated; calibration snapshot builds refuse windows that extend past data_through.
Own sales & traffic by ASIN (Haul fct_daily_traffic → Neon)VIOLATED30h2026-07-03 02:46 UTC3.1d2026-06-29Daily cron (vercel.json 14:45 UTC) + local runner + 6h slack, measured on sync completion (pulled_at). NOTE: the upstream SP-API SalesAndTraffic report itself lags ~3 days — data_through shows the true business-date horizon; the SLO governs whether WE synced what exists.Census GMV weighting, volume tiers (A/B/C/U), sessions covariate, SP-API buy_box_pct cross-checkCensus page labels the actual GMV window and flags staleness; tiers carry computed_at. Violation reverts census/tiers to last-synced window with visible window bounds.
Amazon restock recommendations (Daton)VIOLATED30h2026-07-04 20:39 UTC34h2026-07-03Daily cron (vercel.json 15:15 UTC) + 6h slack.None shipped yet (PO-review cross-check lands in W4)No shipped decision consumes this signal yet.

Spec §9 also lists Fulfilled Shipments and SmartScout as future signals — they are not ingested by this app yet, so no SLO is declared for them (declaring one would be fake green).