Third-Party Verifier Plan (Zero-Budget Revision 2026-04-21)
Directive: Zero paid verifiers during alpha. Our own immutable ledger IS the verifier.
What's shipped (foundation)
pickstable withlocked_at+picks_immutable_guardPostgres trigger. Rows cannot be retroactively edited or deleted once locked. This is the foundation of the claim "no cherry picking."/api/record/exportserves the full ledger as JSON or CSV. Anyone can scrape, audit, diff over time./recordpublic page renders live metrics with empty-state + error-state handling and explicit honesty rules.weekly_snapshotsappend-only table with DB trigger blocking UPDATE/DELETE. Once Sunday 11:59 PM ET freezes a week, it cannot be altered.
Those three pieces, without any third-party stamp, are more auditable than 90% of picks services in the market.
The self-verifier strategy
We do NOT pay CAPTRACKER, SharpRank, Action Network, or Pikkit. We also do NOT pay OddsJam or Pinnacle for closing-line data during alpha.
Instead:
- Publish the ledger publicly. Already live at nuropicks.com/record.
- Snapshot odds close to game start. Self-built. Use the same free The Odds API feed we already poll to capture a closing-line snapshot at
commence_time - 5 minutesfor every open pick. Store inpicks.closing_odds+picks.closing_at(columns already exist). - Compute CLV vs consensus-of-books. Not Pinnacle-specific. We average the closing American odds across all books The Odds API returns for a market, convert to decimal, and compute
(posted_decimal / consensus_decimal) - 1. This is a slightly weaker CLV signal than Pinnacle-anchored CLV, but it's free and directionally the same for -EV detection. - Weekly public post. Cron pulls the week's snapshot from
weekly_snapshotsand posts a text-only recap to X and a pinned Discord message. Build-in-public = ongoing receipt. - Third-party audits come from the crowd. Anyone can pull
/api/record/exportand verify the math themselves. Sharp bettors on X LOVE doing this; invite them.
When to revisit paid verifiers
- 100 paying members OR $3k MRR: budget permits OddsJam trial for Pinnacle CLV.
- 250 paying members OR $7.5k MRR: budget permits CAPTRACKER enrollment (if still around in 2026+).
Until then, we win credibility by shipping the immutable record + not lying on it, not by paying for a stamp.
Implementation plan (week 1-2, zero-cost)
Step 1: Closing-line snapshot job (2-3 hours of work)
Add a new worker to src/bot/services/closing-snapshot.js:
Every 1 min:
SELECT picks WHERE closing_at IS NULL
AND posted_at < NOW() - INTERVAL '2 hours'
AND result = 'pending'
For each pick:
Look up same game+market in odds-feed cache
If game starts within next 5 min:
Snapshot current best price across all books
UPDATE picks SET closing_odds = X, closing_at = NOW()
Integrates with existing odds-feed.js which is already polling The Odds API (idle until ODDS_API_KEY set).
Step 2: Grading job (2-3 hours of work)
Add a new worker to src/bot/services/grading.js:
Every 15 min:
SELECT picks WHERE result = 'pending' AND posted_at < NOW() - INTERVAL '4 hours'
For each pick:
Look up game result (The Odds API scores endpoint, FREE, or ESPN scoreboard scrape)
If final:
Determine win/loss/push based on market and pick text
UPDATE picks SET result = X, graded_at = NOW()
Step 3: Weekly snapshot cron (2 hours of work)
Sunday 11:59 PM ET:
INSERT INTO weekly_snapshots (week_start, week_end, picks_count, wins, ..., clv_avg, by_sport, note)
SELECT (compute aggregates for last week from picks)
Once inserted, the append-only trigger prevents edits. Post the snapshot to X + Discord.
Step 4: Weekly public post automation (2 hours of work)
Script that reads latest weekly_snapshots row and:
- Posts a tweet with the numbers + link to /record
- Posts a Discord embed in #record channel
- Pins if it beat the prior week
Zero-cost CLV math (for transparency on the site)
closing_decimal = average of [american_to_decimal(b.closing_price) for b in books]
posted_decimal = american_to_decimal(pick.odds_american)
clv_pct = (posted_decimal / closing_decimal - 1) * 100
Published on /record FAQ + /methodology page so nobody can claim we're hiding the formula.
What an external auditor gets for free
- Full ledger via
/api/record/export?format=csv - Schema version header, immutability header
- Per-pick CLV, grading timestamps, locked-at timestamps
- Weekly snapshots as a separate dataset
Any sharp bettor or crypto-verification crowd member can build a verification bot on top of this and point their audience at it. That's the long play.