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.
| Player | Pos | Team | Observed points/game | Games played | Estimated future points/game | Trade value |
|---|---|---|---|---|---|---|
| Brian Thomas Jr. | WR | JAX | 3.5 | 6 | 3.13 | 0 |
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
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
- 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.