{
  "title": "ZenHodl Sports Prediction Transparency Index",
  "description": "Public scorecard ranking sports prediction sources on 7 transparency dimensions.",
  "license": "CC BY 4.0",
  "license_url": "https://creativecommons.org/licenses/by/4.0/",
  "live_url": "https://zenhodl.net/transparency-index",
  "history_url": "https://zenhodl.net/transparency-index/history",
  "last_updated": "2026-04-24T19:59:37.791194+00:00",
  "last_human_verified": "2026-04-29",
  "max_total": 35,
  "dimensions": [
    {
      "key": "published_ece",
      "label": "Published ECE"
    },
    {
      "key": "historical_archive",
      "label": "Historical archive"
    },
    {
      "key": "methodology_docs",
      "label": "Methodology docs"
    },
    {
      "key": "api_access",
      "label": "API access"
    },
    {
      "key": "price_transparency",
      "label": "Price transparency"
    },
    {
      "key": "track_record_longevity",
      "label": "Track record longevity"
    },
    {
      "key": "sport_coverage_breadth",
      "label": "Sport coverage breadth"
    }
  ],
  "competitor_count": 27,
  "competitors": [
    {
      "slug": "fivethirtyeight",
      "name": "FiveThirtyEight (archived)",
      "url": "https://github.com/fivethirtyeight/data",
      "category": "analytics_model",
      "rank": 1,
      "total": 30,
      "scores": {
        "published_ece": 3,
        "historical_archive": 5,
        "methodology_docs": 5,
        "api_access": 3,
        "price_transparency": 5,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 4
      },
      "ece_status": "derivable",
      "reported_ece": "Brier published; ECE derivable from raw data",
      "reported_ece_url": "https://github.com/fivethirtyeight/data/tree/master/nba-forecasts",
      "notes": "Archived since 2023. All predictions + data on GitHub. Best methodology docs ever. Dead product.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "zenhodl",
      "name": "ZenHodl",
      "url": "https://zenhodl.net",
      "category": "analytics_model",
      "rank": 2,
      "total": 29,
      "scores": {
        "published_ece": 5,
        "historical_archive": 5,
        "methodology_docs": 3,
        "api_access": 5,
        "price_transparency": 5,
        "track_record_longevity": 2,
        "sport_coverage_breadth": 4
      },
      "ece_status": "numeric",
      "reported_ece": "4.39%",
      "reported_ece_url": "https://zenhodl.net/blog/ncaamb-2025-26-season-report-5345-games",
      "notes": "Per-sport ECE published (NCAAMB 4.39% on 5,345 games). Every trade on /results. API + docs. Tiered pricing. Methodology docs partial \u2014 training code not open sourced. Multi-sport (8+) but young (<2 yrs).",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "manifold",
      "name": "Manifold Markets",
      "url": "https://manifold.markets",
      "category": "prediction_market",
      "rank": 3,
      "total": 27,
      "scores": {
        "published_ece": 2,
        "historical_archive": 5,
        "methodology_docs": 4,
        "api_access": 5,
        "price_transparency": 5,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 3
      },
      "ece_status": "partial",
      "reported_ece": "leaderboard Brier scores (not platform-wide ECE)",
      "reported_ece_url": "https://manifold.markets/calibration",
      "notes": "Play-money. Real forecasters, real leaderboards. Full API. Not real-money.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "inpredictable",
      "name": "Inpredictable",
      "url": "https://inpredictable.com",
      "category": "analytics_model",
      "rank": 4,
      "total": 24,
      "scores": {
        "published_ece": 2,
        "historical_archive": 4,
        "methodology_docs": 4,
        "api_access": 1,
        "price_transparency": 5,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 3
      },
      "ece_status": "partial",
      "reported_ece": "Brier / log-loss in blog posts (not ECE)",
      "reported_ece_url": "https://www.inpredictable.com/p/methodology.html",
      "notes": "Long-running NFL/NBA win-probability research blog by Mike Beuoy. Free. Detailed methodology posts. Charts archived. No formal API.",
      "last_verified": "2026-04-29"
    },
    {
      "slug": "bart-torvik",
      "name": "Bart Torvik",
      "url": "https://barttorvik.com",
      "category": "analytics_model",
      "rank": 5,
      "total": 23,
      "scores": {
        "published_ece": 4,
        "historical_archive": 4,
        "methodology_docs": 4,
        "api_access": 1,
        "price_transparency": 5,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 1
      },
      "ece_status": "partial",
      "reported_ece": "reliability tables (no single ECE figure)",
      "reported_ece_url": "https://barttorvik.com/probable-points.php",
      "notes": "College basketball. Excellent reliability tables every March. Free. Unstable JSON endpoints.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "moneypuck",
      "name": "MoneyPuck",
      "url": "https://moneypuck.com",
      "category": "analytics_model",
      "rank": 6,
      "total": 22,
      "scores": {
        "published_ece": 3,
        "historical_archive": 3,
        "methodology_docs": 4,
        "api_access": 2,
        "price_transparency": 5,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 1
      },
      "ece_status": "partial",
      "reported_ece": "log-loss reported, not ECE",
      "reported_ece_url": "https://moneypuck.com/about.htm",
      "notes": "NHL-only, XGBoost-based. Methodology documented. Limited JSON availability.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "polymarket",
      "name": "Polymarket",
      "url": "https://polymarket.com",
      "category": "prediction_market",
      "rank": 7,
      "total": 22,
      "scores": {
        "published_ece": 0,
        "historical_archive": 3,
        "methodology_docs": 2,
        "api_access": 5,
        "price_transparency": 5,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 4
      },
      "ece_status": "na",
      "reported_ece": "n/a (venue, not a forecaster)",
      "reported_ece_url": "",
      "notes": "Global prediction market. CLOB API public. On-chain historical data. Not US-legal for direct trading.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "massey",
      "name": "Massey Ratings",
      "url": "https://masseyratings.com",
      "category": "analytics_model",
      "rank": 8,
      "total": 22,
      "scores": {
        "published_ece": 1,
        "historical_archive": 3,
        "methodology_docs": 3,
        "api_access": 0,
        "price_transparency": 5,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 5
      },
      "ece_status": "partial",
      "reported_ece": "accuracy by sport published (not ECE)",
      "reported_ece_url": "https://masseyratings.com/cfb/comparison",
      "notes": "Free college ratings. HTML only, no API, some methodology detail.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "odds-api",
      "name": "The Odds API",
      "url": "https://the-odds-api.com",
      "category": "enterprise_data",
      "rank": 9,
      "total": 21,
      "scores": {
        "published_ece": 0,
        "historical_archive": 1,
        "methodology_docs": 2,
        "api_access": 5,
        "price_transparency": 5,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 5
      },
      "ece_status": "na",
      "reported_ece": "n/a (odds aggregator, not a model)",
      "reported_ece_url": "",
      "notes": "Aggregated book odds, not a model. Transparent pricing, real API.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "predictit",
      "name": "PredictIt",
      "url": "https://predictit.org",
      "category": "prediction_market",
      "rank": 10,
      "total": 21,
      "scores": {
        "published_ece": 1,
        "historical_archive": 4,
        "methodology_docs": 3,
        "api_access": 3,
        "price_transparency": 4,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 2
      },
      "ece_status": "na",
      "reported_ece": "n/a (venue, not a forecaster)",
      "reported_ece_url": "",
      "notes": "Academic. Historical data downloadable. $850 position cap limits serious use.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "sportradar",
      "name": "Sportradar",
      "url": "https://sportradar.com",
      "category": "enterprise_data",
      "rank": 11,
      "total": 20,
      "scores": {
        "published_ece": 2,
        "historical_archive": 0,
        "methodology_docs": 3,
        "api_access": 5,
        "price_transparency": 0,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "internal whitepapers (not public)",
      "reported_ece_url": "",
      "notes": "Enterprise-grade. Published internal ECE in whitepapers occasionally. Full API. No public pricing.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "stats-perform",
      "name": "Stats Perform",
      "url": "https://statsperform.com",
      "category": "enterprise_data",
      "rank": 12,
      "total": 20,
      "scores": {
        "published_ece": 2,
        "historical_archive": 0,
        "methodology_docs": 3,
        "api_access": 5,
        "price_transparency": 0,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "internal benchmarks (not public)",
      "reported_ece_url": "",
      "notes": "Institutional-grade probability feeds. Sparse public benchmarks. Custom contracts.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "kenpom",
      "name": "KenPom",
      "url": "https://kenpom.com",
      "category": "analytics_model",
      "rank": 13,
      "total": 19,
      "scores": {
        "published_ece": 3,
        "historical_archive": 2,
        "methodology_docs": 3,
        "api_access": 0,
        "price_transparency": 5,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 1
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "College basketball only. Methodology in FAQ. $20/yr clear. HTML only, no API.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "sportsdataio",
      "name": "SportsDataIO",
      "url": "https://sportsdata.io",
      "category": "enterprise_data",
      "rank": 14,
      "total": 19,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 2,
        "api_access": 5,
        "price_transparency": 4,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "API-first sports data. Some ML/projections but no ECE. Published pricing.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "kalshi",
      "name": "Kalshi",
      "url": "https://kalshi.com",
      "category": "prediction_market",
      "rank": 15,
      "total": 17,
      "scores": {
        "published_ece": 0,
        "historical_archive": 2,
        "methodology_docs": 2,
        "api_access": 5,
        "price_transparency": 3,
        "track_record_longevity": 2,
        "sport_coverage_breadth": 3
      },
      "ece_status": "na",
      "reported_ece": "n/a (venue, not a forecaster)",
      "reported_ece_url": "",
      "notes": "CFTC-regulated prediction market. Full API. Not a model \u2014 a venue.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "genius-sports",
      "name": "Genius Sports",
      "url": "https://geniussports.com",
      "category": "enterprise_data",
      "rank": 16,
      "total": 17,
      "scores": {
        "published_ece": 1,
        "historical_archive": 0,
        "methodology_docs": 2,
        "api_access": 5,
        "price_transparency": 0,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "internal benchmarks only",
      "reported_ece_url": "",
      "notes": "Official data partner for NFL / NCAA / others. Probability feeds + trading services. Public ECE never published. Custom contracts only.",
      "last_verified": "2026-04-29"
    },
    {
      "slug": "oddsjam",
      "name": "OddsJam",
      "url": "https://oddsjam.com",
      "category": "odds_aggregator",
      "rank": 17,
      "total": 16,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 1,
        "api_access": 4,
        "price_transparency": 3,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 5
      },
      "ece_status": "na",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "Aggregator, not a model. EV finder uses market consensus. Published pricing, tiered API.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "unabated",
      "name": "Unabated",
      "url": "https://unabated.com",
      "category": "odds_aggregator",
      "rank": 18,
      "total": 15,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 2,
        "api_access": 2,
        "price_transparency": 3,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 5
      },
      "ece_status": "na",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "Sharp analytics, line shopping. No published accuracy. Tiered pricing.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "action-network",
      "name": "Action Network",
      "url": "https://actionnetwork.com",
      "category": "picks_site",
      "rank": 19,
      "total": 15,
      "scores": {
        "published_ece": 0,
        "historical_archive": 1,
        "methodology_docs": 1,
        "api_access": 1,
        "price_transparency": 3,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "Affiliate-driven content. 'Entertainment purposes only.' Expert picks tracked publicly per-author. PRO Reports document model methodology partially. No ECE published.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "betql",
      "name": "BetQL",
      "url": "https://betql.co",
      "category": "picks_site",
      "rank": 20,
      "total": 14,
      "scores": {
        "published_ece": 0,
        "historical_archive": 1,
        "methodology_docs": 1,
        "api_access": 1,
        "price_transparency": 4,
        "track_record_longevity": 3,
        "sport_coverage_breadth": 4
      },
      "ece_status": "partial",
      "reported_ece": "accuracy% claims (not ECE)",
      "reported_ece_url": "",
      "notes": "'AI-powered' picks. Published accuracy claims not ECE. Consumer subscription.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "sportsline",
      "name": "SportsLine",
      "url": "https://sportsline.com",
      "category": "picks_site",
      "rank": 21,
      "total": 14,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 1,
        "api_access": 0,
        "price_transparency": 4,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "CBS property. Expert picks. No ECE. Published subscription pricing.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "kambi",
      "name": "Kambi",
      "url": "https://kambi.com",
      "category": "enterprise_data",
      "rank": 22,
      "total": 14,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 1,
        "api_access": 4,
        "price_transparency": 0,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "Sportsbook turnkey provider. Powers many regulated US books behind the scenes. Quant team internal \u2014 no public model docs or ECE.",
      "last_verified": "2026-04-29"
    },
    {
      "slug": "numberfire",
      "name": "numberFire (archived)",
      "url": "https://numberfire.com",
      "category": "analytics_model",
      "rank": 23,
      "total": 14,
      "scores": {
        "published_ece": 0,
        "historical_archive": 2,
        "methodology_docs": 1,
        "api_access": 0,
        "price_transparency": 3,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 4
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "FanDuel-acquired projections / DFS site. Now mostly content. Methodology never fully public; ECE never published. Listed as historical reference.",
      "last_verified": "2026-04-29"
    },
    {
      "slug": "predictionmachine",
      "name": "Prediction Machine",
      "url": "https://predictionmachine.com",
      "category": "picks_site",
      "rank": 24,
      "total": 14,
      "scores": {
        "published_ece": 0,
        "historical_archive": 1,
        "methodology_docs": 1,
        "api_access": 0,
        "price_transparency": 3,
        "track_record_longevity": 4,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "self-reported simulation accuracy claims",
      "reported_ece_url": "",
      "notes": "Monte-Carlo simulation picks site (Bloomberg-syndicated for years). Claims accuracy but no holdout, no ECE, no auditable archive.",
      "last_verified": "2026-04-29"
    },
    {
      "slug": "covers",
      "name": "Covers",
      "url": "https://covers.com",
      "category": "picks_site",
      "rank": 25,
      "total": 13,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 0,
        "api_access": 0,
        "price_transparency": 3,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 5
      },
      "ece_status": "silent",
      "reported_ece": "",
      "reported_ece_url": "",
      "notes": "Consensus picks aggregator. No methodology, no ECE.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "pinnacle",
      "name": "Pinnacle (closing lines)",
      "url": "https://pinnacle.com",
      "category": "enterprise_data",
      "rank": 26,
      "total": 11,
      "scores": {
        "published_ece": 0,
        "historical_archive": 0,
        "methodology_docs": 1,
        "api_access": 0,
        "price_transparency": 0,
        "track_record_longevity": 5,
        "sport_coverage_breadth": 5
      },
      "ece_status": "na",
      "reported_ece": "implicit (closing line is a market, not a model)",
      "reported_ece_url": "",
      "notes": "Gold-standard closing lines (since 1998). Implicit benchmark via market. Not a forecaster \u2014 listed for reference; transparency dimensions don't apply cleanly. No direct API sales.",
      "last_verified": "2026-04-24"
    },
    {
      "slug": "outlier",
      "name": "Outlier",
      "url": "https://outlier.bet",
      "category": "picks_site",
      "rank": 27,
      "total": 11,
      "scores": {
        "published_ece": 0,
        "historical_archive": 1,
        "methodology_docs": 0,
        "api_access": 0,
        "price_transparency": 4,
        "track_record_longevity": 2,
        "sport_coverage_breadth": 4
      },
      "ece_status": "partial",
      "reported_ece": "self-reported user 'hit rate' on app",
      "reported_ece_url": "",
      "notes": "Player props focus. Hit-rate / streak summaries shown in-app but no auditable holdout. No methodology, no API.",
      "last_verified": "2026-04-29"
    }
  ],
  "citation": "ZenHodl Sports Prediction Transparency Index. Accessed 2026-05-27. https://zenhodl.net/transparency-index"
}