FOOTBALLQUANTS

Player sourcebook / WR · JAX

Brian Thomas Jr.

Read as Markdown · JSON · Interactive board

Season / week
2026 / 8
Scoring
HALF · 12 teams · 1 QB
Source freshness
partial
Observed season stats
Through week 8; complete through week 7. The latest week may be partial.

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.

outcomes
ready
Captured 2026-10-31T23:03:40.760224+00:00; complete through week 7
season projection
preseason prior
Captured Unknown
draft adp
preseason context
Captured Unknown
advanced stats
coverage not verified
Captured Unknown
Model version and retrieval details

Model generated: 2026-11-01T00:32:50.841496+00:00. Model generation time does not establish source freshness.

Model version: trade-value-sleeper-ros-v1

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

Retrieved 2026-11-01T01:38:05.881871+00:00. This is the page retrieval time, not a source update.

Scroll the table to see every column.

Alphabetical player research. Observed points use posted games; future estimates cover unstarted games through Week 17. Open a player for forecast dates and missing weeks. Trade values are model units.
PlayerPosTeamObserved points/gameGames playedEstimated future points/gameTrade value
Brian Thomas Jr. WRJAX 3.563.130

Future projection context

These estimates cover unstarted games through Week 17. They do not identify who to start this week; use your league's lineup tool for that decision.

Forecast source
Captured Sleeper future projections
Forecast captured
2026-10-31T23:31:38.044520+00:00
Unstarted games through Week 17
10
Weeks with provider forecasts
8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Weeks using model fallback
None recorded

Draft context

Historical context, not a weekly ranking or remaining-season forecast.

Full-season preseason projection
152
Draft average position
75.1

Observed production

Observed statistics are separate from model estimates. A missing season block means unavailable data.

This season

Fantasy points
21
Games played
6
Observed through week
6
passing yards
0
passing tds
0
interceptions
0
carries
0
rushing yards
0
rushing tds
0
targets
19
receptions
9
receiving yards
105
receiving tds
1
passing first downs
0
rushing first downs
0
receiving first downs
7
fumbles lost
0
Target share in observed games (%)
10.7
Fantasy points per game
3.5
Yards per carry
Unavailable
Yards per target
5.5
Yards per reception
11.7
Catch rate (%)
47.4
Total yards
105
Yards per game
17.5
touches
9
first downs
7
Expected rushing/receiving half-PPR points
31.4
Actual minus expected rushing/receiving half-PPR points
-10.4
Opportunity observed through week
6
Opportunity coverage
complete

Previous season

Fantasy points
114.8
Games played
14
Observed through week
18
passing yards
0
passing tds
0
interceptions
0
carries
3
rushing yards
21
rushing tds
1
targets
91
receptions
48
receiving yards
707
receiving tds
2
passing first downs
0
rushing first downs
2
receiving first downs
33
fumbles lost
0
Target share in observed games (%)
19.3
Fantasy points per game
8.2
Yards per carry
7
Yards per target
7.8
Yards per reception
14.7
Catch rate (%)
52.7
Total yards
728
Yards per game
52
touches
51
first downs
35
Expected rushing/receiving half-PPR points
143.3
Actual minus expected rushing/receiving half-PPR points
-28.5
Opportunity observed through week
18
Opportunity coverage
complete

This season: advanced statistics

Snap share (%)
43.3
Time to throw (seconds)
Unavailable
Average depth of pass target (yards)
Unavailable
pass aggressiveness
Unavailable
Completion percentage above expectation
Unavailable
pass air to sticks
Unavailable
pass rating
Unavailable
rush stacked box pct
Unavailable
rush time to los
Unavailable
Rushing yards above expectation per attempt
Unavailable
rush efficiency
Unavailable
rush pct over expected
Unavailable
rec avg separation
2.79
rec avg cushion
6.94
Average depth of receiving target (yards)
14.2
rec air share
18.24
Receiving yards after catch above expectation
-0.94
rec catch pct
45
rec drops
2
rec broken tackles
0
Rushing yards before contact per attempt
Unavailable
Rushing yards after contact per attempt
Unavailable
rush broken tackles
Unavailable
pass pressured pct
Unavailable
pass bad throw pct
Unavailable
rec drop pct
10.5

Previous season: advanced statistics

