whowantwhat

Status

fts on · db 103,440 KB
4,775live deals (7d)
353new in 24h
76%price extracted
73%store identified
88%categorized
526cross-confirmed
72%product identity (21% by size)
57,158price points / 80d

Sources

1 dead: CheapShark. Dead means silent past a day, or fetched and never once answered. Switch a source off in seeds.php when it is gone for good, which is also the honest way to quiet this line.

sourceeverylast fetchlast successstatusitemsnote
9to5Toys 45m 20m ago 20m ago 200 3974
Ben's Bargains 60m 20m ago 20m ago 200 11487
CheapShark 60m 50m ago 54d ago error 271 HTTP 429
DansDeals 60m 1h ago 1h ago 304 1114
Doctor of Credit 60m 1h ago 1h ago 304 820
Freebies4Mom 120m 19m ago 19m ago 304 396
GamerPower 180m 50m ago 50m ago api 100
Hip2Save 60m 50m ago 50m ago 200 4771
I Heart Publix 60m 19m ago 19m ago 304 415
Koupon Karen 60m 50m ago 50m ago 304 104
Kroger Krazy 120m 50m ago 50m ago 304 571
Living Rich With Coupons 60m 20m ago 20m ago 200 1130
MojoSavings 180m 1h ago 1h ago 304 40
Money Saving Mom 180m 20m ago 20m ago 304 1385
Passionate Penny Pincher 180m 1h ago 1h ago 200 2084
Slickdeals Frontpage 30m 1h ago 1h ago 200 15249
Southern Savers 120m 1h ago 1h ago 304 1214
The Freebie Guy 120m 1h ago 1h ago 304 4392
Totally Target 60m 50m ago 50m ago 200 37
Woot 60m 20m ago 20m ago api 1085
r/DiscountedProducts 90m 1h ago 1h ago 200 27
r/buildapcsales 90m 20m ago 20m ago 200 860
r/coupons 90m 50m ago 1h ago 429 81 429 rate limited backoff ends in 2h
r/deals 90m 50m ago 50m ago 200 60
r/freebies 90m 2h ago 3h ago 429 192 429 rate limited backoff ends in 40m
Krazy Coupon Lady 60m never never 0 disabled

Floor gaps (uncategorized by the deterministic floor; the A4 instrument)

Traffic (first-party: counted at render, no cookies, no scripts, no addresses kept; bots filtered)

dayviewsvisitors
2026-11-01 27 24 so far
2026-10-31 138 124
2026-10-30 153 131
2026-10-29 174 145
2026-10-28 120 97
2026-10-27 127 117
2026-10-26 175 143
2026-10-25 188 129
2026-10-24 130 116
2026-10-23 106 92
2026-10-22 3,335 328
2026-10-21 146 131
2026-10-20 186 162
2026-10-19 221 181

Last 7 days by page: deals:store 524 / stacks 227 / deals 184 / deals:cat 55 / store 51 / privacy 50 / stores 5 / you 3 / list 3

Primary sources 3 adapters

adaptercalls todayitemsstatusprice history
CheapShark 3 271 error retained
GamerPower 3 100 api not retained
Woot 12 1,085 api not retained

Adapters answer to a call ledger the same way the model tiers do. "Not retained" means the provider's terms forbid keeping their prices, or the number is a claim rather than an observed price; the upsert refuses to write price history for those sources.

Model ceiling key present

tiermodel idtodaybudget
triage gemma-4-31b-it 40 14000/day
batch gemini-3.1-flash-lite 0 500/day
editor gemini-3.5-flash 1 20/day

Lab: last ran 20m ago · FAILED: Internal error encountered.

Backups: 7 kept, newest backup-2026-11-01.sqlite. They live outside the web root and never ride the clean tree.

Health: health.php answers 200 while the pipeline moves and 503 once nothing has ingested for two hours. Point an uptime pinger THERE, not at this page: this page returns a cheerful 200 with every cron dead, which is exactly how the site froze in August.

Digest: last written 2026-11-01. Triage runs hourly and the digest daily via cron; the web-cron URLs below force either one now.

Web cron (for the server; this machine already runs scheduled tasks)

Point any scheduler that can hit a URL at these (see DEPLOY.md):

https://whowantwhat.com/cron.php?k=Vani...(hidden on a public site)&do=ingest    every 30 min
https://whowantwhat.com/cron.php?k=Vani...(hidden on a public site)&do=triage    hourly
https://whowantwhat.com/cron.php?k=Vani...(hidden on a public site)&do=digest    daily
https://whowantwhat.com/cron.php?k=Vani...(hidden on a public site)&do=check     on demand
https://whowantwhat.com/cron.php?k=Vani...(hidden on a public site)&do=backup    on demand (daily one runs itself)

Full token: set your own 'cron_token' in config.php (then it shows nowhere), read meta.cron_token in the db, or set a passphrase temporarily and revisit this page.