Scoring & Efficiency
Percentile rank per metric. Outward = better than league. Inner circle = median (rank 16/32).
| Points | 479 | 365 | +114 | #2 |
| Total Yards | 6097 | 5,565.84 | +531.16 | #4 |
| Yds / Play | 6 | 5.48 | +0.52 | #5 |
| 1st Downs | 336 | 324.03 | +11.97 | #14 |
| Turnovers | 23 | 22.22 | +0.78 | #19 |
| Fumbles Lost | 10 | 9.41 | +0.59 | #19 |
| EXP Pts | 116.51 | 47.34 | +69.17 | #5 |
Scoring & Efficiency Defense
Percentile rank per metric (defense). Outward = better than league. Inner circle = median.
| Points | 310 | 365 | -55 | #8 |
| Total Yards | 4509 | 5,565.84 | -1,056.84 | #2 |
| Yds / Play | 4.70 | 5.48 | -0.77 | #1 |
| 1st Downs | 285 | 324.03 | -39.03 | #3 |
| Turnovers | 27 | 22.22 | +4.78 | #6 |
| Fumbles Lost | 15 | 9.41 | +5.59 | #4 |
| EXP Pts | 91.51 | -47.34 | +138.85 | #2 |
Scoring Composition
Where San Francisco 49ers's points come from. Total = 479 points scored.
Offense
Drive Averages
Percentile rank per metric. Long bars = better than league. Median = 50.
| Drives | 183 | 179 | +4 | #14 |
| Plays / Drive | 5.70 | 5.86 | -0.16 | #23 |
| Yds / Drive | 33.10 | 31.14 | +1.96 | #9 |
| Points / Drive | 2.44 | 1.95 | +0.49 | #4 |
| Score % | 44.30 | 35.87 | +8.43 | #5 |
| Turnover % | 12 | 11.72 | +0.28 | #20 |
Rushing
Rushing: Y/A × Attempts × Rush TDs (dot size). All axes 0-100 percentile; outward + larger = better.
| Rush Att | 498 | 418.34 | +79.66 | #2 |
| Rush Yds | 2305 | 1,806.44 | +498.56 | #2 |
| Rush Y/A | 4.60 | 4.28 | +0.32 | #9 |
| Rush TD | 23 | 13.97 | +9.03 | #1 |
| EXP Pts Rush | -12.96 | -12.14 | -0.82 | #16 |
Passing
Passing efficiency: Y/A × Cmp% × Pass TDs (dot size). All axes 0-100 percentile; outward + larger = better.
| Pass Att | 478 | 557.91 | -79.91 | #29 |
| Pass Cmp | 331 | 354.09 | -23.09 | #22 |
| Cmp % | 69.20 | 63.55 | +5.65 | #3 |
| Pass Yds | 3792 | 3,759.41 | +32.59 | #13 |
| Yds / Att | 7.90 | 6.76 | +1.14 | #3 |
| Yds / Cmp | 11.50 | 10.62 | +0.88 | #5 |
| Adj Y/A | 7.90 | 6.63 | +1.27 | #8 |
| Adj NY/A | 7.30 | 6.19 | +1.11 | #8 |
| Pass TD | 28 | 24.91 | +3.09 | #11 |
| TD % | 5.90 | 4.52 | +1.38 | #5 |
| Pass Int | 13 | 12.81 | +0.19 | #19 |
| Int % | 2.70 | 2.28 | +0.42 | #23 |
| Sack % | 7 | 6.71 | +0.29 | #18 |
| Pass Rating | 101 | 88.74 | +12.26 | #7 |
| EXP Pts Pass | 141.35 | 69.14 | +72.21 | #5 |
Team Conversions
Percentile rank per metric. Long bars = better than league. Median = 50.
| 3rd Down Att | 200 | 204.13 | -4.13 | #20 |
| 3rd Down Made | 90 | 79.66 | +10.34 | #4 |
| 4th Down Att | 12 | 18.59 | -6.59 | #31 |
| 4th Down Made | 7 | 8.91 | -1.91 | #23 |
| Red Zone Att | 62 | 50.81 | +11.19 | #2 |
| Red Zone Scores | 33 | 28.78 | +4.22 | #11 |
Defense
Drive Averages Defense
Percentile rank per metric (defense). Long bars = better than league. Median = 50.
| Drives | 177 | 179 | -2 | #14 |
| Plays / Drive | 5.60 | 5.87 | -0.27 | #6 |
| Yds / Drive | 25.40 | 31.11 | -5.71 | #2 |
| Points / Drive | 1.63 | 1.94 | -0.31 | #4 |
| Score % | 28.80 | 35.78 | -6.98 | #3 |
| Turnover % | 14.10 | 11.75 | +2.35 | #6 |
Rushing Defense
Rush defense: Y/A allowed × Attempts faced × Rush TDs allowed (dot size). 0-100 percentile; outward + larger = better.
| Rush Att | 401 | 418.34 | -17.34 | #9 |
| Rush Yds | 1802 | 1,806.44 | -4.44 | #17 |
| Rush Y/A | 4.50 | 4.31 | +0.19 | #22 |
| Rush TD | 11 | 13.97 | -2.97 | #8 |
| EXP Pts Rush | 11.03 | 12.14 | -1.11 | #19 |
Passing Defense
Pass defense: Y/A × Cmp% × Pass TDs allowed (dot size). All axes 0-100 percentile; outward + larger = better.
| Pass Att | 519 | 557.91 | -38.91 | #27 |
| Pass Cmp | 318 | 354.09 | -36.09 | #4 |
| Cmp % | 61.30 | 63.48 | -2.18 | #7 |
| Pass Yds | 2707 | 3,759.41 | -1,052.41 | #1 |
| Yds / Att | 5.90 | 7.23 | -1.33 | #1 |
| Yds / Cmp | 9.70 | 11.38 | -1.68 | #1 |
| Adj Y/A | 5.80 | 7.09 | -1.29 | #3 |
| Adj NY/A | 4.60 | 6.16 | -1.56 | #2 |
| Pass TD | 23 | 24.91 | -1.91 | #13 |
| TD % | 4.40 | 4.47 | -0.07 | #16 |
| Pass Int | 12 | 12.81 | -0.81 | #20 |
| Int % | 2.30 | 2.31 | -0.01 | #16 |
| Sack % | 8.50 | 6.67 | +1.83 | #3 |
| Pass Rating | 83 | 90.35 | -7.35 | #7 |
| EXP Pts Pass | 67.27 | -69.14 | +136.41 | #2 |
Team Conversions Defense
Percentile rank per metric (defense). Long bars = better than league. Median = 50.
| 3rd Down Att | 192 | 204.13 | -12.13 | #4 |
| 3rd Down Made | 64 | 79.66 | -15.66 | #2 |
| 4th Down Att | 25 | 18.59 | +6.41 | #28 |
| 4th Down Made | 8 | 8.91 | -0.91 | #11 |
| Red Zone Att | 40 | 50.81 | -10.81 | #2 |
| Red Zone Scores | 24 | 28.78 | -4.78 | #6 |
Special Teams
Kicking, returns, and punting summary for SF 2019. Click Details for full breakdown.
Special Teams — SF 2019
Field Goals
By distance
| Range (yd) | Made | Missed | % |
|---|---|---|---|
| 0-19 | 0 | 0 | — |
| 20-29 | 11 | 0 | 100.0% |
| 30-39 | 9 | 1 | 90.0% |
| 40-49 | 10 | 3 | 76.9% |
| 50-59 | 0 | 3 | 0.0% |
| 60+ | 0 | 0 | — |
Made FG distances
Missed FG distances
Blocked FG distances
Point After Touchdown (PAT)
Game-Winning Field Goals
GWFG distances
Returns
Punting P
Defensive Pressure & Tackles
Pressure, tackles for loss, and forced turnover summary for SF 2019.
Pressure & Tackles — SF 2019
Pressure
Turnover Creation
Tackle Detail
EPA & Efficiency
Expected Points Added and CPOE for SF 2019. Higher = better.
EPA & Efficiency — SF 2019
Passing
Rushing
Receiving
About these stats
EPA = Expected Points Added — a play-by-play measure of value over baseline. Positive EPA = above average; negative = below.
CPOE = Completion Percentage Over Expected — completion rate above what a typical QB would post given the same pass distribution.
Air Yards & YAC
Pass distance breakdown for SF 2019 — air yards (downfield) vs yards after catch.
Air Yards & YAC — SF 2019
Passing decomposition
Receiving decomposition
About
Air Yards = the distance a pass traveled through the air (catch point minus line of scrimmage). YAC = yards after catch (catch point to where the play ended). Together they decompose total pass yardage into "downfield throws" vs "yards earned after the catch".
Discipline
Penalty totals and per-game rate for SF 2019. Lower = better; rank pills are inverted (#1 = least penalized).
Discipline — SF 2019
Season totals
Per game
About these ranks
Lower is better. The rank pill on each tile inverts the usual convention — #1 = league's most disciplined team, #32 = most penalized.
Top 10 Ranks
Where this team ranks best in the league.
Top-ranked metrics sorted by rank strength. The curve shows cumulative share — where it bends reveals the 80/20 of this team's strengths.
Bottom 10 Ranks
Where this team ranks worst in the league.
Worst-ranked metrics sorted by severity. The curve shows cumulative share — where it bends reveals the 80/20 of this team's weaknesses.
Most Improved YoY
Biggest offensive gains 2019 vs 2018.
| Kickoff Yds | 5065 | 6202 | 1137 |
| Rush Yds | 1902 | 2305 | 403 |
| Rush Yds | 1902 | 2305 | 403 |
5-Year Trajectory
SF Off EXP, Def EXP, and Net EXP from 2018 through 2019. Trending up, down, or holding steady?
| 2018 | 20.1 | -131.1 | -111.0 |
| 2019 | 116.5 | 91.5 | +208.0 |
Last game — Week 17, 2019
Passing Profile
Team-aggregate passing-game stats for SF 2019.
Weekly Results vs Vegas
Each candle = one game. Open = Vegas predicted margin; close = actual margin. Green: team beat the spread. Red: didn't.
Betting Profile
ATS / SU / O/U splits by situation. SF has 16 graded games this season. Situations with fewer than 5 games show a dash for the percentage to avoid small-sample noise.
W / L / Push composition per situation, each row normalized to 100% of graded games in that bucket.
| Overall | 16 | 13-3 | 9-6-1 | 60.0% | 8-7-1 | 53.3% | +10.6 | +6.5 | 38 | +33.5 |
| Home | 8 | 6-2 | 3-4-1 | 42.9% | 5-3 | 62.5% | +12.8 | +6.2 | 38 | +33.5 |
| Away | 8 | 7-1 | 6-2 | 75.0% | 3-4-1 | 42.9% | +8.4 | +6.8 | 24 | +25.0 |
| As favorite | 11 | 9-2 | 4-6-1 | 40.0% | 6-4-1 | 60.0% | +10.8 | +3.9 | 38 | +33.5 |
| As underdog | 5 | 4-1 | 5-0 | 100.0% | 2-3 | 40.0% | +10.0 | +12.3 | 24 | +25.0 |
| Division games | 6 | 5-1 | 2-3-1 | 40.0% | 4-1-1 | 80.0% | +5.2 | -0.6 | 13 | +16.0 |
| Non-division | 10 | 8-2 | 7-3 | 70.0% | 4-6 | 40.0% | +13.8 | +10.8 | 38 | +33.5 |
| Pick-em (≤3) | 5 | 5-0 | 5-0 | 100.0% | 2-3 | 40.0% | +16.4 | +17.0 | 29 | +26.0 |
| Small favorite (3-7) | 5 | 4-1 | 3-2 | 60.0% | 2-2-1 | 50.0% | +14.4 | +9.3 | 38 | +33.5 |
| Large favorite (7+) | 5 | 4-1 | 0-4-1 | 0.0% | 4-1 | 80.0% | +3.6 | -6.0 | 10 | +0.0 |
| Small underdog (3-7) | 1 | 0-1 | 1-0 | — | 0-1 | — | -3.0 | +2.5 | — | +2.5 |
Head-to-Head
Opponents faced in 2019. Avg MoV = mean margin of victory; Avg Cover = mean margin of cover (positive = team covered).
| LAR | Los Angeles Rams | 2 | 2-0 | 1-1 | 1-1 | +8.0 | +6.0 |
| ARI | Arizona Cardinals | 2 | 2-0 | 0-1-1 | 2-0 | +6.5 | -3.8 |
| SEA | Seattle Seahawks | 2 | 1-1 | 1-1 | 1-0-1 | +1.0 | -4.0 |
| TB | Tampa Bay Buccaneers | 1 | 1-0 | 1-0 | 0-1 | +14.0 | +15.0 |
| CIN | Cincinnati Bengals | 1 | 1-0 | 1-0 | 1-0 | +24.0 | +25.0 |
| PIT | Pittsburgh Steelers | 1 | 1-0 | 0-1 | 0-1 | +4.0 | -2.0 |
| CLE | Cleveland Browns | 1 | 1-0 | 1-0 | 0-1 | +28.0 | +23.0 |
| WAS | Washington Commanders | 1 | 1-0 | 0-1 | 0-1 | +9.0 | -1.0 |
| CAR | Carolina Panthers | 1 | 1-0 | 1-0 | 1-0 | +38.0 | +33.5 |
| GB | Green Bay Packers | 1 | 1-0 | 1-0 | 0-1 | +29.0 | +26.0 |
| BAL | Baltimore Ravens | 1 | 0-1 | 1-0 | 0-1 | -3.0 | +2.5 |
| NO | New Orleans Saints | 1 | 1-0 | 1-0 | 1-0 | +2.0 | +3.0 |
| ATL | Atlanta Falcons | 1 | 0-1 | 0-1 | 1-0 | -7.0 | -17.5 |
Data coverage: 2020+ (Results & Spread scraper).
Schedule Context
Performance sliced by when, where, and against whom.
By month
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Sep | 3 | 3-0 | 2-1 | 1-2 | 67% |
| Oct | 5 | 5-0 | 3-2 | 2-3 | 60% |
| Nov | 3 | 2-1 | 1-1-1 | 2-1 | 50% |
| Dec | 5 | 3-2 | 3-2 | 3-1-1 | 60% |
By day of week
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Thu | 1 | 1-0 | 0-1 | 1-0 | 0% |
| Sat | 1 | 1-0 | 0-1 | 1-0 | 0% |
| Sun | 12 | 10-2 | 8-3-1 | 5-6-1 | 73% |
| Mon | 2 | 1-1 | 1-1 | 1-1 | 50% |
By season half
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| First half (W1-9) | 8 | 8-0 | 5-3 | 3-5 | 62% |
| Second half (W10+) | 8 | 5-3 | 4-3-1 | 5-2-1 | 57% |
By surface
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Grass | 14 | 11-3 | 7-6-1 | 7-7 | 54% |
| Turf | 2 | 2-0 | 2-0 | 1-0-1 | 100% |
By site role
By group
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Same division | 6 | 5-1 | 2-3-1 | 4-1-1 | 40% |
| Same conference | 6 | 5-1 | 4-2 | 3-3 | 67% |
| Inter-conference | 4 | 3-1 | 3-1 | 1-3 | 75% |
Weather
How the team performs in cold, hot, windy, and indoor conditions.
By temperature
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Cool (40-59°F) | 5 | 3-2 | 2-3 | 2-2-1 | 40% |
| Mild (60-74°F) | 3 | 3-0 | 2-0-1 | 2-1 | 100% |
| Warm (75°F+) | 6 | 5-1 | 4-2 | 2-4 | 67% |
| Indoor | 2 | 2-0 | 1-1 | 2-0 | 50% |
By wind
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Calm (<5 mph) | 5 | 4-1 | 2-2-1 | 2-2-1 | 50% |
| Breezy (5-14 mph) | 8 | 6-2 | 5-3 | 3-5 | 62% |
| Windy (≥15 mph) | 1 | 1-0 | 1-0 | 1-0 | 100% |
| Indoor | 2 | 2-0 | 1-1 | 2-0 | 50% |
Streaks & Trends
Current run, season records, and performance after specific game outcomes.
Current streaks
| Dimension | Streak | Length |
|---|---|---|
| SU | W | 2 |
| ATS | W | 1 |
| O/U | P | 0 |
Longest this season
| Dimension | Length |
|---|---|
| Longest SU win streak | 8 |
| Longest SU loss streak | 1 |
| Longest ATS cover | 3 |
| Longest ATS no-cover | 2 |
| Longest O streak | 4 |
| Longest U streak | 4 |
Performance context
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| After a win | 12 | 9-3 | 7-5 | 5-6-1 | 58% |
| After a loss | 3 | 3-0 | 1-1-1 | 3-0 | 50% |
| On 2+ winning streak | 8 | 6-2 | 4-4 | 3-5 | 50% |
| vs winning opp. | 8 | 6-2 | 6-2 | 4-3-1 | 75% |
| vs losing opp. | 6 | 5-1 | 1-4-1 | 4-2 | 20% |
Travel & Venue Context
Physical context — where games were played, how far the team traveled, and how much rest they had.
By environment
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Outdoor | 14 | 11-3 | 8-5-1 | 6-7-1 | 62% |
| Dome | 1 | 1-0 | 1-0 | 1-0 | 100% |
| Retractable (closed) | 1 | 1-0 | 0-1 | 1-0 | 0% |
By venue type
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Domestic home | 8 | 6-2 | 3-4-1 | 5-3 | 43% |
| Domestic road | 8 | 7-1 | 6-2 | 3-4-1 | 75% |
By travel distance
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Home (0 mi) | 8 | 6-2 | 3-4-1 | 5-3 | 43% |
| Short (<500) | 1 | 1-0 | 1-0 | 0-1 | 100% |
| Medium (500-1500) | 2 | 2-0 | 1-1 | 1-0-1 | 50% |
| Long (1500+) | 5 | 4-1 | 4-1 | 2-3 | 80% |
By rest days
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Short week (3-4d) | 1 | 1-0 | 0-1 | 1-0 | 0% |
| Standard (5-7d) | 11 | 9-2 | 6-4-1 | 6-5 | 60% |
| Long week (8-10d) | 1 | 1-0 | 1-0 | 0-0-1 | 100% |
| Bye+ (11+d) | 2 | 1-1 | 1-1 | 1-1 | 50% |
Betting Profile Heatmap
ATS performance across every context. Color = ATS%; opacity = sample size.
Spread-Role Performance
ATS% by pre-game spread role. Tells you which roles this team handles well or folds in.
Vegas Accuracy
Vegas closing spread vs actual margin. MAE = average miss in pts; Bias = whether Vegas systematically over- or under-rated the team.
Stat trajectory
Multi-year history with league average. Pick a stat to compare.
Division Comparison: NFC West
This team and its three division rivals, side by side.
Division rivals across core KPIs. SoS is multiplied by 100 to share an axis with per-game points.
| Team | Record | SoS | Pts/G | Pts Allowed/G | Off EXP | Def EXP |
|---|---|---|---|---|---|---|
| Arizona Cardinals (ARI) | 5-10-1 | 0.529 #7 | 22.6 | 27.6 | 64.36 | -173.55 |
| Los Angeles Rams (LAR) | 9-7 | 0.535 #4 | 24.6 | 22.8 | 37.09 | -10.53 |
| Seattle Seahawks (SEA) | 11-5 | 0.531 #6 | 25.3 | 24.9 | 60.43 | -66.35 |
| San Francisco 49ers (SF) | 13-3 | 0.504 #14 | 29.9 | 19.4 | 116.51 | 91.51 |
Insights
A look at how the 2019 San Francisco 49ers ranked among the league's 32 teams in efficiency: Strengths: defensive pass yards allowed per play (1st of 32), defensive pass yards allowed per play (1st of 32), and defensive yards allowed per play (1st of 32). Weaknesses: offensive avg time to pressure (28th of 32), offensive avg time to throw (28th of 32), and offensive avg time to throw (28th of 32).
Rivalries
- Los Angeles Rams and San Francisco 49ers have met 16 times in the regular season. San Francisco 49ers leads the series 10 to 6. The most lopsided meeting was a 29-point win for Los Angeles Rams in 2018.