Snap share (%)
77.6
Time to throw (seconds)
Unavailable
Average depth of pass target (yards)
Unavailable
pass aggressiveness
Unavailable
Completion percentage above expectation
Unavailable
pass air to sticks
Unavailable
pass rating
Unavailable
rush stacked box pct
Unavailable
rush time to los
Unavailable
Rushing yards above expectation per attempt
Unavailable
rush efficiency
Unavailable
rush pct over expected
Unavailable
rec avg separation
2.63
rec avg cushion
5.51
Average depth of receiving target (yards)
14.28
rec air share
26.55
Receiving yards after catch above expectation
0.28
rec catch pct
52.75
rec drops
10
rec broken tackles
2
Rushing yards before contact per attempt
Unavailable
Rushing yards after contact per attempt
Unavailable
rush broken tackles
0
pass pressured pct
Unavailable
pass bad throw pct
Unavailable
rec drop pct
11

Player narrative and news

Generated narrative is context, not a verified injury forecast or a weekly recommendation. Inspect its own dates before using it.

Write-up generated: 2026-07-22T02:44:42.345573+00:00

A 28-point gap between what Brian Thomas earned and what he scored is the story of his 2025. The usage was legitimate, 91 targets at a 14.2-yard aDOT in the 93rd percentile with a 69th-percentile target share, and the expected-points model valued that work at 143. He delivered 115, a shortfall in the 9th percentile of usage conversion among qualified receivers, dragged down by ten drops at an 11 percent rate, second worst in the qualified pool, a 52.7 percent catch rate, and two touchdowns all year. Gaps that large usually close, and the offseason reporting helps the case, with Lawrence acknowledging the two weren't always on the same page last season and both sides describing real progress this summer while the trade rumors around Thomas have died down. The complication is that drafters have already paid for the rebound. His half-PPR ADP of 66, WR31 off the board, runs eight spots ahead of his WR39 consensus projection, so the market price assumes the drops were a one-year glitch from a 23-year-old rather than a trait. That's a plausible bet, and the deep role gives it a high ceiling, but you're buying the recovery at face value instead of at a discount.

Latest stored news context

{
  "digest": "Brian Thomas Jr. quiet in blowout win Sunday — Thomas was a complete non-factor on Sunday. He caught just one pass over the course of the afternoon, and he was only able to turn that into eight yards on a day that Jacksonville's offense had no trouble scoring and moving the ball. He still has some potential given his talent, but he hasn't been productive for a while and shouldn't be started for the foreseeable future.",
  "latest_at": "2026-09-28T16:26:14+00:00",
  "updated_at": "2026-09-29T19:00:23.129722+00:00",
  "llm_sentiment": -1,
  "llm_injury_trajectory": 0,
  "llm_severity": 0,
  "llm_weeks_out": null,
  "llm_offfield_risk": 0,
  "llm_key_phrases": "quiet in blowout win; complete non-factor; caught just one pass; shouldn't be started; hasn't been productive",
  "llm_role_change": 0,
  "llm_usage_outlook": 0,
  "llm_team_context": 0,
  "llm_relevance": 0.9,
  "llm_inferred_at": "2026-09-29T19:05:40.555811+00:00",
  "llm_model": "gpt-oss-120b",
  "inference_status": "current"
}

Profile freshness: {"writeup": "preseason_context", "news": "stale", "news_inference": "current", "injury_outlook": "stale", "note": "Preseason reads are historical context. News dates describe the latest captured story, not a verified current availability report."}

