Admin access
Enter the admin password to see who is using the site: how many people, what they looked at and how long they stayed. The owner key (LEADS_EXPORT_KEY) works here too. It stays in this browser only.
Users & usage
Unique users per day
Unique users
Page views
View as table
A user is one browser on one UTC day, identified by a hash that is thrown away at midnight. That makes the daily figure a true unique count, and means someone who comes back on three days is three user-days over the window, not one returning person.
Top pages
Where users came from
Clicks & actions
Named events the site fires — nav clicks, paywall views, coach usage, shares. "People" counts distinct anonymous browser IDs, so one person clicking twice is 2 events but 1 person.
Operator tools — free access, DFS salaries, in-season health, newsroom, sales & leads
Free access
Send someone free access
Access is granted first, then the link is sent — that order matters, because a sign-in link is only ever issued to an address that already has access. Untick "Email it to them" to get the link without sending anything, for pasting into a DM. Full access is instant either way; the link only saves them the sign-in step.
DFS salaries
Loading salary status…
In-season health
Missing and stale
Nothing missing.
Last updates
Data sources
Presence of a key or id only. The key itself never leaves the environment.
Scheduled jobs
Every run, cron or button, writes one row to the job log; a job that throws is a logged failure. Rerun runs the job now through the same log.
Failed jobs, last 7 days
Newsroom control
Paused, every validated piece is stored as held · awaiting approval and nothing reaches the site until Approve is pressed in the Editorial table below. The pause is a database setting, so it survives a deploy; FLAG_AUTO_PUBLISH=0 in the Worker vars does the same from the dashboard.
Feature flags
Legacy content migration
Every scheduled story, job and Routine the desk used to run, and what became of it. The audit below fails if a retired kind is ever runnable again or two kinds share a slot.
Breaking-news events (last 20)
Saved leagues
The leagues readers have saved, and the players no id could be mapped to. Nothing is synced from a fantasy platform any more, so there are no provider runs here and no credential of any kind is stored.
Unmatched players
Editorial
Due and ready come from the schedule and the box scores, not the clock. Regenerate forces a fresh draft now, past that gate; it is for a look at the pipeline, not for publishing a piece about games that have not finished. Preview shows a held draft the public page hides.
Sales & referrals
Last 30 days
Paid sales
New leads
View as table
Purchases
Referrals
Clicks and checkout starts come from the site database (D1); paid sales and revenue come from Stripe. Owed = $3 per paid referred sale, matching
/api/affiliate-reconcile.Purchasers (entitled)
The entitlements table — authoritative paid access. Refunds and chargebacks remove rows here automatically.