PS3838-backed grading MVP

danchrow · pcarr00001 (feed 25) → KIBL score check → fan-out to bet105 market family. Not a ledger. Canonical copy: drever-feeds-docs GRADING.md.

Rule

A pcarr Raptors ML full game result grades every bet105 Raptors-ML (same fixture, period, moneyline family) — not only the betout ticket. Spreads/totals use scores so every number on that period grades; a −4.5 ticket does not copy onto −7.5. No betout_ticket_id required.

Reuse (already built)

PieceWhere
Settled fixtures / specials, voids, re-settlesdrever-feeds-bet487-service SettledFixturesWorker
eventId ↔ KIBL fixturekibl_feed_map.FeedFixtureMap (feed 25)
KIBL scoresfixture:<id>.scores_cumulative (kibl-service)
pcarr tickets + regradesGET /v1/regrades/wager-history and /v3/bets on api.bet487.org
bet105 legsclv.bet_ticker (is_pinnacle = pcarr00001)
OpticOdds ticket graderdrever-feeds-optic-grade — parallel check, not this path

Flow

Pinny settled scores ──┐
Pinny pcarr tickets ───┼─→ map eventId → KIBL fixture
KIBL scores_cumulative ┘         │
                                 ├─ audit Pinny ticket vs KIBL-derived grade
                                 └─ fan-out: every bet105 leg on that
                                    fixture + period + market family
                                    → pinny.leg_grade / ticket_grade

Coverage (live ticker, 7d ending 2026-09-22)

Pinny betout = we have a grade. See last 7 days.

BucketTicketsat_risk
Retail bet10520,883$10,809,047
Has Pinny betout19,571 (93.7%)$10,324,181 (95.5%)

Not the old 8.8% join to pcarr’s own live ticker rows. Follow placeBet payloads already carry the Pinny ticket id.

Not this MVP

Customer ledger, cash-out, Bracco, Optic as primary grade, LinePros flip flags, Pinny 24h settled-cursor backfill.