Security model
Sports Operations Security model, homeReal wager comparisons
Private Fantasy402 spool and recorded 4C observations. Canonical identities, provider time units, depth and exact fee evidence must pass review before an estimate appears.
Venue fee references · checked October 10, 2026
Public schedules are reference evidence, not an assessment for your account or selected market. Maker/taker treatment, contract units, execution grouping, settlement and account charges still need confirmation.
- Kalshi event-contract schedule · market multipliers and rounding apply.
- Polymarket protocol fees · market parameters and product jurisdiction must match.
- Novig fee schedule · trade type, league, channel and fill VWAP matter.
Live rotation grade
- 123,330WAGERS
- 0HIT
- 2,027EARLY
- 12,467AFTER GAP
- 14,551LIVE
- 11,248PROP
- 0NCAAW
- 6,938SMALL
- 2,697ODDBALL
- 49SHARED-IP
- 37VELOCITY
NOT JOINED The 4C number at the wager is not on this tape, so this is not a move order.
- #8520TENNIS6-165…-16012:31–23:20
- #403FOOTBALL1,943-170…12000:01–23:46
- #308FOOTBALL1,518-525…11002:49–23:05
- #476FOOTBALL1,354-185…11500:19–23:45
- #475FOOTBALL1,343-180…16500:05–23:56
- #395FOOTBALL1,280-375…10000:02–23:59
- #404FOOTBALL1,249-150…12000:13–23:52
- #307FOOTBALL1,163-220…37506:33–21:53
- Store getBetTicker amounts as integer cents. Display divides by 100.
- Join Login to weblog LoginID by time. Data does not hold a ticket id.
- Internet S/L/T volume is min(stake, to-win), except class T teasers, which stay null.
- ALERT with its closest Internet twin is the notice. Internet is the canonical wager. At or inside 6 seconds they are one bet. The closest twin greater than 6 seconds and less than 60 is late.
- agent_id equals login. agent_id equals agent_login is normal and is not a hit.
- Cloudflare and hosting pins are the edge, not the customer.
The graph prints dollars. The pair stores cents, and display divides by 100.
LOGINS and LAST LOGIN count weblog rows joined to a ticket by login. A gap greater than 300 seconds is left out. The tape has no ticket id to join on. Weblog rows are a separate feed, so this page publishes no join count.
Straight, spread and total volume is the smaller of stake and to-win. A class T teaser stores no volume. VolumeAmount stays on each spool row, and this page publishes no volume count.
CONFIRM is the closest twin at or inside 6 seconds, one bet. LATE is the closest twin greater than 6 seconds and less than 60. At 60 seconds or more the alert is an ORPHAN. An equal gap keeps the earlier Internet ticket.
A hit is agent_id equal to the customer login. agent_id equal to agent_login is the book, and it is not a hit.
Chicago, Dallas, Baton Rouge and Los Angeles are hosting pins. A pin is the edge, not an account. Hosting pins are a separate feed, so this page publishes no place count.
Timing graph
764347421764347433LATE9s$60764347445764347455LATE11s$500764347493764347502LATE11s$810764348153764348184LATE8s$30764348372764348406LATE11s$287.50764348851764348876LATE7s$2,500764348937764348968LATE7s$1,500764349061764349089LATE7s$3,000764349278764349303LATE7s$6,500764349305764349352LATE13s$600764349306764349352LATE13s$600764349313764349351LATE12s$575764349314764349352LATE12s$600764349378764349399LATE7s$5,250764349719764349768LATE20s$7,000764349724764349751LATE11s$1,250764349982764349996LATE7s$2.99764350225764350235LATE11s$287.50764350255764350263LATE11s$100764350372764350374CONFIRM3s$200764350395764350399CONFIRM3s$1,100764350651764350653CONFIRM3s$28.75764350778764350783LATE8s$500764350920764350922CONFIRM6s$13764350974764350976CONFIRM4s$25764350990764350993CONFIRM3s$55764350992764350995CONFIRM3s$3,250764351007764351008CONFIRM4s$1,750764351010764351016CONFIRM6s$155764351052764351055CONFIRM5s$500764351138764351149LATE11s$231764351184764351192LATE10s$600764351200764351203CONFIRM5s$125764351237764351239CONFIRM3s$375764351245764351246CONFIRM3s$1,150764351385764351392CONFIRM5s$500764351447764351449CONFIRM3s$160764351452764351454CONFIRM4s$127764351521764351525LATE8s$66764351706764351714CONFIRM6s$145764351708764351716CONFIRM5s$100764351889764351894CONFIRM5s$300764351913764351922LATE9s$51764351950764351951CONFIRM3s$46764352275764352277CONFIRM4s$27764352401764352408CONFIRM3s$100764352543764352546CONFIRM4s$55764352708764352711CONFIRM4s$500
Windows
Published security feedEach card is the published count. The gap is whole seconds. An alert keeps its closest Internet twin, and an equal gap keeps the earlier ticket.
Twin match
The views join an ALERT to an Internet row on login and cents. They do not join on a ticket id.These SQL views are the warehouse spec. This pull does not load ticker_snapshot. The late view keeps every twin in the window, so one alert can appear on more than one view row.
ALERT
The notice. intake_source is ALERT.
Internet
The canonical wager. intake_source is Internet.
Same login
The view joins b.login to a.login.
Same cents
The view joins b.amount_wagered_cents to a.amount_wagered_cents.
v_timing_anomaliesLate
Absolute gap greater than 6 seconds and less than 60. A gap of 6 seconds is a confirm and is not in this view.
v_orphan_alertsOrphan
An ALERT with no Internet twin of the same login and the same cents when the absolute gap is less than 60 seconds.
v_self_betsSelf-bet
is_agent_self_bet is 1, is_duplicate_candidate is 0, and stake is greater than 500000 cents.
The published self-bet is a non-ALERT row over $5,000 whose agent id equals the login. That is the only self-bet the spool can support. v_self_bets filters the self-bet flag and drops duplicate candidates. The flag is not on the spool, so this pull does not count that view.
View edges
Where the warehouse views cut, and what the join leaves out.These SQL views are the warehouse spec. This pull does not load ticker_snapshot.
No market
The timing and orphan views join login and cents. They do not join a market, a game, or a ticket id.
Exact cents
amount_wagered_cents must be equal. One cent apart is not a twin.
Not in the join
The timing and orphan views do not join wager_number, agent_id, agent_login, or customer_id.
6 seconds
A gap of 6 seconds is a confirm. The late view requires a gap greater than 6.
60 seconds
A gap of 60 seconds is an orphan. A twin counts only when the absolute gap is less than 60.
Every twin
The late view keeps every Internet row in that open window. It does not keep only the closest twin, and a closer confirm does not remove the late row.
Whole seconds
The published gap and these views both cut each timestamp to a second, then subtract. A fraction of a second stays in its second. The view does not record which row landed first.
Alert row
These views return the alert row. They do not return the Internet wager number or the gap. The published pair on this page keeps both wager numbers and the signed whole-second gap.
Self-bet flag
v_self_bets filters is_agent_self_bet = 1. It does not compare agent_id to login, it does not read agent_login, and it does not filter intake_source.
Self-bet floor
500000 cents is not a hit. The stake must be greater, is_agent_self_bet must be 1, and is_duplicate_candidate must be 0.
Weblog
The weblog join matches login, then absolute seconds, on America/New_York wall time. A gap of 300 seconds is still a join. A greater gap is left out. It keeps every ticket for that login in the window. It does not match an IP, an operation, or a ticket id.
View test
These rows are the SQL fixture. They prove the views. They are not the published book.999900001v_self_betsTESTA equals TESTA, Internet, 1000000 cents, self-bet flag on, duplicate flag off. The view counts it.999900002v_orphan_alertsLogin L1, agent A1, ALERT, 500000 cents, and no Internet twin. The orphan view counts it. The stake is not over 500000 cents, and the self-bet flag is off, so the self-bet view does not.999900003v_timing_anomaliesLogin L2, same 500000 cents, ALERT 999900003 then Internet 999900004, 45 seconds later. Late, not a confirm.
Edge pins
Cloudflare and hosting pins are the edge, not the customer. Hosting pins are a separate feed, so this page publishes no place count.
- Chicago
- Dallas
- Baton Rouge
- Los Angeles
Security screen
Shared IPs and account accessESecurity: SCORE, LOGINS, SESSIONS, IPS and MATCH. Expand for the rows
Words
- RESThe wager IP is residential.
- MOBILEThe wager IP is on a mobile network.
- VPNThe wager IP is a VPN exit.
- DCThe wager IP is a datacenter.
- SCORE
sharp.score - Sharp score from GET /api/desk/sharp. Recomputed from grades (CLV, beat, grade, stake, straight) and shrunk toward the prior. Not an archive row.
- LOGINS
desk/v1/weblog/ · action - Count of weblog rows with action LOGIN for this customer. Rows are desk/v1/weblog/ events { id, t, customer, ip, session, action }. The count is not stored.
- SESSIONS
desk/v1/weblog/ · session - Distinct session values on LOGIN weblog rows for this customer. Rows are desk/v1/weblog/. The count is not stored.
- IPS
desk/v1/wagers/ · ip - Distinct wager.ip values for this customer. Rows are desk/v1/wagers/. The count is not stored.
- MATCH
desk/v1/wagers/ · ip - Other customers that share any wager.ip with this customer. Derived from desk/v1/wagers/. Not a stored column.