NFL Prophet
NFL Prophet About >> Weekly Predictions >> Playoff Odds >> Fantasy Projections >> Previous Matchups

About

Welcome to NFL Prophet

@author jcpoir Update [August 26, 2026]: After two years and 413 total matches, I've decided to retire this project. Thank you all for your interest — on to the next! This site is the endpoint of a cloud-based data pipeline that leverages machine learning and Monte Carlo simulation in order to render predictions about future NFL game outcomes and player statistics. Navigate to see picks for this week's games, end-of-season predictions, and fantasy football projections. Data are sourced from ESPN's NFL and Fantasy football APIs.
To convert 300K+ rows of raw play-by-play data into actionable insights, I have developed a pipeline that (1) queries and cleans ESPN API data, (2) generalizes plays into smoothed probability density functions, and (3) uses Monte Carlo Simulation to derive estimates of future performance. Predictions are made using a Naive Bayesian approach, meaning that the effects of individual factors such as field position, time remaining, and injuries (for example) on single-play outcomes are (largely) assumed to be independent. Note that all predictions are fully automated and do not represent my personal opinion.

Getting Started

• How likely are the Cincinnati Bengals to make the playoffs? >> HERE • How many rush attempts should we expect from Aaron Jones this week? >> HERE • How likely is Lamar Jackson to throw two or more interceptions? >> HERE • Which teams are the strongest picks to win this week? >> HERE

Reading the Swarm Plots

To illustrate how randomized game simulations are used to make predictions, I've employed a kind of interactive chart called a swarm plot. Each circle within these plots represents an individual simulated game, of which the first 1,000 out of 10,000 total simulations are displayed. While it's impossible to render all 10,000 examples in one chart due to computational constraints, the full set of simulations is used to produce probability estimates.


Fig 1a. A Sample Matchup Swarm Plot

Fig 1b. A Sample Player Swarm Plot

For each statistical category, the frozen vertical line demarcates the sample mean of the full dataset (10,000 simulations). To find the probability of reaching a statistical threshold (i.e. passing yards > 300), select the relevant stat from the blue dropdown and move your mouse to that point along the horizontal axis. The percentage values above the axis represent the odds of the statistic falling above or below the set threshold.


II. Historical Performance



Season

Week

Home

Score

Away

PASS%

RUSH%

FPTS

2025

12

BUF

19 - 23

HOU

0.586

0.414

0.7

2025

10

BUF

13 - 30

MIA

0.645

0.355

2.8

2025

9

KC

21 - 28

BUF

0.426

0.574

3.8

2025

8

BUF

40 - 9

CAR

0.397

0.603

2.4

2025

6

BUF

14 - 24

ATL

0.52

0.48

0.0

2025

4

NO

19 - 31

BUF

0.407

0.593

0.0

2025

3

MIA

21 - 31

BUF

0.509

0.491

6.1

2025

2

BUF

30 - 10

NYJ

0.386

0.614

10.7

2025

1

BAL

40 - 41

BUF

0.597

0.403

2.1

2024

18

CLE

10 - 35

BAL

0.642

0.358

6.6

2024

17

MIA

20 - 3

CLE

0.627

0.373

1.1

2024

16

CLE

6 - 24

CIN

0.586

0.414

4.1

2024

15

KC

21 - 7

CLE

0.618

0.382

1.9

2024

14

CLE

14 - 27

PIT

0.621

0.379

6.4

2024

13

CLE

32 - 41

DEN

0.716

0.284

19.2

2024

12

PIT

19 - 24

CLE

0.5

0.5

5.1

2024

11

CLE

14 - 35

NO

0.701

0.299

18.6

2024

9

LAC

27 - 10

CLE

0.657

0.343

5.8

2024

8

BAL

24 - 29

CLE

0.641

0.359

16.5

2024

7

CIN

21 - 14

CLE

0.712

0.288

10.1

2024

6

CLE

16 - 20

