Scoring & Efficiency
Percentile rank per metric. Outward = better than league. Inner circle = median (rank 16/32).
| Points | 376 | 396.63 | -20.63 | #21 |
| Total Yards | 5922 | 5,744.53 | +177.47 | #15 |
| Yds / Play | 5.70 | 5.58 | +0.12 | #16 |
| 1st Downs | 350 | 347.06 | +2.94 | #18 |
| Turnovers | 31 | 20.78 | +10.22 | #31 |
| Fumbles Lost | 14 | 8.44 | +5.56 | #31 |
| EXP Pts | 55.70 | 98.89 | -43.19 | #24 |
Scoring & Efficiency Defense
Percentile rank per metric (defense). Outward = better than league. Inner circle = median.
| Points | 390 | 396.63 | -6.63 | #17 |
| Total Yards | 5030 | 5,744.53 | -714.53 | #5 |
| Yds / Play | 5 | 5.57 | -0.57 | #4 |
| 1st Downs | 311 | 347.06 | -36.06 | #4 |
| Turnovers | 20 | 20.78 | -0.78 | #21 |
| Fumbles Lost | 8 | 8.44 | -0.44 | #18 |
| EXP Pts | -16.82 | -98.89 | +82.07 | #4 |
Scoring Composition
Where San Francisco 49ers's points come from. Total = 376 points scored.
Offense
Drive Averages
Percentile rank per metric. Long bars = better than league. Median = 50.
| Drives | 182 | 173.97 | +8.03 | #6 |
| Plays / Drive | 5.90 | 6.10 | -0.20 | #25 |
| Yds / Drive | 32.60 | 33.05 | -0.45 | #22 |
| Points / Drive | 2.05 | 2.21 | -0.16 | #22 |
| Score % | 36.30 | 39.95 | -3.65 | #24 |
| Turnover % | 14.80 | 11.38 | +3.43 | #29 |
Rushing
Rushing: Y/A × Attempts × Rush TDs (dot size). All axes 0-100 percentile; outward + larger = better.
| Rush Att | 437 | 431 | +6 | #14 |
| Rush Yds | 1889 | 1,902.13 | -13.13 | #15 |
| Rush Y/A | 4.30 | 4.38 | -0.08 | #18 |
| Rush TD | 19 | 16.63 | +2.38 | #12 |
| EXP Pts Rush | -18.51 | 11.61 | -30.12 | #28 |
Passing
Passing efficiency: Y/A × Cmp% × Pass TDs (dot size). All axes 0-100 percentile; outward + larger = better.
| Pass Att | 570 | 563.06 | +6.94 | #16 |
| Pass Cmp | 371 | 367.38 | +3.63 | #20 |
| Cmp % | 65.10 | 65.23 | -0.13 | #19 |
| Pass Yds | 4033 | 3,842.41 | +190.59 | #12 |
| Yds / Att | 7.10 | 6.84 | +0.26 | #14 |
| Yds / Cmp | 10.90 | 10.47 | +0.43 | #13 |
| Adj Y/A | 6.60 | 6.81 | -0.21 | #18 |
| Adj NY/A | 6.20 | 6.42 | -0.22 | #20 |
| Pass TD | 25 | 27.22 | -2.22 | #21 |
| TD % | 4.40 | 4.85 | -0.45 | #17 |
| Pass Int | 17 | 12.34 | +4.66 | #30 |
| Int % | 3 | 2.20 | +0.80 | #29 |
| Sack % | 6.40 | 5.94 | +0.46 | #19 |
| Pass Rating | 88 | 91.90 | -3.90 | #20 |
| EXP Pts Pass | 86.06 | 95.98 | -9.92 | #18 |
Team Conversions
Percentile rank per metric. Long bars = better than league. Median = 50.
| 3rd Down Att | 197 | 202.47 | -5.47 | #20 |
| 3rd Down Made | 77 | 84.31 | -7.31 | #25 |
| 4th Down Att | 15 | 20.56 | -5.56 | #28 |
| 4th Down Made | 6 | 11.31 | -5.31 | #31 |
| Red Zone Att | 55 | 54.69 | +0.31 | #19 |
| Red Zone Scores | 37 | 33.47 | +3.53 | #11 |
Defense
Drive Averages Defense
Percentile rank per metric (defense). Long bars = better than league. Median = 50.
| Drives | 183 | 173.97 | +9.03 | #26 |
| Plays / Drive | 5.70 | 6.10 | -0.40 | #5 |
| Yds / Drive | 27.30 | 33.06 | -5.76 | #4 |
| Points / Drive | 1.96 | 2.21 | -0.25 | #8 |
| Score % | 38.30 | 39.94 | -1.64 | #13 |
| Turnover % | 10.40 | 11.44 | -1.04 | #23 |
Rushing Defense
Rush defense: Y/A allowed × Attempts faced × Rush TDs allowed (dot size). 0-100 percentile; outward + larger = better.
| Rush Att | 430 | 431 | -1 | #17 |
| Rush Yds | 1703 | 1,902.13 | -199.13 | #7 |
| Rush Y/A | 4 | 4.39 | -0.39 | #6 |
| Rush TD | 12 | 16.63 | -4.63 | #4 |
| EXP Pts Rush | 15.79 | -11.61 | +27.40 | #7 |
Passing Defense
Pass defense: Y/A × Cmp% × Pass TDs allowed (dot size). All axes 0-100 percentile; outward + larger = better.
| Pass Att | 537 | 563.06 | -26.06 | #25 |
| Pass Cmp | 341 | 367.38 | -26.38 | #8 |
| Cmp % | 63.50 | 65.19 | -1.69 | #10 |
| Pass Yds | 3327 | 3,842.41 | -515.41 | #4 |
| Yds / Att | 6.60 | 7.24 | -0.64 | #4 |
| Yds / Cmp | 10.30 | 11.11 | -0.81 | #6 |
| Adj Y/A | 6.50 | 7.23 | -0.73 | #6 |
| Adj NY/A | 5.80 | 6.41 | -0.61 | #8 |
| Pass TD | 25 | 27.22 | -2.22 | #13 |
| TD % | 4.70 | 4.84 | -0.14 | #15 |
| Pass Int | 12 | 12.34 | -0.34 | #17 |
| Int % | 2.20 | 2.21 | -0.01 | #15 |
| Sack % | 5.30 | 5.91 | -0.61 | #21 |
| Pass Rating | 88.60 | 93.56 | -4.96 | #8 |
| EXP Pts Pass | -42.15 | -95.98 | +53.83 | #5 |
Team Conversions Defense
Percentile rank per metric (defense). Long bars = better than league. Median = 50.
| 3rd Down Att | 200 | 202.47 | -2.47 | #12 |
| 3rd Down Made | 71 | 84.31 | -13.31 | #3 |
| 4th Down Att | 20 | 20.56 | -0.56 | #14 |
| 4th Down Made | 13 | 11.31 | +1.69 | #21 |
| Red Zone Att | 45 | 54.69 | -9.69 | #2 |
| Red Zone Scores | 26 | 33.47 | -7.47 | #3 |
Special Teams
Kicking, returns, and punting summary for SF 2020. Click Details for full breakdown.
Special Teams — SF 2020
Field Goals
By distance
| Range (yd) | Made | Missed | % |
|---|---|---|---|
| 0-19 | 0 | 0 | — |
| 20-29 | 3 | 0 | 100.0% |
| 30-39 | 7 | 1 | 87.5% |
| 40-49 | 10 | 1 | 90.9% |
| 50-59 | 2 | 2 | 50.0% |
| 60+ | 0 | 0 | — |
Made FG distances
Missed 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 2020.
Pressure & Tackles — SF 2020
Pressure
Turnover Creation
Tackle Detail
EPA & Efficiency
Expected Points Added and CPOE for SF 2020. Higher = better.
EPA & Efficiency — SF 2020
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 2020 — air yards (downfield) vs yards after catch.
Air Yards & YAC — SF 2020
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 2020. Lower = better; rank pills are inverted (#1 = least penalized).
Discipline — SF 2020
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 2020 vs 2019.
| Punt Yds | 2333 | 3093 | 760 |
| Punt Net Yds | 2162 | 2790 | 628 |
| Pass Yds | 3792 | 4033 | 241 |
5-Year Trajectory
SF Off EXP, Def EXP, and Net EXP from 2018 through 2020. Trending up, down, or holding steady?
| 2018 | 20.1 | -131.1 | -111.0 |
| 2019 | 116.5 | 91.5 | +208.0 |
| 2020 | 55.7 | -16.8 | +38.9 |
Last game — Week 17, 2020
Passing Profile
Team-aggregate passing-game stats for SF 2020.
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 | 6-10 | 7-9 | 43.8% | 8-8 | 50.0% | -0.9 | -1.1 | 27 | +30.0 |
| Home | 8 | 1-7 | 2-6 | 25.0% | 4-4 | 50.0% | -8.1 | -9.8 | 8 | +10.0 |
| Away | 8 | 5-3 | 5-3 | 62.5% | 4-4 | 50.0% | +6.4 | +7.7 | 27 | +30.0 |
| As favorite | 8 | 2-6 | 2-6 | 25.0% | 5-3 | 62.5% | -2.0 | -7.3 | 27 | +24.0 |
| As underdog | 8 | 4-4 | 5-3 | 62.5% | 3-5 | 37.5% | +0.2 | +5.2 | 27 | +30.0 |
| Division games | 6 | 3-3 | 4-2 | 66.7% | 2-4 | 33.3% | +0.3 | +2.7 | 8 | +14.0 |
| Non-division | 10 | 3-7 | 3-7 | 30.0% | 6-4 | 60.0% | -1.6 | -3.3 | 27 | +30.0 |
| Pick-em (≤3) | 6 | 3-3 | 3-3 | 50.0% | 3-3 | 50.0% | +5.7 | +5.4 | 27 | +30.0 |
| Small favorite (3-7) | 1 | 0-1 | 0-1 | — | 1-0 | — | -8.0 | -12.0 | — | -12.0 |
| Large favorite (7+) | 4 | 1-3 | 1-3 | — | 2-2 | — | -4.2 | -12.0 | 18 | +11.0 |
| Small underdog (3-7) | 3 | 2-1 | 2-1 | — | 1-2 | — | -2.0 | +3.7 | 8 | +14.0 |
| Large underdog (7+) | 2 | 0-2 | 1-1 | — | 1-1 | — | -8.5 | -0.2 | — | +4.0 |
Head-to-Head
Opponents faced in 2020. Avg MoV = mean margin of victory; Avg Cover = mean margin of cover (positive = team covered).
| ARI | Arizona Cardinals | 2 | 1-1 | 1-1 | 0-2 | +2.0 | +1.5 |
| LAR | Los Angeles Rams | 2 | 2-0 | 2-0 | 0-2 | +5.5 | +9.0 |
| SEA | Seattle Seahawks | 2 | 0-2 | 1-1 | 2-0 | -6.5 | -2.5 |
| NYJ | New York Jets | 1 | 1-0 | 1-0 | 1-0 | +18.0 | +11.0 |
| NYG | New York Giants | 1 | 1-0 | 1-0 | 1-0 | +27.0 | +24.0 |
| PHI | Philadelphia Eagles | 1 | 0-1 | 0-1 | 0-1 | -5.0 | -13.5 |
| MIA | Miami Dolphins | 1 | 0-1 | 0-1 | 1-0 | -26.0 | -34.5 |
| NE | New England Patriots | 1 | 1-0 | 1-0 | 0-1 | +27.0 | +30.0 |
| GB | Green Bay Packers | 1 | 0-1 | 0-1 | 1-0 | -17.0 | -11.0 |
| NO | New Orleans Saints | 1 | 0-1 | 0-1 | 0-1 | -14.0 | -4.5 |
| BUF | Buffalo Bills | 1 | 0-1 | 0-1 | 1-0 | -10.0 | -11.5 |
| WAS | Washington Commanders | 1 | 0-1 | 0-1 | 0-1 | -8.0 | -11.0 |
| DAL | Dallas Cowboys | 1 | 0-1 | 0-1 | 1-0 | -8.0 | -12.0 |
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 | 2-1 | 2-1 | 2-1 | 67% |
| Oct | 4 | 2-2 | 2-2 | 1-3 | 50% |
| Nov | 4 | 1-3 | 1-3 | 2-2 | 25% |
| Dec | 4 | 1-3 | 1-3 | 2-2 | 25% |
| Jan | 1 | 0-1 | 1-0 | 1-0 | 100% |
By day of week
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Thu | 1 | 0-1 | 0-1 | 1-0 | 0% |
| Sat | 1 | 1-0 | 1-0 | 0-1 | 100% |
| Sun | 13 | 5-8 | 6-7 | 6-7 | 46% |
| Mon | 1 | 0-1 | 0-1 | 1-0 | 0% |
By season half
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| First half (W1-9) | 9 | 4-5 | 4-5 | 5-4 | 44% |
| Second half (W10+) | 7 | 2-5 | 3-4 | 3-4 | 43% |
By surface
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Grass | 10 | 3-7 | 4-6 | 4-6 | 40% |
| Turf | 6 | 3-3 | 3-3 | 4-2 | 50% |
By site role
By group
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Same division | 6 | 3-3 | 4-2 | 2-4 | 67% |
| Same conference | 6 | 1-5 | 1-5 | 3-3 | 17% |
| Inter-conference | 4 | 2-2 | 2-2 | 3-1 | 50% |
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) | 2 | 1-1 | 1-1 | 1-1 | 50% |
| Mild (60-74°F) | 3 | 1-2 | 1-2 | 2-1 | 33% |
| Warm (75°F+) | 4 | 2-2 | 2-2 | 2-2 | 50% |
| Indoor | 7 | 2-5 | 3-4 | 3-4 | 43% |
By wind
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Calm (<5 mph) | 2 | 1-1 | 1-1 | 2-0 | 50% |
| Breezy (5-14 mph) | 7 | 3-4 | 3-4 | 3-4 | 43% |
| Indoor | 7 | 2-5 | 3-4 | 3-4 | 43% |
Streaks & Trends
Current run, season records, and performance after specific game outcomes.
Current streaks
| Dimension | Streak | Length |
|---|---|---|
| SU | L | 1 |
| ATS | W | 2 |
| O/U | O | 1 |
Longest this season
| Dimension | Length |
|---|---|
| Longest SU win streak | 2 |
| Longest SU loss streak | 3 |
| Longest ATS cover | 2 |
| Longest ATS no-cover | 3 |
| Longest O streak | 2 |
| Longest U streak | 2 |
Performance context
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| After a win | 6 | 2-4 | 3-3 | 4-2 | 50% |
| After a loss | 9 | 4-5 | 4-5 | 4-5 | 44% |
| On 2+ winning streak | 2 | 0-2 | 0-2 | 1-1 | 0% |
| On 2+ losing streak | 5 | 3-2 | 3-2 | 1-4 | 60% |
| vs winning opp. | 8 | 3-5 | 4-4 | 4-4 | 50% |
| vs losing opp. | 7 | 3-4 | 3-4 | 4-3 | 43% |
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 | 9 | 4-5 | 4-5 | 5-4 | 44% |
| Dome | 2 | 1-1 | 1-1 | 0-2 | 50% |
| Retractable (closed) | 5 | 1-4 | 2-3 | 3-2 | 40% |
By venue type
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Domestic home | 8 | 1-7 | 2-6 | 4-4 | 25% |
| Domestic road | 8 | 5-3 | 5-3 | 4-4 | 62% |
By travel distance
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Home (0 mi) | 8 | 1-7 | 2-6 | 4-4 | 25% |
| Short (<500) | 1 | 1-0 | 1-0 | 0-1 | 100% |
| Medium (500-1500) | 3 | 1-2 | 1-2 | 2-1 | 33% |
| Long (1500+) | 4 | 3-1 | 3-1 | 2-2 | 75% |
By rest days
| Bucket | G | SU | ATS | O/U | ATS% |
|---|---|---|---|---|---|
| Short week (3-4d) | 1 | 0-1 | 0-1 | 1-0 | 0% |
| Standard (5-7d) | 10 | 5-5 | 5-5 | 5-5 | 50% |
| Long week (8-10d) | 3 | 0-3 | 1-2 | 2-1 | 33% |
| Bye+ (11+d) | 1 | 1-0 | 1-0 | 0-1 | 100% |
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) | 8-8 | 0.475 #21 | 25.6 | 22.9 | 103.62 | -82.04 |
| Los Angeles Rams (LAR) | 10-6 | 0.494 #17 | 23.3 | 18.5 | 57.97 | 91.59 |
| Seattle Seahawks (SEA) | 12-4 | 0.447 #30 | 28.7 | 23.2 | 147.28 | -89.48 |
| San Francisco 49ers (SF) | 6-10 | 0.549 #5 | 23.5 | 24.4 | 55.70 | -16.82 |
Insights
A look at how the 2020 San Francisco 49ers ranked among the league's 32 teams in efficiency: Strengths: offensive yac over expected (1st of 32), offensive avg yards after catch (3rd of 32), and defensive yards allowed per play (4th of 32). Weaknesses: offensive stuffed rate (31st of 32), offensive avg time to pressure (29th of 32), and defensive avg time to pressure (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.