← EndzoneAPICONTENT HISTORY

Update to EndzoneAPI

Snapshot Oct 30, 2026 · 00:06 UTC · version 1.0.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save EndzoneAPI and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Builds NFL player prop models for passing yards, passing touchdowns, rushing yards, receiving yards, receptions and anytime touchdown, using prop history, usage, snap share, game script from the spread and total, and injuries. Use when user asks about player props, whether a player goes over a yardage line, prop projections, anytime TD odds, or the historical over rate against a line. Do not use for team game prediction, see feature-engineering. Do not use for browsing odds across books for a game side, see odds-explorer. Do not use for player profiles without a line, see player-scouting.",
  "included_files": [],
  "name": "prop-modeling",
  "skill_md_contents": "---\nname: prop-modeling\ndescription: \"Builds NFL player prop models for passing yards, passing touchdowns, rushing yards, receiving yards, receptions and anytime touchdown, using prop history, usage, snap share, game script from the spread and total, and injuries. Use when user asks about player props, whether a player goes over a yardage line, prop projections, anytime TD odds, or the historical over rate against a line. Do not use for team game prediction, see feature-engineering. Do not use for browsing odds across books for a game side, see odds-explorer. Do not use for player profiles without a line, see player-scouting.\"\nmetadata:\n  version: 1.0.0\n  author: EndzoneAPI\n---\n\n# Prop Modeling\n\n> **Default data tool:** EndzoneAPI (`endzoneapi-tool`).\n> `get_player_props` (10 credits) for lines, `get_prop_history` (10 credits for up to 200 games) for how a player did against his line, `get_snap_counts` and `get_player_stats` (5 credits each) for usage, `get_games` (5 credits) for the game environment.\n> Props coverage starts in the 2023 season. Samples are small by nature.\n\nYou are an expert in player prop modeling. Your goal is to project a player's stat for one game as a distribution, compare it with the book's line and price, and be honest about how little data a single player-season gives you.\n\n## When to Use\n\n- \"Will Mahomes go over 250.5 passing yards?\"\n- \"What has this receiver done against his line this year?\"\n- \"Project a running back's yardage\"\n- \"What is the fair price on an anytime touchdown?\"\n- \"Which book has the best number on this prop?\"\n\n## When NOT to Use\n\n- Which team wins, see `feature-engineering`\n- A team's spread price, see `odds-explorer`\n- General scouting, see `player-scouting`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `get_player_props` | Props by book. `game_id` for all players in a game, or `player_id` plus `season`. `market`, `bookmaker`, `snapshot_type` (closing or opening), `estimate_only` | 10 per game returned |\n| `get_prop_history` | One player and market: a row per game with `line`, `open_line`, prices, `actual`, `result`, `margin`, plus an over-rate summary. `from_date`, `to_date`, `bookmaker`, `limit` | 10 for up to 200 games |\n| `get_snap_counts` | Snaps and shares by game, `player_id` (PFR id), or `team` and `season` | 5 |\n| `get_player_stats` | Weekly lines for the season | 5 |\n| `get_injuries`, `get_depth_chart` | Availability and role | 2 each |\n| `get_games` | Spread and total for the game environment | 5 |\n| `get_advanced_stats` | Tracking and charting context | 5 |\n| `search_players` | The ids (GSIS for props and stats, PFR for snaps) | 2 |\n\n## Markets\n\n`get_player_props` markets: `player_pass_yds`, `player_pass_tds`, `player_rush_yds`, `player_reception_yds`, `player_receptions`, `player_anytime_td` (over means he scores).\n`get_prop_history` adds `player_pass_completions`, `player_pass_attempts`, `player_pass_interceptions`, `player_rush_attempts`.\nBooks on props: DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle, Bovada, BetOnline.\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_player_projection` | Build it as below |\n| `get_dfs_projections` | Not provided |\n| `get_prop_edges` | Compute edge from your distribution and the line |\n| Props before 2023 | Not covered |\n\n## Real Data Shapes\n\n`get_prop_history(player_id=\"00-0033873\", market=\"player_pass_yds\", from_date=\"2025-09-01\", limit=3)` (Mahomes) returned:\n\n| game | line | open | over | under | books | actual | result | margin |\n|------|------|------|------|-------|-------|--------|--------|--------|\n| 2025_01_KC_LAC | 250.5 | 244.5 | -120 | -110 | 7 | 258 | over | +7.5 |\n| 2025_02_PHI_KC | 245.5 | 245.5 | -110 | -121 | 7 | 187 | under | -58.5 |\n\nwith `summary` = overs 1, unders 2 of 3 graded, `over_rate` 0.333, `avg_line` 243.5, `avg_actual` 223, and `next_from_date` to continue. Three games is an illustration, not a signal.\n\n`get_player_props(game_id=\"2025_17_DEN_KC\", market=\"player_pass_yds\")` returned 14 rows, each `{player_name, gsis_id, market, bookmaker, line, over_odds, under_odds, captured_at, source}`; for example Bo Nix at 228.5 with -115 on both sides at BetMGM. One row per player per book.\n\n## How It Works\n\n**Step 1: Establish the role.** Starter or not (`get_depth_chart`), injury status, snap share and target share over the last 4 to 6 games (`get_snap_counts`, `get_player_stats`). Prop outcomes follow opportunity.\n\n**Step 2: Game environment.** From the spread and total, the implied team totals:\n\n```\nhome_implied = (total + spread_line) / 2\naway_implied = (total - spread_line) / 2\n```\n\n`spread_line` is positive when home is favored. A team implied for 26 points passes and scores differently from one implied for 17. Trailing teams pass more; favorites run late.\n\n**Step 3: Decompose the stat.**\n\n| Market | Decomposition |\n|--------|---------------|\n| Passing yards | attempts x yards per attempt (attempts depend on pace and game script) |\n| Passing TDs | attempts x TD rate; or team implied points x passing share |\n| Rushing yards | carries x yards per carry (carries depend on script and share of backfield) |\n| Receiving yards | team pass attempts x target share x yards per target |\n| Receptions | targets x catch rate |\n| Anytime TD | expected scoring chances (red-zone usage) with Poisson probability `1 - exp(-lambda)` |\n\nProject each component from rolling usage with shrinkage (see `feature-engineering`) and multiply, or fit a regression directly on past games from `get_prop_history` and `get_player_stats` (the history gives `actual` per game).\n\n**Step 4: Distribution, not a point.** Yardage is right-skewed. Use a gamma or a log-normal fit to the player's game residuals, or a negative binomial for counts such as receptions. The variance is the major input: a projection of 250 with a standard deviation of 70 puts a 250.5 line near 50/50, nowhere near a lock.\n\n```\nP(over line) = 1 - F(line)      F: fitted distribution of the stat\n```\n\nCompute `P(over)` and `P(under)` and compare with the devigged line price (see `odds-analysis`). The line itself is the market median projection.\n\n\n**Step 6: Shop.** Different books carry different lines for the same prop. `get_player_props` returns them side by side. A half-point on a yardage line moves the over probability only a little but matters on an even-priced bet.\n\n## Sample Size\n\n- Props cover 2023 onward: at most about 17 games a year per player, 3 seasons by 2025, so roughly 50 games for a durable starter.\n- A player-market history of 17 games has an over rate with a standard error near 12 percentage points. A 60% over rate in 17 games is consistent with 50%.\n- The line is already built from the same stats, so a historical over rate away from 50% is weak evidence unless it is large and persistent.\n- Do not tune a prop model on the games you test. Use walk-forward (see `walk-forward-validation`).\n- Anytime TD is a rare event: a back at 0.5 TDs a game scores in about 40 percent of games; one season holds too few for a stable rate. Use team red-zone share as a prior.\n\n## Correlation\n\nA quarterback's passing yards and his top receiver's receiving yards move together. Two props from the same game are not independent bets. Same-game parlays multiply the book's margin; evaluate each leg's edge, and avoid assuming independence.\n\n## Credit Usage\n\n| Operation | Credits |\n|-----------|---------|\n| Prop lines for a whole game | 10 |\n| One player-market history | 10 |\n| One player's props across a season | 10 per game returned |\n| Usage (snaps, stats) | 5 each |\n| Full model for one player | about 35 |\n\n`estimate_only=true` on `get_player_props` shows the price first. Full-league prop history across seasons is expensive; start with the players that matter to the question.\n\n## Anti-patterns\n\n| Rationalization | Why It's Wrong | Do This Instead |\n|----------------|---------------|-----------------|\n| \"Average is 262 so over 250.5\" | Ignores variance, role, script | Fit a distribution |\n| \"He is 11 of 15 over\" | Small sample, line already adjusts | Report with an interval |\n| \"Starter is out, use the old role\" | Usage shifts | Reload the depth chart |\n| \"Parlay these two props\" | Correlated, extra margin | Price legs separately |\n| \"Use opening line for a closing bet\" | Different information | State snapshot used |\n\n## Output Format\n\n```\nMahomes, passing yards, KC vs [opp]\nEnvironment: total X, KC implied Y\nProjection: attempts A x YPA B = C (distribution: gamma, sd D)\nLine 250.5 (best over: [book] -115, best under: [book] -110)\nP(over) 0.xx vs no-vig 0.xx -> edge +/-x.x pts (before shrinkage)\nHistory: over rate x/y games (not predictive alone)\nRisks: [injury news, game script, line moves]\n```\n\n## What to Do Next\n\n| What You Found | Next Action | Skill |\n|----------------|-------------|-------|\n| A projection gap | Calibrate and shrink | `probability-calibration` |\n| A needed price | Convert odds | `odds-analysis` |\n\n## Reference\n\nPython walkthrough: prop lines by sportsbook: https://endzoneapi.com/guides/nfl-player-prop-lines-by-sportsbook-python\n"
}

SHA-256 of public snapshot: 8cb787306989ab579c03216e53daa9265d82f4f73c4a9f07164beefc04d83b47