PHI

0.479

0.521

1.3

2024

5

CLE

13 - 34

WSH

0.558

0.442

4.1

2024

4

CLE

16 - 20

LV

0.593

0.407

2.1

2024

3

NYG

21 - 15

CLE

0.673

0.327

3.7

2024

2

CLE

18 - 13

JAX

0.54

0.46

10.4

2024

1

DAL

33 - 17

CLE

0.703

0.297

3.9

2023

18

CLE

14 - 31

CIN

0.52

0.48

0.0

2023

17

NYJ

20 - 37

CLE

0.509

0.491

17.1

2023

16

CLE

36 - 22

HOU

0.595

0.405

3.9

2023

15

CHI

17 - 20

CLE

0.714

0.286

3.7

2023

14

JAX

27 - 31

CLE

0.616

0.384

7.2

2023

13

CLE

19 - 36

LAR

0.657

0.343

12.3

2023

12

CLE

12 - 29

DEN

0.636

0.364

5.4

2023

11

PIT

10 - 13

CLE

0.597

0.403

12.0

2023

10

CLE

33 - 31

BAL

0.493

0.507

15.4

2023

9

ARI

0 - 27

CLE

0.429

0.571

3.4

2023

8

CLE

20 - 24

SEA

0.444

0.556

5.0

2023

7

CLE

39 - 38

IND

0.529

0.471

9.9

2023

6

SF

17 - 19

CLE

0.5

0.5

6.7

2023

4

BAL

28 - 3

CLE

0.59

0.41

2.0

2023

3

TEN

3 - 27

CLE

0.516

0.484

11.8

2023

2

CLE

22 - 26

PIT

0.533

0.467

7.1

2023

1

CIN

3 - 24

CLE

0.42

0.58

9.2

2022

18

NYJ

6 - 11

MIA

0.623

0.377

2.1

2022

17

NYJ

6 - 23

SEA

0.73

0.27

3.8

2022

16

JAX

19 - 3

NYJ

0.623

0.377

3.5

2022

15

DET

20 - 17

NYJ

0.614

0.386

9.4

2022

14

NYJ

12 - 20

BUF

0.681

0.319

12.0

2022

13

NYJ

22 - 27

MIN

0.707

0.293

3.7

2022

12

CHI

10 - 31

NYJ

0.475

0.525

14.0

2022

11

NYJ

3 - 10

NE

0.489

0.511

3.7

2022

9

BUF

17 - 20

NYJ

0.424

0.576

0.0

2022

8

NE

22 - 17

NYJ

0.732

0.268

0.0

2022

6

NYJ

27 - 10

GB

0.353

0.647

0.0

2022

5

MIA

17 - 40

NYJ

0.389

0.611

2.1

2022

4

NYJ

24 - 20

PIT

0.561

0.439

8.5

2022

3

CIN

27 - 12

NYJ

0.722

0.278

8.9

2022

2

NYJ

31 - 30

CLE

0.692

0.308

6.5

2022

1

BAL

24 - 9

NYJ

0.776

0.224

9.9

2021

13

PHI

33 - 18

NYJ

0.691

0.309

20.6

2021

12

NYJ

21 - 14

HOU

0.414

0.586

9.3

2021

11

MIA

24 - 17

NYJ

0.684

0.316

29.6

2021

10

BUF

45 - 17

NYJ

0.681

0.319

13.4

2021

9

NYJ

30 - 45

IND

0.712

0.288

27.4

2021

8

CIN

31 - 34

NYJ

0.645

0.355

13.1

2021

7

NYJ

13 - 54

NE

0.712

0.288

10.2

2021

5

NYJ

20 - 27

ATL

0.64

0.36

0.0

2021

3

NYJ

0 - 26

DEN

0.729

0.271

5.2

2021

2

NE

25 - 6

NYJ

0.516

0.484

8.7

2021

1

NYJ

14 - 19

CAR

0.685

0.315

0.7