# Brierly > The independent ratings and research firm for event markets (Kalshi, Polymarket). > Settlement-risk ratings (RuleScore), the coded dispute database, the Event-Market > Uncertainty Index (EMU), Brier-scored research, and the EventBasis tax engine. Named for the Brier score. Every probabilistic call Brierly publishes is Brier-scored in public and git-stamped in data/records.json. ## Site routes (all server-rendered to the same SPA shell) - / landing: live grades, dispute counts, the thesis - /rulescore RuleScore™ settlement-risk grades (0–100, five subscores) - /grade/{venue}/{market_id} single grade: flags, quoted rules text, SHA-256 receipt - /grade-draft paste draft contract language → deterministic rubric grade, in-browser - /methodology rubric weights, fee math (Kalshi next-cent order rounding; Polymarket category rates), depth-check rule, EMU v1.1 formula, dispute-count method - /disputes 21 coded 2025–26 settlement disputes with sources - /dispute/{id} single case: summary, outcome, drafting lesson, sources - /index EMU Index: live gauges + canonical daily closes - /desk research notes · /note/{slug} single note - /transparency Brier-scored call ledger (registry: data/records.json) - /eventbasis TY2026 four-characterization tax calculator - /eventbasis/import CSV import → lots → Form 6781/8949 + CPA letter - /tax/kalshi-taxes · /tax/polymarket-taxes · /tax/prediction-market-1099 · /tax/world-cup-winnings-taxes sourced TY2026 tax explainers - /explore /hub /fed /arb /whales /differences /volume /dominance /paper /greeks /chat live cross-venue tools (Kalshi + Polymarket public APIs) - /advisory rulebook settlement audits + CFTC NPRM gap analysis (exchanges) - /contact who Brierly is for + how to reach the firm (founders@brierlyresearch.com) - /docs API documentation · /status live feed + backend diagnostics ## API v1 (live in preview) Base: same origin as the site, path prefix /api/v1 Auth: header X-Brierly-Key: br_live_… (Authorization: Bearer also accepted) Keys: request at /docs (email capture → partner queue). Access during the preview is arranged privately. Rate limits: 60 req/min, 50,000 cost-units/month. Every authed response carries X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset. Errors: JSON {error, hint} on 400/401/403/404/429/503. GET /api/v1/health no key; {ok, version, time, feeds, db, crons} GET /api/v1/grades?venue=&band=&min_volume=&limit= RuleScore grades for the coverage universe: score, band, five subscores (source_dependence, definitional_vagueness, scalar_carve_out, disclosure_timing, oracle_manipulation), flags [{phrase ≤80 chars, note}], rules_sha256, volume_24h, graded_at, methodology "rulescore-v0.11" GET /api/v1/grades/{venue}/{market_id} single market graded on demand (+ concerns, protections, prior_notes); 404 JSON if unknown GET /api/v1/index/emu?basket=composite|econ|election|geo live value + daily_history (git-stamped registry wins on conflicts), v1.1 GET /api/v1/disputes?type=&venue= the coded dispute DB + per-case sources GET /api/v1/search/events?q=&venue=&category=&sort=&limit= normalized cross-venue event search GET /api/v1/arbitrage?min_net_cents=&depth_checked=true fee-netted rows; "actionable" requires ≥25 contracts executable in live books GET /api/v1/whales?min_usd=&venue=&limit= large prints, true token sides GET /api/v1/rules-changes?since=&venue= detected changes: hashes, old→new grades, editorial one-liners (full venue rules text is NEVER redistributed) POST /api/v1/alerts {type:"rules-change"|"grade-band", markets:[{venue, market_id}], email} → email alerts w/ one-click unsubscribe GET /api/v1/usage calling key's month usage vs limits No-key site endpoints: POST /api/alerts-subscribe (email alerts signup), GET /api/public/rules-changes (rolling 30d), GET /api/public/dispute-count. ## Data semantics - Prices are probabilities in [0,1]; "cents" formatting = price × 100. - Kalshi taker fee per order: ceil_to_next_cent(0.07 × C × P × (1−P)); designated series carry maker fees ceil_to_next_cent(0.0175 × C × P × (1−P)). - Polymarket taker fee: C × rate(category) × p × (1−p); makers free. - "Actionable" arbitrage requires net > 0 after both legs' fees AND ≥25 contracts executable at quoted prices in both live order books. - RuleScore grades dispute RISK of contract language — never outcome probability, never the merits of a resolution. - Data rights: the API serves derived analytics (grades, hashes, short quoted excerpts) and Brierly-authored data (disputes, EMU, records) — never full venue rules text or bulk raw market data. Contact: founders@brierlyresearch.com