# John Bates — FootballQuants player source

Canonical source: https://footballquants.com/sources/players/7716

Use the season, week, scoring, freshness and limitations below when citing this source. Model estimates are not observed outcomes.

```json
{
  "schema_version": "public-sources.v1",
  "canonical_url": "https://footballquants.com/sources/players/7716",
  "retrieved_at": "2026-11-01T02:20:59.785426+00:00",
  "season": 2026,
  "week": 8,
  "last_season": 2025,
  "fmt": "half",
  "teams": 12,
  "qb": 1,
  "mode": "inseason",
  "data_version": "board:v4:fp:1788548817:m:1788548832:r:1788548848:s:27180:12104087.300:weekly:2026-10-31 23:35:25.223816+00:00:xfp:2026-10-31 23:04:30.678931+00:00:registry:2026-10-31 23:03:48.108384+00:00:kickoff:2026-10-30 00:15:00+00:00:expired:False:fp:1788548817:r:1788548848:weekly:2026-10-31 23:33:41.151983+00:00:completed:7:outcomes:ready:schedule:8",
  "model_version": "trade-value-sleeper-ros-v1",
  "generated_at": "2026-11-01T00:32:50.841496+00:00",
  "freshness": {
    "status": "partial",
    "expected_season": 2026,
    "served_season": 2026,
    "expected_week": 8,
    "warnings": [],
    "sources": {
      "outcomes": {
        "status": "ready",
        "captured_at": "2026-10-31T23:03:40.760224+00:00",
        "completed_through_week": 7
      },
      "season_projection": {
        "status": "preseason_prior",
        "captured_at": null
      },
      "draft_adp": {
        "status": "preseason_context",
        "captured_at": null
      },
      "advanced_stats": {
        "status": "coverage_not_verified",
        "captured_at": null
      }
    },
    "note": "Generation time is not source freshness. Individual future-projection capture dates and coverage are provided per player; not every input has an independent capture receipt."
  },
  "outcome_readiness": {
    "completed_week": 7,
    "fresh": true,
    "checked_at": "2026-10-31T23:03:40.760224+00:00",
    "status": "ready"
  },
  "valuation_context": {
    "phase": "sleeper_future_with_model_fallback",
    "fallback_phase": "in_season_blend",
    "fallback_outcomes_through_week": 7,
    "fallback_weekly_projection_eligible": true,
    "advanced_stats_priced": false,
    "injury_outlook": "annotation_only",
    "remaining_games_policy": "exclude_started_games"
  },
  "value_locked": null,
  "ytd_through_week": 8,
  "ytd_complete_through_week": 7,
  "sources": [
    {
      "name": "FootballQuants public Player Research board",
      "url": "https://footballquants.com/api/v1/players/board"
    }
  ],
  "limitations": [
    "Model estimates are not guaranteed outcomes. An unavailable value is null, never zero.",
    "generated_at describes model generation; retrieved_at describes this response, not a source update.",
    "Season projections are full-season estimates, not this week's points. ADP describes draft markets, not a weekly ranking.",
    "Half-PPR trade values are public. Standard and PPR trade values require an eligible paid account and are omitted here.",
    "League-family estimates use the stated scoring format, team count and quarterback slots; they are not custom league scoring."
  ],
  "metric_definitions": {
    "proj": "Full-season preseason projected fantasy points in the selected format; not points remaining or this week's forecast.",
    "adp": "Stored average draft position; historical draft-market context, not a current trade price.",
    "ytd.ppg": "Observed fantasy points per game in the selected format. Read ytd.g and the observed/completed weeks; partial weeks can make totals uneven.",
    "tgt_share": "Share of team targets in the player's observed games, matched by season, week and team, including recorded zero-target appearances. Byes and missing appearances do not count as zero games.",
    "ros_ppg": "Estimated points per unstarted game through Week 17 in the selected format. Uses captured Sleeper future stat lines where present and a model fallback where absent. Not a weekly start/sit recommendation.",
    "projection": "Future-source provenance: source, captured_at, covered_weeks, missing_weeks and remaining_games. Missing weeks use fallback; null remaining_games means the schedule is not verified.",
    "value": "Rest-of-season value above positional replacement in model comparison units, not projected fantasy points or trade acceptance probability.",
    "xfp": "Expected rushing and receiving half-PPR points from observed opportunity. Excludes passing, fumbles and scoring bonuses regardless of selected scoring.",
    "xfp_diff": "Observed rushing/receiving half-PPR points minus xFP for matching covered weeks. Unavailable when opportunity and production coverage differ; not proof of future regression."
  },
  "access": {
    "public": true,
    "pro_url": "https://footballquants.com/app",
    "connect_url": "https://footballquants.com/connect"
  },
  "player": {
    "sleeper_id": "7716",
    "name": "John Bates",
    "team": "WAS",
    "pos": "TE",
    "age": 28,
    "exp": 5,
    "injury": "Questionable",
    "rookie": false,
    "value": 0.0,
    "ros_ppg": 1.48,
    "games_left": 10,
    "projection": {
      "ros_ppg": 1.4778,
      "source": "sleeper_future",
      "captured_at": "2026-10-31T23:31:38.044520+00:00",
      "covered_weeks": [
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17
      ],
      "missing_weeks": [],
      "remaining_games": 10
    },
    "proj": 34,
    "adp": 509.5,
    "adp_pr": 97,
    "ly": {
      "pts": 21.8,
      "g": 10,
      "through_week": 18,
      "passing_yards": 0.0,
      "passing_tds": 0.0,
      "interceptions": 0.0,
      "carries": 0.0,
      "rushing_yards": 0.0,
      "rushing_tds": 0.0,
      "targets": 16.0,
      "receptions": 11.0,
      "receiving_yards": 103.0,
      "receiving_tds": 1.0,
      "passing_first_downs": 0.0,
      "rushing_first_downs": 0.0,
      "receiving_first_downs": 6.0,
      "fumbles_lost": 0.0,
      "tgt_share": 6.5,
      "ppg": 2.18,
      "ypc": null,
      "ypt": 6.4,
      "ypr": 9.4,
      "catch_pct": 68.8,
      "total_yd": 103.0,
      "ypg": 10.3,
      "touches": 11.0,
      "first_downs": 6.0,
      "xfp": 21.1,
      "xfp_diff": 0.7,
      "xfp_through_week": 18,
      "xfp_coverage": "complete"
    },
    "adv": {
      "snap_pct": 51.4,
      "pass_time_to_throw": null,
      "pass_adot": null,
      "pass_aggressiveness": null,
      "pass_cpoe": null,
      "pass_air_to_sticks": null,
      "pass_rating": null,
      "rush_stacked_box_pct": null,
      "rush_time_to_los": null,
      "rush_ryoe_per_att": null,
      "rush_efficiency": null,
      "rush_pct_over_expected": null,
      "rec_avg_separation": null,
      "rec_avg_cushion": null,
      "rec_adot": null,
      "rec_air_share": null,
      "rec_yac_above_exp": null,
      "rec_catch_pct": null,
      "rec_drops": 1.0,
      "rec_broken_tackles": 0.0,
      "rush_ybc_att": null,
      "rush_yac_att": null,
      "rush_broken_tackles": null,
      "pass_pressured_pct": null,
      "pass_bad_throw_pct": null,
      "rec_drop_pct": 6.2
    },
    "ytd": {
      "pts": 5.2,
      "g": 4,
      "through_week": 6,
      "passing_yards": 0.0,
      "passing_tds": 0.0,
      "interceptions": 0.0,
      "carries": 0.0,
      "rushing_yards": 0.0,
      "rushing_tds": 0.0,
      "targets": 6.0,
      "receptions": 5.0,
      "receiving_yards": 27.0,
      "receiving_tds": 0.0,
      "passing_first_downs": 0.0,
      "rushing_first_downs": 0.0,
      "receiving_first_downs": 0.0,
      "fumbles_lost": 0.0,
      "tgt_share": 5.1,
      "ppg": 1.3,
      "ypc": null,
      "ypt": 4.5,
      "ypr": 5.4,
      "catch_pct": 83.3,
      "total_yd": 27.0,
      "ypg": 6.8,
      "touches": 5.0,
      "first_downs": 0.0,
      "xfp": 8.0,
      "xfp_diff": -2.8,
      "xfp_through_week": 6,
      "xfp_coverage": "complete"
    },
    "adv_ytd": {
      "snap_pct": 43.0,
      "pass_time_to_throw": null,
      "pass_adot": null,
      "pass_aggressiveness": null,
      "pass_cpoe": null,
      "pass_air_to_sticks": null,
      "pass_rating": null,
      "rush_stacked_box_pct": null,
      "rush_time_to_los": null,
      "rush_ryoe_per_att": null,
      "rush_efficiency": null,
      "rush_pct_over_expected": null,
      "rec_avg_separation": null,
      "rec_avg_cushion": null,
      "rec_adot": null,
      "rec_air_share": null,
      "rec_yac_above_exp": null,
      "rec_catch_pct": null,
      "rec_drops": 0.0,
      "rec_broken_tackles": 0.0,
      "rush_ybc_att": null,
      "rush_yac_att": null,
      "rush_broken_tackles": null,
      "pass_pressured_pct": null,
      "pass_bad_throw_pct": null,
      "rec_drop_pct": 0.0
    }
  },
  "profile": {
    "sleeper_id": "7716",
    "season": 2026,
    "as_of": "2026-11-01T02:20:59.794597+00:00",
    "freshness": {
      "writeup": "preseason_context",
      "news": "stale",
      "news_inference": "current",
      "injury_outlook": "current",
      "note": "Preseason reads are historical context. News dates describe the latest captured story, not a verified current availability report."
    },
    "writeup": "Bates played over half of Washington's snaps when active last year and earned a 3.7 percent target share doing it, the classic split of a tight end who is on the field to block. Ten games produced 11 catches for 103 yards and 21.8 points, tracking his expected output almost exactly, so no efficiency argument is hiding anywhere in the profile. The consensus projection of 35 points mostly assumes he keeps the same thin role over a fuller season, and even that only makes him TE60. He is also listed third on his own depth chart behind Ben Sinnott. An ADP of 413 amounts to the market shrugging, correctly, and the only development that would change the math is Washington reshuffling its entire tight end room, something the 2025 usage gave no hint of.",
    "writeup_generated_at": "2026-07-22T02:44:42.345573+00:00",
    "news": {
      "digest": "John Bates catches pass in Week 3 — Bates has underwhelmed to begin the season, recording two catches or less in each of his three contests. The tight end remains another risky pass-catching option in the Washington offense early on, with a Week 4 contest against the Indianapolis Colts up next.",
      "latest_at": "2026-09-28T14:34:35+00:00",
      "updated_at": "2026-09-29T09:00:17.434798+00:00",
      "llm_sentiment": -1,
      "llm_injury_trajectory": 0,
      "llm_severity": 0,
      "llm_weeks_out": null,
      "llm_offfield_risk": 0,
      "llm_key_phrases": "underwhelmed to begin; risky pass-catching option; two catches or less; week 4 contest; catches pass in week",
      "llm_role_change": 0,
      "llm_usage_outlook": -1,
      "llm_team_context": 0,
      "llm_relevance": 0.9,
      "llm_inferred_at": "2026-09-29T09:02:37.682562+00:00",
      "llm_model": "gpt-oss-120b",
      "inference_status": "current"
    },
    "injury_outlook": {
      "status": "questionable",
      "exp_miss_next6": 1.6780349575271793,
      "as_of": "2026-10-31",
      "source": "curves-v1"
    },
    "injury_outlook_last_captured": {
      "status": "questionable",
      "exp_miss_next6": 1.6780349575271793,
      "as_of": "2026-10-31",
      "source": "curves-v1"
    }
  }
}
```