Complete source evidence
{
  "schema_version": "public-sources.v1",
  "canonical_url": "https://footballquants.com/sources/players/11631",
  "retrieved_at": "2026-11-01T01:38:05.881871+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": "11631",
    "name": "Brian Thomas Jr.",
    "team": "JAX",
    "pos": "WR",
    "age": 24,
    "exp": 2,
    "injury": null,
    "rookie": false,
    "value": 0.0,
    "ros_ppg": 3.13,
    "games_left": 10,
    "projection": {
      "ros_ppg": 3.1326,
      "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": 152,
    "adp": 75.1,
    "adp_pr": 33,
    "ly": {
      "pts": 114.8,
      "g": 14,
      "through_week": 18,
      "passing_yards": 0.0,
      "passing_tds": 0.0,
      "interceptions": 0.0,
      "carries": 3.0,
      "rushing_yards": 21.0,
      "rushing_tds": 1.0,
      "targets": 91.0,
      "receptions": 48.0,
      "receiving_yards": 707.0,
      "receiving_tds": 2.0,
      "passing_first_downs": 0.0,
      "rushing_first_downs": 2.0,
      "receiving_first_downs": 33.0,
      "fumbles_lost": 0.0,
      "tgt_share": 19.3,
      "ppg": 8.2,
      "ypc": 7.0,
      "ypt": 7.8,
      "ypr": 14.7,
      "catch_pct": 52.7,
      "total_yd": 728.0,
      "ypg": 52.0,
      "touches": 51.0,
      "first_downs": 35.0,
      "xfp": 143.3,
      "xfp_diff": -28.5,
      "xfp_through_week": 18,
      "xfp_coverage": "complete"
    },
    "adv": {
      "snap_pct": 77.6,
      "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": 2.63,
      "rec_avg_cushion": 5.51,
      "rec_adot": 14.28,
      "rec_air_share": 26.55,
      "rec_yac_above_exp": 0.28,
      "rec_catch_pct": 52.75,
      "rec_drops": 10.0,
      "rec_broken_tackles": 2.0,
      "rush_ybc_att": null,
      "rush_yac_att": null,
      "rush_broken_tackles": 0.0,
      "pass_pressured_pct": null,
      "pass_bad_throw_pct": null,
      "rec_drop_pct": 11.0
    },
    "ytd": {
      "pts": 21.0,
      "g": 6,
      "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": 19.0,
      "receptions": 9.0,
      "receiving_yards": 105.0,
      "receiving_tds": 1.0,
      "passing_first_downs": 0.0,
      "rushing_first_downs": 0.0,
      "receiving_first_downs": 7.0,
      "fumbles_lost": 0.0,
      "tgt_share": 10.7,
      "ppg": 3.5,
      "ypc": null,
      "ypt": 5.5,
      "ypr": 11.7,
      "catch_pct": 47.4,
      "total_yd": 105.0,
      "ypg": 17.5,
      "touches": 9.0,
      "first_downs": 7.0,
      "xfp": 31.4,
      "xfp_diff": -10.4,
      "xfp_through_week": 6,
      "xfp_coverage": "complete"
    },
    "adv_ytd": {
      "snap_pct": 43.3,
      "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": 2.79,
      "rec_avg_cushion": 6.94,
      "rec_adot": 14.2,
      "rec_air_share": 18.24,
      "rec_yac_above_exp": -0.94,
      "rec_catch_pct": 45.0,
      "rec_drops": 2.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": 10.5
    }
  },
  "profile": {
    "sleeper_id": "11631",
    "season": 2026,
    "as_of": "2026-11-01T01:38:05.951229+00:00",
    "freshness": {
      "writeup": "preseason_context",
      "news": "stale",
      "news_inference": "current",
      "injury_outlook": "stale",
      "note": "Preseason reads are historical context. News dates describe the latest captured story, not a verified current availability report."
    },
    "writeup": "A 28-point gap between what Brian Thomas earned and what he scored is the story of his 2025. The usage was legitimate, 91 targets at a 14.2-yard aDOT in the 93rd percentile with a 69th-percentile target share, and the expected-points model valued that work at 143. He delivered 115, a shortfall in the 9th percentile of usage conversion among qualified receivers, dragged down by ten drops at an 11 percent rate, second worst in the qualified pool, a 52.7 percent catch rate, and two touchdowns all year. Gaps that large usually close, and the offseason reporting helps the case, with Lawrence acknowledging the two weren't always on the same page last season and both sides describing real progress this summer while the trade rumors around Thomas have died down. The complication is that drafters have already paid for the rebound. His half-PPR ADP of 66, WR31 off the board, runs eight spots ahead of his WR39 consensus projection, so the market price assumes the drops were a one-year glitch from a 23-year-old rather than a trait. That's a plausible bet, and the deep role gives it a high ceiling, but you're buying the recovery at face value instead of at a discount.",
    "writeup_generated_at": "2026-07-22T02:44:42.345573+00:00",
    "news": {
      "digest": "Brian Thomas Jr. quiet in blowout win Sunday — Thomas was a complete non-factor on Sunday. He caught just one pass over the course of the afternoon, and he was only able to turn that into eight yards on a day that Jacksonville's offense had no trouble scoring and moving the ball. He still has some potential given his talent, but he hasn't been productive for a while and shouldn't be started for the foreseeable future.",
      "latest_at": "2026-09-28T16:26:14+00:00",
      "updated_at": "2026-09-29T19:00:23.129722+00:00",
      "llm_sentiment": -1,
      "llm_injury_trajectory": 0,
      "llm_severity": 0,
      "llm_weeks_out": null,
      "llm_offfield_risk": 0,
      "llm_key_phrases": "quiet in blowout win; complete non-factor; caught just one pass; shouldn't be started; hasn't been productive",
      "llm_role_change": 0,
      "llm_usage_outlook": 0,
      "llm_team_context": 0,
      "llm_relevance": 0.9,
      "llm_inferred_at": "2026-09-29T19:05:40.555811+00:00",
      "llm_model": "gpt-oss-120b",
      "inference_status": "current"
    },
    "injury_outlook": null,
    "injury_outlook_last_captured": {
      "status": "questionable",
      "exp_miss_next6": null,
      "as_of": "2026-09-18",
      "source": "status-only"
    }
  }
}

Use this source carefully