Ravens at Browns
Scored · generated 18 Oct, 16:47 UTC · Publicly verifiable before kickoff (first public evidence 18 Oct, 16:47 UTC) · model v1.0-2026-rest-of-season (frozen)
Prediction
- Market line
- BAL −3.0
- Model line
- BAL −3.1
- Market total
- 39.5
- Model total
- 39.8
- Stats-only line
- BAL −1.5
- Stats-only total
- 41.9
- Projected winner
- BAL 62% · by 3.1
Details: how the model pick works
Projected margin BAL by 4.57; the line implied BAL by 4.50. Difference 0.07 points toward BAL (tiny). Differences under 0.5 points are labelled tiny and are within normal noise; 0.5–1.5 small, 1.5–3 moderate, 3 or more large.
The model pick is the side of the market line on which the model's unrounded projected margin fell when it was locked, at the first forecast with a market line (the rule for games from 1 to 20 October 2026). It stays the same if the line or the forecast changes later, and it is graded against the line it was locked at. Market line, model line, totals and the projected winner are from the latest forecast. The win probability belongs to the projected winner only; it is not a probability of finishing on that side of the line. For analysis and education only.
Result: Model pick wrong · margin error 6.1 (actual margin CLE by 3.0).
Model comparison
| Model | BAL | CLE | Margin | Total | P(CLE win) | 95% margin range | 80% total range |
|---|---|---|---|---|---|---|---|
| Model (combined) | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL by 27 to CLE by 24 | 24.6–57.5 |
| Stats-only (football only) | 21.7 | 20.2 | BAL by 1.5 | 41.9 | 43% | BAL by 27 to CLE by 26 | 25.7–59.2 |
| Market only | 21.3 | 18.3 | BAL by 3.0 | 39.5 | 37% | BAL by 28 to CLE by 24 | 24.5–57.5 |
Market inputs: BAL −3.0, total 39.5 · source: The Odds API (median of 9 US market lines) · provider updated 18 Oct, 16:45 UTC · retrieved by us 18 Oct, 16:46 UTC. These two numbers are inputs to the combined model; nothing else from the market is used.
Where the stats-only margin comes from
Points each part of the football data adds, in the colour of the team it favours.
From the football-only model, which uses no market line. Each bar points toward the team that part of the data favours; together they add up to the stats-only line. 2 groups under 0.05 points not shown. The groups overlap (a team that passes well also tends to score well), so read them together; this describes the fitted model, not football cause and effect. The model line is built from the market line and is not split this way.
How they rate
Percentile among the 28 teams playing this week, as of this forecast: 100 is the best in that measure, 50 is average. Defence measures are turned round so that higher is always better.
Offence
Defence
Quarterback
Per-play efficiency entering the game (EPA = expected points added), weighted towards recent games and, early in the season, still partly last season. These are the same football inputs the stats-only line is built from. Display only.
Coaching staff
BAL
| Head coach | Jesse Minter | New this season |
| Offensive coordinator | Declan Doyle | New this season |
| Defensive coordinator | Anthony Weaver | New this season |
CLE
| Head coach | Todd Monken | New this season |
| Offensive coordinator | Travis Switzer | New this season |
| Defensive coordinator | Mike Rutenberg | New this season |
Seasons in that role with this team ("+": at least, our records start in 2015). Staff from Wikipedia season pages (CC BY-SA); who calls the plays on game day is not always the coordinator. Display only: a test of giving last season less weight after coaching or roster changes (2019–2024) did not improve the forecasts, so the model does not use this.
Lineup assumptions
BAL: Tyler Huntley 99%
| Start scenario | Probability |
|---|---|
| Tyler Huntley | 99% |
| Joe Fagnano | 1% |
Evidence for each quarterback
| QB | Chart | Status | If next in line |
|---|---|---|---|
| Lamar Jackson | QB1 | Out | 0% |
| Tyler Huntley | QB2 | Not on report | 99% |
| Joe Fagnano | QB3 | Not on report | 99% |
| Skylar Thompson | QB4 | Reserve list | 0% |
- Lamar Jackson (injury report): practice: Did Not Participate In Practice; listed Out
- Tyler Huntley (not on published report): not on the team's published report; historical start rate 0.986 (34/34, 90% interval 0.95-1.00; daily depth charts)
- Joe Fagnano (not on published report): not on the team's published report; historical start rate 0.986 (34/34, 90% interval 0.95-1.00; daily depth charts)
- Skylar Thompson (roster status): reserve list (e.g. injured reserve); cannot start unless re-signed/elevated
Depth chart snapshot 2026-10-18 12:02 UTC. Injury data observed 2026-10-18 16:45 UTC.
Skylar Thompson is on the reserve list and cannot start, so he is skipped in the order of replacements.
CLE: Deshaun Watson 99.6%
| Start scenario | Probability |
|---|---|
| Deshaun Watson | 99.6% |
| Shedeur Sanders | 0.4% |
Evidence for each quarterback
| QB | Chart | Status | If next in line |
|---|---|---|---|
| Deshaun Watson | QB1 | Not on report | 99.6% |
| Shedeur Sanders | QB2 | Not on report | 99% |
| Taylen Green | QB3 | Not on report | 99% |
| Dillon Gabriel | QB4 | Reserve list | 0% |
- Deshaun Watson (not on published report): not on the team's published report; historical start rate 0.996 (416/417, 90% interval 0.99-1.00; daily depth charts)
- Shedeur Sanders (not on published report): not on the team's published report; historical start rate 0.986 (34/34, 90% interval 0.95-1.00; daily depth charts)
- Taylen Green (not on published report): not on the team's published report; historical start rate 0.986 (34/34, 90% interval 0.95-1.00; daily depth charts)
- Dillon Gabriel (roster status): reserve list (e.g. injured reserve); cannot start unless re-signed/elevated
Depth chart snapshot 2026-10-18 12:02 UTC. Injury data observed 2026-10-18 16:45 UTC.
Dillon Gabriel is on the reserve list and cannot start, so he is skipped in the order of replacements.
Injury report (38 players: 9 out, 7 questionable)
| Team | Player | Pos | Depth chart | Injury | Practice | Game status |
|---|---|---|---|---|---|---|
| BAL | Broderick Washington | DE | RDE2 | Ankle | Did not practise | Out |
| BAL | Lamar Jackson | QB | QB1 | Ankle | Did not practise | Out |
| BAL | Matthew Hibner | TE | TE2 | Hand | Did not practise | Out |
| CLE | Kalia Davis | DT | LDT4 | Quadricep | Did not practise | Out |
| CLE | Mike Hall Jr. | DT | RDT2 | Ankle | Did not practise | Out |
| CLE | Teven Jenkins | G | RG2 | Back | Did not practise | Out |
| BAL | Cam Jurgens | C | C1 | Concussion | Limited | Out |
| CLE | Dylan Sampson | RB | KR2 | Knee | Limited | Out |
| CLE | Dillon Gabriel | QB | QB4 | Back | Full | Out |
| BAL | Andrew Vorhees | G | LG2 | Foot | Limited | Questionable |
| BAL | Emery Jones Jr. | G | RG2 | Ankle | Limited | Questionable |
| CLE | Carson Schwesinger | LB | MLB1 | Ankle | Limited | Questionable |
| CLE | Derek Barnett | DE | LDE2 | Ankle | Limited | Questionable |
| CLE | Mason Graham | DT | LDT1 | Knee | Limited | Questionable |
| CLE | Quinshon Judkins | RB | RB1 | Ankle | Limited | Questionable |
| BAL | Ja'Kobi Lane | WR | WR2 | Wrist | Full | Questionable |
| BAL | Calais Campbell | DT | RDE1 | Not injury related - resting player | Did not practise | — |
| BAL | Ronnie Stanley | T | LT1 | Ankle | Did not practise | — |
| BAL | John Simpson | G | LG1 | Groin | Limited | — |
| BAL | Zay Flowers | WR | WR1 | Toe | Limited | — |
| CLE | Denzel Boston | WR | WR1 | Foot | Limited | — |
| CLE | Maliek Collins | DT | RDT1 | Foot | Limited | — |
| BAL | Kyle Hamilton | S | NB1 | Stinger | Full | — |
| BAL | Mark Andrews | TE | TE1 | Hand | Full | — |
| BAL | Marlon Humphrey | CB | RCB1 | Hamstring | Full | — |
| BAL | Mike Green | LB | SLB2 | Hamstring | Full | — |
| BAL | Nick Vannett | TE | TE4 | Knee | Full | — |
| BAL | Rashod Bateman | WR | WR3 | Shoulder | Full | — |
| BAL | Roger Rosengarten | T | RT1 | Knee | Full | — |
| BAL | Teddye Buchanan | LB | RILB2 | Groin | Full | — |
| BAL | Trenton Simpson | LB | RILB1 | Hamstring | Full | — |
| BAL | Trey Hendrickson | LB | SLB1 | Finger | Full | — |
| CLE | Carsen Ryan | TE | TE3 | Calf | Full | — |
| CLE | Elgton Jenkins | C | C1 | Knee | Full | — |
| CLE | Grant Delpit | S | SS1 | Shoulder | Full | — |
| CLE | KC Concepcion | WR | PR1 | Concussion | Full | — |
| CLE | Tylan Wallace | WR | PR4 | Knee | Full | — |
| CLE | Tytus Howard | T | RT1 | Knee | Full | — |
From the official NFL injury report as carried by nflverse (data last changed 18 Oct, 06:01 UTC; we last checked 18 Oct, 16:45 UTC), shown as of kickoff. Most serious first. Depth chart: position and order on the team's latest depth chart before this report (usual starters in bold: first at the position, receivers 1–3). For this game, game statuses (Out, Doubtful, Questionable) come with the final report on Friday 16 Oct. The data feed can lag the league's own report, at times by a day or more, so check the official injury report on NFL.com and team announcements before kickoff. Display only: injuries other than at quarterback are not model inputs (tested; the market line usually reflects them).
What moved the combined model
| Feature | Effect (pts) |
|---|---|
| BAL offense success rate | -0.02 |
| BAL rushing EPA/rush | -0.02 |
| CLE sack rate taken | -0.02 |
| BAL expected QB vs recent baseline | +0.02 |
| market total | +0.02 |
Largest contributions to the model's adjustment of the market margin (positive favours CLE). This explains the fitted model, not football cause and effect. The adjustments are small because validation showed the market line is hard to improve on.
Weather (display only)
13.1 °C, wind 15.2 km/h (gusts 24.5), precipitation 0.0 mm at kickoff.
Open-Meteo forecast observed 2026-10-18 14:15 UTC, 2.7 h before kickoff. Weather is not a model input: it did not pass the feature-group evaluation (see Performance).
Data freshness at this forecast
All sources were fresh and complete at the cutoff.
| Source | State | Provider updated | Last checked by us |
|---|---|---|---|
| Injury reports | fresh | 2026-10-18 12:02 UTC | 2026-10-18 16:45 UTC |
| Depth charts | fresh | 2026-10-18 12:02 UTC | 2026-10-18 16:45 UTC |
| Rosters | fresh | 2026-10-18 12:04 UTC | 2026-10-18 16:45 UTC |
| Market line (The Odds API) | fresh | 2026-10-18 16:45 UTC | 2026-10-18 16:46 UTC |
Market line age at the cutoff: 0 h. A source counts as stale if the provider has not updated it for 36 h (8 days for rosters) or we have not re-checked it for 36 h.
Team efficiency entering the game
As-of values at the forecast cutoff: exponentially weighted, shrunk toward league average, prior-season games down-weighted.
| Measure | BAL | CLE |
|---|---|---|
| Offense EPA / play | 0.089 | -0.113 |
| Defense EPA / play allowed | -0.006 | -0.047 |
| Passing EPA / dropback | 0.118 | -0.071 |
| Pass defense EPA / dropback | 0.047 | -0.063 |
| Rushing EPA / rush | 0.050 | -0.173 |
| Run defense EPA / rush | -0.096 | -0.021 |
| Points / drive | 2.41 | 1.51 |
| Points / drive allowed | 2.02 | 1.90 |
| Sack rate taken | 7.3% | 8.9% |
| Sack rate generated | 5.3% | 8.1% |
| Opponent-adjusted offense | 0.048 | -0.075 |
| Opponent-adjusted defense | 0.003 | 0.032 |
| Expected QB (EPA / dropback, shrunk) | -0.077 | -0.060 |
| Games this season | 5 | 5 |
Forecast history
| Generated (cutoff) | Public evidence | BAL | CLE | Margin | Total | P(CLE) | Market | State | Verification | Archive |
|---|---|---|---|---|---|---|---|---|---|---|
| 13 Oct, 17:00 UTC | 13 Oct, 17:00 UTC | 22.9 | 18.4 | BAL by 4.6 | 41.3 | 32% | BAL −4.5 / 41.0 | Superseded | Publicly verifiable before kickoff | sha d1bdfb7960… · timestamped Oct 13 17:00:47 2026 GMT · Web Archive copy |
| 13 Oct, 18:16 UTC | 13 Oct, 18:16 UTC | 23.2 | 18.6 | BAL by 4.6 | 41.8 | 32% | BAL −4.5 / 41.5 | Superseded | Publicly verifiable before kickoff | sha 28119b5ce9… · timestamped Oct 13 18:16:07 2026 GMT · Web Archive copy |
| 14 Oct, 00:46 UTC | 14 Oct, 00:46 UTC | 23.2 | 18.6 | BAL by 4.6 | 41.8 | 32% | BAL −4.5 / 41.5 | Superseded | Publicly verifiable before kickoff | sha 18e5e27fe5… · timestamped Oct 14 00:46:08 2026 GMT · Web Archive copy |
| 14 Oct, 06:16 UTC | 14 Oct, 06:16 UTC | 23.2 | 18.6 | BAL by 4.6 | 41.8 | 32% | BAL −4.5 / 41.5 | Superseded | Publicly verifiable before kickoff | sha 2bb66de06a… · timestamped Oct 14 06:16:35 2026 GMT · Web Archive copy |
| 14 Oct, 07:15 UTC | 14 Oct, 07:16 UTC | 23.2 | 18.6 | BAL by 4.6 | 41.8 | 32% | BAL −4.5 / 41.5 | Superseded | Publicly verifiable before kickoff | sha bf092cc947… · timestamped Oct 14 07:16:04 2026 GMT · Web Archive copy |
| 14 Oct, 14:47 UTC | 14 Oct, 14:47 UTC | 24.2 | 18.6 | BAL by 5.6 | 42.8 | 29% | BAL −5.5 / 42.5 | Superseded | Publicly verifiable before kickoff | sha 252cd4abd4… · timestamped Oct 14 14:47:27 2026 GMT · Web Archive copy |
| 14 Oct, 21:16 UTC | 14 Oct, 21:16 UTC | 23.9 | 18.9 | BAL by 5.1 | 42.8 | 31% | BAL −5.0 / 42.5 | Superseded | Publicly verifiable before kickoff | sha 60e55e03ed… · timestamped Oct 14 21:16:21 2026 GMT · Web Archive copy |
| 15 Oct, 15:05 UTC | 15 Oct, 15:06 UTC | 23.9 | 18.9 | BAL by 5.1 | 42.8 | 31% | BAL −5.0 / 42.5 | Superseded | Publicly verifiable before kickoff | sha 4bb1937bfb… · timestamped Oct 15 15:06:05 2026 GMT · Web Archive copy |
| 15 Oct, 17:16 UTC | 15 Oct, 17:16 UTC | 23.9 | 18.9 | BAL by 5.1 | 42.8 | 31% | BAL −5.0 / 42.5 | Superseded | Publicly verifiable before kickoff | sha 74b683e226… · timestamped Oct 15 17:16:25 2026 GMT · Web Archive copy |
| 15 Oct, 20:16 UTC | 15 Oct, 20:16 UTC | 23.9 | 18.9 | BAL by 5.1 | 42.8 | 31% | BAL −5.0 / 42.5 | Superseded | Publicly verifiable before kickoff | sha c10a1a08c3… · timestamped Oct 15 20:16:30 2026 GMT · Web Archive copy |
| 15 Oct, 20:46 UTC | 15 Oct, 20:46 UTC | 23.9 | 18.9 | BAL by 5.1 | 42.8 | 31% | BAL −5.0 / 42.5 | Superseded | Publicly verifiable before kickoff | sha 03848b1cbb… · timestamped Oct 15 20:46:42 2026 GMT · Web Archive copy |
| 15 Oct, 21:16 UTC | 15 Oct, 21:16 UTC | 22.7 | 18.6 | BAL by 4.1 | 41.3 | 34% | BAL −4.0 / 41.0 | Superseded | Publicly verifiable before kickoff | sha c546721395… · timestamped Oct 15 21:16:33 2026 GMT · Web Archive copy |
| 15 Oct, 23:16 UTC | 15 Oct, 23:17 UTC | 22.7 | 18.6 | BAL by 4.1 | 41.3 | 34% | BAL −4.0 / 41.0 | Superseded | Publicly verifiable before kickoff | sha c945479548… · timestamped Oct 15 23:17:05 2026 GMT · Web Archive copy |
| 16 Oct, 00:46 UTC | 16 Oct, 00:47 UTC | 22.7 | 18.6 | BAL by 4.1 | 41.3 | 34% | BAL −4.0 / 41.0 | Superseded | Publicly verifiable before kickoff | sha 13c7adb640… · timestamped Oct 16 00:47:06 2026 GMT · Web Archive copy |
| 16 Oct, 16:06 UTC | 16 Oct, 16:06 UTC | 22.4 | 18.9 | BAL by 3.6 | 41.3 | 36% | BAL −3.5 / 41.0 | Superseded | Publicly verifiable before kickoff | sha aa172a3c4f… · timestamped Oct 16 16:06:32 2026 GMT · Web Archive copy |
| 16 Oct, 22:16 UTC | 16 Oct, 22:16 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 37% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha ba504f3481… · timestamped Oct 16 22:16:48 2026 GMT · Web Archive copy |
| 17 Oct, 00:17 UTC | 17 Oct, 00:17 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 37% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha f976ceb4c8… · timestamped Oct 17 00:17:09 2026 GMT · Web Archive copy |
| 17 Oct, 04:46 UTC | 17 Oct, 04:46 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 37% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 59c2ec7341… · timestamped Oct 17 04:46:31 2026 GMT · Web Archive copy |
| 17 Oct, 06:16 UTC | 17 Oct, 06:17 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha f50014f83f… · timestamped Oct 17 06:17:07 2026 GMT · Web Archive copy |
| 17 Oct, 17:16 UTC | 17 Oct, 17:17 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 16b6a1b527… · timestamped Oct 17 17:16:53 2026 GMT · Web Archive copy |
| 17 Oct, 23:17 UTC | 17 Oct, 23:17 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha df72220584… · timestamped Oct 17 23:17:35 2026 GMT · Web Archive copy |
| 18 Oct, 05:46 UTC | 18 Oct, 05:46 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 91241513fc… · timestamped Oct 18 05:46:17 2026 GMT · Web Archive copy |
| 18 Oct, 06:16 UTC | 18 Oct, 06:16 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha b3093adbcc… · timestamped Oct 18 06:16:07 2026 GMT · Web Archive copy |
| 18 Oct, 11:46 UTC | 18 Oct, 11:46 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 0e806c4385… · timestamped Oct 18 11:46:48 2026 GMT · Web Archive copy |
| 18 Oct, 12:46 UTC | 18 Oct, 12:46 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha c3cbe56bb8… · timestamped Oct 18 12:46:14 2026 GMT · Web Archive copy |
| 18 Oct, 15:46 UTC | 18 Oct, 15:47 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 87e1db4a5d… · timestamped Oct 18 15:46:48 2026 GMT · Web Archive copy |
| 18 Oct, 16:17 UTC | 18 Oct, 16:17 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Superseded | Publicly verifiable before kickoff | sha 48eb4d731a… · timestamped Oct 18 16:17:30 2026 GMT · Web Archive copy |
| 18 Oct, 16:47 UTC | 18 Oct, 16:47 UTC | 21.4 | 18.4 | BAL by 3.1 | 39.8 | 38% | BAL −3.0 / 39.5 | Scored | Publicly verifiable before kickoff | sha d545a799ab… · timestamped Oct 18 16:47:12 2026 GMT · Web Archive copy |
Every version is kept. The information cutoff of each version is its generation time. The highlighted row is the current version: the latest valid version generated before kickoff. Before kickoff it may still be replaced; at kickoff it is locked; once the game is final it is scored. Versions that failed validation are never shown as current or scored. "Public evidence" is GitHub's own record of when the file was first pushed, independent of this project's clock. Each version is also archived outside GitHub Actions: its SHA-256 hash, an RFC 3161 trusted timestamp (proves the exact file existed at that time) and an Internet Archive copy of the public file (checked byte-for-byte against the hash).
Result vs forecast
Actual margin CLE by 3.0 (forecast BAL by 3.1, error 6.1 pts); actual total 23 (forecast 39.8, error 16.8).