Here’s your cleaned-up article! I’ve preserved your voice and narrative flow while tightening up the rougher spots.
Georgia lost this game like Bama usually loses them
Wow, that was a game. I can’t say I enjoyed much of it, and my wife would attest to my surly mood throughout this one, especially after seeing a first-half lead fall through in ways that felt almost destined, if not entirely predictable. It’s nice to end up on the other side of one of these games; but this is going to be one of those rare instances where I write about an Alabama win where maybe we “kinda shouldn’t’ve gotten this one.”
I can recall only a few Bama wins like that off the top of my head in the last several years:
- This game
- The win at Texas in 2022, with a Bryce Young-led offense and what honestly should have been a safety on Bryce Young.
- The 2017 win over Florida State, though I might call that a statistical aberration (plus a critical QB injury) more than a game that the Tide “shouldn’t have won.”
- That 14-13 Alabama @ Arkansas win in 2014, where the Hogs did almost everything they needed to do to win an ugly game.
- Honorable mention goes to the Alabama-Jalen comeback over UGA in 2018, though Alabama was much more explosive in that one, if inefficient
The point is: it’s rare for Alabama to win like this (and not quite as rare to lose this way). But on Saturday night, it was the Dawgs who were denied.
body
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, ‘Roboto’, sans-serif;
margin: 0;
padding: 20px;
background: #f8fafc;
.chart-container
background: white;
border-radius: 12px;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
overflow: hidden;
.chart-header
padding: 18px 24px 16px;
border-bottom: 1px solid #e5e5e5;
background: white;
.chart-title
font-size: 18px;
font-weight: 600;
color: #171717;
margin: 0;
.chart-content
padding: 20px 24px 24px !important;
@media (max-width: 640px)
.chart-content
padding: 12px 16px 20px !important;
.chart-header
padding: 12px 16px 12px !important;
.embed-footer-top
padding: 8px 12px !important;
.data-definitions
padding: 12px !important;
body
padding: 12px !important;
.chart-content.top-receivers
height: 624px;
.chart-content.top-passers
height: 280px !important;
.chart-content.top-rushers
height: 372px;
.chart-content:not(.top-receivers):not(.top-passers):not(.top-rushers)
height: 372px;
.embed-footer
border-top: 1px solid #e5e5e5;
font-size: 12px;
color: #737373;
.embed-footer-top
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
.embed-footer-link
color: #737373;
text-decoration: none;
font-weight: 500;
.embed-footer-link:hover
color: #525252;
text-decoration: underline;
.data-definitions-toggle
background: none;
border: none;
color: #737373;
font-size: 12px;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 4px;
padding: 0;
.data-definitions-toggle:hover
color: #525252;
.caret
transition: transform 0.2s ease;
font-size: 10px;
.caret.expanded
transform: rotate(180deg);
.data-definitions
display: none;
padding: 16px;
background: #fafafa;
border-top: 1px solid #e5e5e5;
font-size: 12px;
line-height: 1.4;
.data-definitions.expanded
display: block;
.data-definitions ul
margin: 0;
padding-left: 0;
list-style: none;
.data-definitions li
margin-bottom: 4px;
Overall Team Performance
- Based roughly on the SP+ analytic system
- Successful play: Gains enough needed yards (50% 1st down, 70% on 2nd, 100% on 3rd/4th)
- Success Rate (SR): Percentage of plays that were successful
- Explosiveness Rate (XR): Percentage of plays gaining 15+ yards
- # Plays: Numbers shown in bars represent total play counts
- NCAA Avg: Dashed line shows 42% (roughly NCAA average) success rate
// Toggle data definitions accordion – unique function per embed
function toggleDefinitions_cfb_chart_1759110703612_pqoccn1mr()
const definitions = document.getElementById(‘dataDefinitions_cfb-chart-1759110703612-pqoccn1mr’);
const caret = document.getElementById(‘caret_cfb-chart-1759110703612-pqoccn1mr’);
if (definitions.classList.contains(‘expanded’))
definitions.classList.remove(‘expanded’);
caret.classList.remove(‘expanded’);
else
definitions.classList.add(‘expanded’);
caret.classList.add(‘expanded’);
// WordPress-safe chart initialization with defensive checks
(function()
‘use strict’;
function initChart()
// Check if Chart.js is available
if (typeof Chart === ‘undefined’)
console.warn(‘Chart.js not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if datalabels plugin is available
if (typeof ChartDataLabels === ‘undefined’)
console.warn(‘ChartDataLabels plugin not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if canvas element exists
const canvas = document.getElementById(‘cfb-chart-1759110703612-pqoccn1mr’);
if (!canvas)
console.warn(‘Canvas element not found yet, retrying…’);
setTimeout(initChart, 100);
return;
// Prevent multiple chart instances
if (canvas.chartInstance)
console.log(‘Chart already initialized’);
return;
try
// Register the datalabels plugin
Chart.register(ChartDataLabels);
// Embed actual chart data directly
const chartData =
“labels”: [
“Alabama”,
“Georgia”
],
“datasets”: [
“label”: “Explosiveness Rate (XR)”,
“data”: [
0.11688311688311688,
0.15384615384615385
],
“backgroundColor”: [
“rgba(101, 0, 20, 0.8)”,
“#991B1BCC”
],
“stack”: “SRXR”,
“datalabels”:
“display”: false
,
“label”: “Success Rate (SR)”,
“data”: [
0.4025974025974026,
0.4423076923076923
],
“backgroundColor”: [
“rgba(175, 40, 60, 0.8)”,
“#DC2626CC”
],
“stack”: “SRXR”,
“datalabels”:
“display”: true
,
“playCountData”: [
77,
52
]
,
“type”: “line”,
“data”: [
0.42,
0.42
],
“label”: “NCAA Avg SR”,
“borderColor”: “#757575”,
“borderWidth”: 2,
“borderDash”: [
3,
3
],
“pointRadius”: 0,
“datalabels”:
“display”: false
,
“type”: “line”,
“data”: [
null,
null
],
“label”: “# Plays”,
“backgroundColor”: “rgba(0, 0, 0, 0)”,
“borderColor”: “rgba(0, 0, 0, 0)”,
“borderWidth”: 0,
“pointRadius”: 0,
“showLine”: false,
“fill”: false,
“datalabels”:
“display”: false
],
“teamColors”:
“success”: “rgba(175, 40, 60, 0.8)”,
“explosive”: “rgba(101, 0, 20, 0.8)”,
“light”: “rgba(245, 229, 233, 0.8)”
,
“opponentColors”:
“success”: “#DC2626CC”,
“explosive”: “#991B1BCC”,
“light”: “#FEE2E2CC”,
“color”: “#DC2626”,
“colorDark”: “#991B1B”
,
“teamPlayCount”: 77,
“opponentPlayCount”: 52,
“currentParams”:
“year”: 2025,
“week”: 5,
“seasonType”: “regular”,
“team”: “Alabama”,
“gameId”: “401752718”
;
// Chart options (WordPress-safe)
const chartOptions =
responsive: true,
maintainAspectRatio: false,
animation:
duration: 0 // Disable animations to prevent conflicts
,
elements: ‘bar’ === ‘line’ ? ‘overall-team-performance’.includes(‘play-map’) ?
line:
tension: 0,
borderWidth: 0
:
line:
tension: 0.25,
borderWidth: 2.2
,
point:
pointRadius: ‘overall-team-performance’.includes(‘team-lines’) ? 0 : undefined
: ,
plugins: catch (error)
console.error(‘Error initializing CFB chart:’, error);
// Fallback: show error message in canvas container
const container = document.getElementById(‘cfb-chart-1759110703612-pqoccn1mr’).parentNode;
if (container)
container.innerHTML = ‘
‘;
// Initialize when DOM is ready
if (document.readyState === ‘loading’)
document.addEventListener(‘DOMContentLoaded’, initChart);
else
initChart();
// Also try initialization after a short delay for WordPress compatibility
setTimeout(initChart, 500);
)();
Yep, Georgia had both the higher success rate (SR) and the higher explosiveness rate (XR) in this game, and they still managed to lose. That is very Alabama-coded: a few calls, a few bounces, a turnover, and some third-down discrepancies … herein lies the recipe for a team to lose a close one even though they were, on average, putting up “better plays.”
body
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, ‘Roboto’, sans-serif;
margin: 0;
padding: 20px;
background: #f8fafc;
.chart-container
background: white;
border-radius: 12px;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
overflow: hidden;
.chart-header
padding: 18px 24px 16px;
border-bottom: 1px solid #e5e5e5;
background: white;
.chart-title
font-size: 18px;
font-weight: 600;
color: #171717;
margin: 0;
.chart-content
padding: 20px 24px 24px !important;
@media (max-width: 640px)
.chart-content
padding: 12px 16px 20px !important;
.chart-header
padding: 12px 16px 12px !important;
.embed-footer-top
padding: 8px 12px !important;
.data-definitions
padding: 12px !important;
body
padding: 12px !important;
.chart-content.top-receivers
height: 624px;
.chart-content.top-passers
height: 280px !important;
.chart-content.top-rushers
height: 372px;
.chart-content:not(.top-receivers):not(.top-passers):not(.top-rushers)
height: 372px;
.embed-footer
border-top: 1px solid #e5e5e5;
font-size: 12px;
color: #737373;
.embed-footer-top
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
.embed-footer-link
color: #737373;
text-decoration: none;
font-weight: 500;
.embed-footer-link:hover
color: #525252;
text-decoration: underline;
.data-definitions-toggle
background: none;
border: none;
color: #737373;
font-size: 12px;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 4px;
padding: 0;
.data-definitions-toggle:hover
color: #525252;
.caret
transition: transform 0.2s ease;
font-size: 10px;
.caret.expanded
transform: rotate(180deg);
.data-definitions
display: none;
padding: 16px;
background: #fafafa;
border-top: 1px solid #e5e5e5;
font-size: 12px;
line-height: 1.4;
.data-definitions.expanded
display: block;
.data-definitions ul
margin: 0;
padding-left: 0;
list-style: none;
.data-definitions li
margin-bottom: 4px;
SR and XR by Team
- Based roughly on the SP+ analytic system
- Successful play: Gains enough needed yards (50% 1st down, 70% on 2nd, 100% on 3rd/4th)
- Success Rate (SR): Percentage of plays that were successful
- Explosiveness Rate (XR): Percentage of plays gaining 15+ yards
- Gray area: Represents 42% (roughly NCAA average) success rate
// Toggle data definitions accordion – unique function per embed
function toggleDefinitions_cfb_chart_1759110716686_nrwgks0i1()
const definitions = document.getElementById(‘dataDefinitions_cfb-chart-1759110716686-nrwgks0i1’);
const caret = document.getElementById(‘caret_cfb-chart-1759110716686-nrwgks0i1’);
if (definitions.classList.contains(‘expanded’))
definitions.classList.remove(‘expanded’);
caret.classList.remove(‘expanded’);
else
definitions.classList.add(‘expanded’);
caret.classList.add(‘expanded’);
// WordPress-safe chart initialization with defensive checks
(function()
‘use strict’;
function initChart()
// Check if Chart.js is available
if (typeof Chart === ‘undefined’)
console.warn(‘Chart.js not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if datalabels plugin is available
if (typeof ChartDataLabels === ‘undefined’)
console.warn(‘ChartDataLabels plugin not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if canvas element exists
const canvas = document.getElementById(‘cfb-chart-1759110716686-nrwgks0i1’);
if (!canvas)
console.warn(‘Canvas element not found yet, retrying…’);
setTimeout(initChart, 100);
return;
// Prevent multiple chart instances
if (canvas.chartInstance)
console.log(‘Chart already initialized’);
return;
try
// Register the datalabels plugin
Chart.register(ChartDataLabels);
// Embed actual chart data directly
const chartData =
“datasets”: [
“label”: “NCAA Avg SR”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 0.42
,
“x”: 129,
“y”: 0.42
,
“x”: 129,
“y”: 0
],
“backgroundColor”: “rgba(0,0,0,0.03)”,
“borderColor”: “transparent”,
“pointRadius”: 0,
“fill”: true,
“tension”: 0,
“showLine”: true,
“datalabels”:
“display”: false
,
“data”: [
“x”: 4,
“y”: 0,
“text”: “Jam Miller run for 2 yds to the ALA 28”
,
“x”: 5,
“y”: 0,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 6,
“y”: 0,
“text”: “Ty Simpson run for 10 yds to the ALA 38 for a 1ST down”
,
“x”: 7,
“y”: 0,
“text”: “Jam Miller run for no gain to the ALA 38”
,
“x”: 8,
“y”: 0,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 9,
“y”: 0,
“text”: “Ty Simpson pass complete to Isaiah Horton for 10 yds to the ALA 48 for a 1ST down”
,
“x”: 10,
“y”: 0,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 11,
“y”: 0,
“text”: “Kevin Riley run for 5 yds to the UGA 47”
,
“x”: 12,
“y”: 0.1111111111111111,
“text”: “Ty Simpson pass complete to Isaiah Horton for 24 yds to the UGA 23 for a 1ST down”
,
“x”: 13,
“y”: 0.1,
“text”: “Jam Miller run for 2 yds to the UGA 26”
,
“x”: 14,
“y”: 0.18181818181818182,
“text”: “Ty Simpson pass complete to Germie Bernard for 18 yds to the UGA 8 for a 1ST down”
,
“x”: 15,
“y”: 0.16666666666666666,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 16,
“y”: 0.15384615384615385,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 17,
“y”: 0.14285714285714285,
“text”: “Ty Simpson pass complete to Germie Bernard for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 22,
“y”: 0.13333333333333333,
“text”: “Jam Miller run for 3 yds to the ALA 20”
,
“x”: 23,
“y”: 0.125,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 24,
“y”: 0.11764705882352941,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the ALA 32 for a 1ST down”
,
“x”: 25,
“y”: 0.1111111111111111,
“text”: “Germie Bernard sacked by Chris Cole for a loss of 6 yards to the ALA 26”
,
“x”: 26,
“y”: 0.10526315789473684,
“text”: “Ty Simpson pass complete to Kevin Riley for 10 yds to the ALA 36”
,
“x”: 27,
“y”: 0.1,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 43 for a 1ST down”
,
“x”: 28,
“y”: 0.09523809523809523,
“text”: “Ty Simpson pass complete to Germie Bernard for 5 yds to the ALA 48”
,
“x”: 29,
“y”: 0.09090909090909091,
“text”: “Jam Miller run for 3 yds to the UGA 49”
,
“x”: 30,
“y”: 0.08695652173913043,
“text”: “Germie Bernard run for 11 yds to the UGA 38 for a 1ST down”
,
“x”: 31,
“y”: 0.125,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 19 yds to the UGA 19 for a 1ST down”
,
“x”: 32,
“y”: 0.12,
“text”: “Kevin Riley run for 4 yds to the UGA 15”
,
“x”: 33,
“y”: 0.11538461538461539,
“text”: “Jam Miller run for 2 yds to the UGA 13”
,
“x”: 34,
“y”: 0.1111111111111111,
“text”: “Jam Miller run for 7 yds to the UGA 6 for a 1ST down”
,
“x”: 35,
“y”: 0.10714285714285714,
“text”: “Ty Simpson pass complete to Isaiah Horton for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 39,
“y”: 0.13793103448275862,
“text”: “Ty Simpson pass complete to Kevin Riley for 27 yds to the UGA 48 for a 1ST down”
,
“x”: 40,
“y”: 0.13333333333333333,
“text”: “Ty Simpson pass complete to Germie Bernard for 2 yds to the UGA 46”
,
“x”: 41,
“y”: 0.12903225806451613,
“text”: “Kevin Riley run for 1 yd to the UGA 45”
,
“x”: 42,
“y”: 0.125,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 44,
“y”: 0.12121212121212122,
“text”: “Jam Miller run for 3 yds to the UGA 8”
,
“x”: 45,
“y”: 0.11764705882352941,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 46,
“y”: 0.11428571428571428,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 58,
“y”: 0.1111111111111111,
“text”: “Kevin Riley run for 2 yds to the ALA 27”
,
“x”: 59,
“y”: 0.10810810810810811,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 34”
,
“x”: 60,
“y”: 0.10526315789473684,
“text”: “Germie Bernard pass complete to Isaiah Horton for 4 yds to the ALA 38 for a 1ST down”
,
“x”: 61,
“y”: 0.1282051282051282,
“text”: “Ty Simpson pass complete to Ryan Williams for 18 yds to the UGA 44 for a 1ST down”
,
“x”: 62,
“y”: 0.125,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 63,
“y”: 0.14634146341463414,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 21 yds to the UGA 23 for a 1ST down”
,
“x”: 64,
“y”: 0.14285714285714285,
“text”: “Kadyn Proctor run for 11 yds to the UGA 2 for a 1ST down”
,
“x”: 65,
“y”: 0.13953488372093023,
“text”: “Ty Simpson run for 2 yds for a TD (Conor Talty KICK)”
,
“x”: 68,
“y”: 0.13636363636363635,
“text”: “Ty Simpson pass complete to Jam Miller for 14 yds to the ALA 39 for a 1ST down”
,
“x”: 69,
“y”: 0.13333333333333333,
“text”: “Jam Miller run for 4 yds to the ALA 43”
,
“x”: 70,
“y”: 0.13043478260869565,
“text”: “Germie Bernard run for 8 yds to the UGA 49 for a 1ST down”
,
“x”: 71,
“y”: 0.1276595744680851,
“text”: “Kevin Riley run for 4 yds to the UGA 45”
,
“x”: 72,
“y”: 0.125,
“text”: “Kevin Riley run for 3 yds to the UGA 42”
,
“x”: 73,
“y”: 0.14285714285714285,
“text”: “Ty Simpson pass complete to Kaleb Edwards for 17 yds to the UGA 25 for a 1ST down”
,
“x”: 74,
“y”: 0.14,
“text”: “Ty Simpson pass complete to Jam Miller for a loss of 2 yards to the UGA 27”
,
“x”: 75,
“y”: 0.13725490196078433,
“text”: “Germie Bernard run for 1 yd to the UGA 26”
,
“x”: 76,
“y”: 0.1346153846153846,
“text”: “Ty Simpson pass incomplete to Josh Cuevas”
,
“x”: 83,
“y”: 0.1320754716981132,
“text”: “Ty Simpson pass complete to Germie Bernard for 4 yds to the ALA 29”
,
“x”: 84,
“y”: 0.12962962962962962,
“text”: “Kevin Riley run for 5 yds to the ALA 49”
,
“x”: 85,
“y”: 0.12727272727272726,
“text”: “Kevin Riley run for 4 yds to the UGA 47”
,
“x”: 86,
“y”: 0.125,
“text”: “Kevin Riley run for no gain to the UGA 47”
,
“x”: 87,
“y”: 0.12280701754385964,
“text”: “Ty Simpson run for a loss of 2 yards to the UGA 49”
,
“x”: 91,
“y”: 0.1206896551724138,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 92,
“y”: 0.11864406779661017,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 93,
“y”: 0.11666666666666667,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 103,
“y”: 0.11475409836065574,
“text”: “Kevin Riley run for 2 yds to the ALA 13”
,
“x”: 104,
“y”: 0.11290322580645161,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 105,
“y”: 0.1111111111111111,
“text”: “Ty Simpson pass complete to Ryan Williams for 9 yds to the ALA 22 for a 1ST down”
,
“x”: 106,
“y”: 0.109375,
“text”: “Jam Miller run for 2 yds to the ALA 24”
,
“x”: 107,
“y”: 0.12307692307692308,
“text”: “Ty Simpson pass complete to Isaiah Horton for 21 yds to the ALA 45 for a 1ST down”
,
“x”: 108,
“y”: 0.12121212121212122,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the UGA 43 for a 1ST down”
,
“x”: 109,
“y”: 0.11940298507462686,
“text”: “Ty Simpson pass complete to Ryan Williams for 2 yds to the UGA 46”
,
“x”: 110,
“y”: 0.11764705882352941,
“text”: “Germie Bernard run for 6 yds to the UGA 40”
,
“x”: 111,
“y”: 0.11594202898550725,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 122,
“y”: 0.11428571428571428,
“text”: “Jam Miller run for 7 yds to the ALA 19”
,
“x”: 123,
“y”: 0.11267605633802817,
“text”: “Jam Miller run for 2 yds to the ALA 21”
,
“x”: 124,
“y”: 0.125,
“text”: “Ty Simpson run for 2 yds to the ALA 23 for a 1ST down Georgia Penalty, Personal Foul (Ellis Robinson IV) to the ALA 38 for a 1ST down”
,
“x”: 125,
“y”: 0.1232876712328767,
“text”: “Jam Miller run for 6 yds to the ALA 44”
,
“x”: 126,
“y”: 0.12162162162162163,
“text”: “Jam Miller run for a loss of 1 yard to the ALA 43”
,
“x”: 127,
“y”: 0.12,
“text”: “Ty Simpson pass complete to Jam Miller for 7 yds to the 50 yard line for a 1ST down”
,
“x”: 128,
“y”: 0.11842105263157894,
“text”: “TEAM run for a loss of 1 yard to the ALA 49”
,
“x”: 129,
“y”: 0.11688311688311688,
“text”: “TEAM run for a loss of 1 yard to the ALA 48”
],
“label”: “Alabama XR”,
“borderColor”: “rgba(101, 0, 20, 0.8)”,
“borderWidth”: 2.2,
“fill”: false
,
“data”: [
“x”: 4,
“y”: 0,
“text”: “Jam Miller run for 2 yds to the ALA 28”
,
“x”: 5,
“y”: 0,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 6,
“y”: 0.3333333333333333,
“text”: “Ty Simpson run for 10 yds to the ALA 38 for a 1ST down”
,
“x”: 7,
“y”: 0.25,
“text”: “Jam Miller run for no gain to the ALA 38”
,
“x”: 8,
“y”: 0.2,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 9,
“y”: 0.3333333333333333,
“text”: “Ty Simpson pass complete to Isaiah Horton for 10 yds to the ALA 48 for a 1ST down”
,
“x”: 10,
“y”: 0.2857142857142857,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 11,
“y”: 0.25,
“text”: “Kevin Riley run for 5 yds to the UGA 47”
,
“x”: 12,
“y”: 0.3333333333333333,
“text”: “Ty Simpson pass complete to Isaiah Horton for 24 yds to the UGA 23 for a 1ST down”
,
“x”: 13,
“y”: 0.3,
“text”: “Jam Miller run for 2 yds to the UGA 26”
,
“x”: 14,
“y”: 0.36363636363636365,
“text”: “Ty Simpson pass complete to Germie Bernard for 18 yds to the UGA 8 for a 1ST down”
,
“x”: 15,
“y”: 0.3333333333333333,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 16,
“y”: 0.3076923076923077,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 17,
“y”: 0.35714285714285715,
“text”: “Ty Simpson pass complete to Germie Bernard for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 22,
“y”: 0.3333333333333333,
“text”: “Jam Miller run for 3 yds to the ALA 20”
,
“x”: 23,
“y”: 0.3125,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 24,
“y”: 0.35294117647058826,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the ALA 32 for a 1ST down”
,
“x”: 25,
“y”: 0.3333333333333333,
“text”: “Germie Bernard sacked by Chris Cole for a loss of 6 yards to the ALA 26”
,
“x”: 26,
“y”: 0.3157894736842105,
“text”: “Ty Simpson pass complete to Kevin Riley for 10 yds to the ALA 36”
,
“x”: 27,
“y”: 0.35,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 43 for a 1ST down”
,
“x”: 28,
“y”: 0.38095238095238093,
“text”: “Ty Simpson pass complete to Germie Bernard for 5 yds to the ALA 48”
,
“x”: 29,
“y”: 0.36363636363636365,
“text”: “Jam Miller run for 3 yds to the UGA 49”
,
“x”: 30,
“y”: 0.391304347826087,
“text”: “Germie Bernard run for 11 yds to the UGA 38 for a 1ST down”
,
“x”: 31,
“y”: 0.4166666666666667,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 19 yds to the UGA 19 for a 1ST down”
,
“x”: 32,
“y”: 0.4,
“text”: “Kevin Riley run for 4 yds to the UGA 15”
,
“x”: 33,
“y”: 0.38461538461538464,
“text”: “Jam Miller run for 2 yds to the UGA 13”
,
“x”: 34,
“y”: 0.4074074074074074,
“text”: “Jam Miller run for 7 yds to the UGA 6 for a 1ST down”
,
“x”: 35,
“y”: 0.42857142857142855,
“text”: “Ty Simpson pass complete to Isaiah Horton for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 39,
“y”: 0.4482758620689655,
“text”: “Ty Simpson pass complete to Kevin Riley for 27 yds to the UGA 48 for a 1ST down”
,
“x”: 40,
“y”: 0.43333333333333335,
“text”: “Ty Simpson pass complete to Germie Bernard for 2 yds to the UGA 46”
,
“x”: 41,
“y”: 0.41935483870967744,
“text”: “Kevin Riley run for 1 yd to the UGA 45”
,
“x”: 42,
“y”: 0.40625,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 44,
“y”: 0.3939393939393939,
“text”: “Jam Miller run for 3 yds to the UGA 8”
,
“x”: 45,
“y”: 0.38235294117647056,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 46,
“y”: 0.37142857142857144,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 58,
“y”: 0.3611111111111111,
“text”: “Kevin Riley run for 2 yds to the ALA 27”
,
“x”: 59,
“y”: 0.3783783783783784,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 34”
,
“x”: 60,
“y”: 0.39473684210526316,
“text”: “Germie Bernard pass complete to Isaiah Horton for 4 yds to the ALA 38 for a 1ST down”
,
“x”: 61,
“y”: 0.41025641025641024,
“text”: “Ty Simpson pass complete to Ryan Williams for 18 yds to the UGA 44 for a 1ST down”
,
“x”: 62,
“y”: 0.4,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 63,
“y”: 0.4146341463414634,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 21 yds to the UGA 23 for a 1ST down”
,
“x”: 64,
“y”: 0.42857142857142855,
“text”: “Kadyn Proctor run for 11 yds to the UGA 2 for a 1ST down”
,
“x”: 65,
“y”: 0.4418604651162791,
“text”: “Ty Simpson run for 2 yds for a TD (Conor Talty KICK)”
,
“x”: 68,
“y”: 0.45454545454545453,
“text”: “Ty Simpson pass complete to Jam Miller for 14 yds to the ALA 39 for a 1ST down”
,
“x”: 69,
“y”: 0.4444444444444444,
“text”: “Jam Miller run for 4 yds to the ALA 43”
,
“x”: 70,
“y”: 0.45652173913043476,
“text”: “Germie Bernard run for 8 yds to the UGA 49 for a 1ST down”
,
“x”: 71,
“y”: 0.44680851063829785,
“text”: “Kevin Riley run for 4 yds to the UGA 45”
,
“x”: 72,
“y”: 0.4375,
“text”: “Kevin Riley run for 3 yds to the UGA 42”
,
“x”: 73,
“y”: 0.4489795918367347,
“text”: “Ty Simpson pass complete to Kaleb Edwards for 17 yds to the UGA 25 for a 1ST down”
,
“x”: 74,
“y”: 0.44,
“text”: “Ty Simpson pass complete to Jam Miller for a loss of 2 yards to the UGA 27”
,
“x”: 75,
“y”: 0.43137254901960786,
“text”: “Germie Bernard run for 1 yd to the UGA 26”
,
“x”: 76,
“y”: 0.4230769230769231,
“text”: “Ty Simpson pass incomplete to Josh Cuevas”
,
“x”: 83,
“y”: 0.41509433962264153,
“text”: “Ty Simpson pass complete to Germie Bernard for 4 yds to the ALA 29”
,
“x”: 84,
“y”: 0.42592592592592593,
“text”: “Kevin Riley run for 5 yds to the ALA 49”
,
“x”: 85,
“y”: 0.43636363636363634,
“text”: “Kevin Riley run for 4 yds to the UGA 47”
,
“x”: 86,
“y”: 0.42857142857142855,
“text”: “Kevin Riley run for no gain to the UGA 47”
,
“x”: 87,
“y”: 0.42105263157894735,
“text”: “Ty Simpson run for a loss of 2 yards to the UGA 49”
,
“x”: 91,
“y”: 0.41379310344827586,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 92,
“y”: 0.4067796610169492,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 93,
“y”: 0.4,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 103,
“y”: 0.39344262295081966,
“text”: “Kevin Riley run for 2 yds to the ALA 13”
,
“x”: 104,
“y”: 0.3870967741935484,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 105,
“y”: 0.3968253968253968,
“text”: “Ty Simpson pass complete to Ryan Williams for 9 yds to the ALA 22 for a 1ST down”
,
“x”: 106,
“y”: 0.390625,
“text”: “Jam Miller run for 2 yds to the ALA 24”
,
“x”: 107,
“y”: 0.4,
“text”: “Ty Simpson pass complete to Isaiah Horton for 21 yds to the ALA 45 for a 1ST down”
,
“x”: 108,
“y”: 0.4090909090909091,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the UGA 43 for a 1ST down”
,
“x”: 109,
“y”: 0.40298507462686567,
“text”: “Ty Simpson pass complete to Ryan Williams for 2 yds to the UGA 46”
,
“x”: 110,
“y”: 0.39705882352941174,
“text”: “Germie Bernard run for 6 yds to the UGA 40”
,
“x”: 111,
“y”: 0.391304347826087,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 122,
“y”: 0.4,
“text”: “Jam Miller run for 7 yds to the ALA 19”
,
“x”: 123,
“y”: 0.39436619718309857,
“text”: “Jam Miller run for 2 yds to the ALA 21”
,
“x”: 124,
“y”: 0.4027777777777778,
“text”: “Ty Simpson run for 2 yds to the ALA 23 for a 1ST down Georgia Penalty, Personal Foul (Ellis Robinson IV) to the ALA 38 for a 1ST down”
,
“x”: 125,
“y”: 0.410958904109589,
“text”: “Jam Miller run for 6 yds to the ALA 44”
,
“x”: 126,
“y”: 0.40540540540540543,
“text”: “Jam Miller run for a loss of 1 yard to the ALA 43”
,
“x”: 127,
“y”: 0.41333333333333333,
“text”: “Ty Simpson pass complete to Jam Miller for 7 yds to the 50 yard line for a 1ST down”
,
“x”: 128,
“y”: 0.40789473684210525,
“text”: “TEAM run for a loss of 1 yard to the ALA 49”
,
“x”: 129,
“y”: 0.4025974025974026,
“text”: “TEAM run for a loss of 1 yard to the ALA 48”
],
“label”: “Alabama SR”,
“borderColor”: “rgba(175, 40, 60, 0.8)”,
“borderWidth”: 2.2,
“fill”: false
,
“data”: [
“x”: 1,
“y”: 0,
“text”: “Nate Frazier run for 2 yds to the UGA 27”
,
“x”: 2,
“y”: 0,
“text”: “Gunner Stockton pass incomplete to Colbie Young”
,
“x”: 3,
“y”: 0,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 18,
“y”: 0.25,
“text”: “Nate Frazier run for 24 yds to the UGA 34 for a 1ST down”
,
“x”: 19,
“y”: 0.2,
“text”: “Gunner Stockton pass incomplete to Henry Delp”
,
“x”: 20,
“y”: 0.16666666666666666,
“text”: “Chauncey Bowens run for 5 yds to the UGA 39”
,
“x”: 21,
“y”: 0.14285714285714285,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 36,
“y”: 0.125,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 8 yds to the UGA 33”
,
“x”: 37,
“y”: 0.2222222222222222,
“text”: “Chauncey Bowens run for 29 yds to the ALA 38 for a 1ST down”
,
“x”: 38,
“y”: 0.3,
“text”: “Gunner Stockton pass complete to Colbie Young for 38 yds for a TD (Peyton Woodring KICK)”
,
“x”: 43,
“y”: 0.2727272727272727,
“text”: “Nate Frazier run for 2 yds to the UGA 9”
,
“x”: 47,
“y”: 0.25,
“text”: “Zachariah Branch run for a loss of 6 yards to the UGA 19”
,
“x”: 48,
“y”: 0.3076923076923077,
“text”: “Gunner Stockton pass complete to Colbie Young for 17 yds to the UGA 36 for a 1ST down”
,
“x”: 49,
“y”: 0.2857142857142857,
“text”: “Chauncey Bowens run for 4 yds to the UGA 40”
,
“x”: 50,
“y”: 0.26666666666666666,
“text”: “Gunner Stockton pass complete to London Humphreys for 9 yds to the UGA 49 for a 1ST down”
,
“x”: 51,
“y”: 0.25,
“text”: “Gunner Stockton sacked by Edric Hill and LT Overton for a loss of 2 yards to the UGA 47”
,
“x”: 52,
“y”: 0.29411764705882354,
“text”: “Chauncey Bowens run for 43 yds to the ALA 10 for a 1ST down”
,
“x”: 53,
“y”: 0.2777777777777778,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 5 yds to the ALA 5”
,
“x”: 54,
“y”: 0.2631578947368421,
“text”: “Josh McCray run for 3 yds to the ALA 2”
,
“x”: 55,
“y”: 0.25,
“text”: “Josh McCray run for no gain to the ALA 2”
,
“x”: 56,
“y”: 0.23809523809523808,
“text”: “Chauncey Bowens run for a loss of 1 yard to the ALA 2”
,
“x”: 57,
“y”: 0.22727272727272727,
“text”: “Chauncey Bowens run for 2 yds for a TD (Peyton Woodring KICK)”
,
“x”: 66,
“y”: 0.21739130434782608,
“text”: “Chauncey Bowens run for 10 yds to the UGA 23 for a 1ST down”
,
“x”: 67,
“y”: 0.20833333333333334,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 2 yds to the UGA 25”
,
“x”: 77,
“y”: 0.2,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 6 yds to the UGA 32”
,
“x”: 78,
“y”: 0.23076923076923078,
“text”: “Dillon Bell run for 43 yds to the ALA 25 for a 1ST down”
,
“x”: 79,
“y”: 0.2222222222222222,
“text”: “Chauncey Bowens run for 14 yds to the ALA 11 for a 1ST down”
,
“x”: 80,
“y”: 0.21428571428571427,
“text”: “Chauncey Bowens run for 1 yd to the ALA 10 for a 1ST down Alabama Penalty, Personal Foul (LT Overton) to the ALA 5 for a 1ST down”
,
“x”: 81,
“y”: 0.20689655172413793,
“text”: “Josh McCray run for 4 yds to the ALA 1”
,
“x”: 82,
“y”: 0.2,
“text”: “Josh McCray run for 1 yd for a TD (Peyton Woodring KICK)”
,
“x”: 88,
“y”: 0.1935483870967742,
“text”: “Dwight Phillips Jr. run for 1 yd to the 50 yard line”
,
“x”: 89,
“y”: 0.1875,
“text”: “Gunner Stockton pass incomplete to Talyn Taylor”
,
“x”: 90,
“y”: 0.18181818181818182,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 94,
“y”: 0.17647058823529413,
“text”: “Gunner Stockton pass complete to Colbie Young for 3 yds to the UGA 49”
,
“x”: 95,
“y”: 0.17142857142857143,
“text”: “Gunner Stockton run for 3 yds to the ALA 48”
,
“x”: 96,
“y”: 0.19444444444444445,
“text”: “Gunner Stockton run for 21 yds to the ALA 27 for a 1ST down”
,
“x”: 97,
“y”: 0.1891891891891892,
“text”: “Chauncey Bowens run for 4 yds to the ALA 23”
,
“x”: 98,
“y”: 0.18421052631578946,
“text”: “Chauncey Bowens run for 6 yds to the ALA 17 for a 1ST down”
,
“x”: 99,
“y”: 0.1794871794871795,
“text”: “Josh McCray run for 7 yds to the ALA 10”
,
“x”: 100,
“y”: 0.175,
“text”: “Josh McCray run for no gain to the ALA 10”
,
“x”: 101,
“y”: 0.17073170731707318,
“text”: “Gunner Stockton run for 2 yds to the ALA 8”
,
“x”: 102,
“y”: 0.16666666666666666,
“text”: “Cash Jones run for a loss of 3 yards to the ALA 11”
,
“x”: 112,
“y”: 0.16279069767441862,
“text”: “Zachariah Branch run for 10 yds to the UGA 15 for a 1ST down”
,
“x”: 113,
“y”: 0.1590909090909091,
“text”: “Chauncey Bowens run for 2 yds to the UGA 17 Georgia Penalty, Offensive Holding (Bo Hughley) to the UGA 9”
,
“x”: 114,
“y”: 0.15555555555555556,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 16”
,
“x”: 115,
“y”: 0.15217391304347827,
“text”: “Gunner Stockton run for a loss of 2 yards to the UGA 14”
,
“x”: 116,
“y”: 0.1702127659574468,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 22 yds to the UGA 36 for a 1ST down”
,
“x”: 117,
“y”: 0.16666666666666666,
“text”: “Gunner Stockton pass complete to Sacovie White-Helton for 5 yds to the UGA 41”
,
“x”: 118,
“y”: 0.16326530612244897,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 48 for a 1ST down”
,
“x”: 119,
“y”: 0.16,
“text”: “Gunner Stockton pass complete to Colbie Young for 1 yd to the UGA 49”
,
“x”: 120,
“y”: 0.1568627450980392,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 121,
“y”: 0.15384615384615385,
“text”: “Cash Jones run for a loss of 4 yards to the UGA 45”
],
“label”: “Georgia XR”,
“borderColor”: “#991B1BCC”,
“borderWidth”: 2.2,
“borderDash”: [
4,
4
],
“fill”: false
,
“data”: [
“x”: 1,
“y”: 0,
“text”: “Nate Frazier run for 2 yds to the UGA 27”
,
“x”: 2,
“y”: 0,
“text”: “Gunner Stockton pass incomplete to Colbie Young”
,
“x”: 3,
“y”: 0,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 18,
“y”: 0.25,
“text”: “Nate Frazier run for 24 yds to the UGA 34 for a 1ST down”
,
“x”: 19,
“y”: 0.2,
“text”: “Gunner Stockton pass incomplete to Henry Delp”
,
“x”: 20,
“y”: 0.16666666666666666,
“text”: “Chauncey Bowens run for 5 yds to the UGA 39”
,
“x”: 21,
“y”: 0.14285714285714285,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 36,
“y”: 0.25,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 8 yds to the UGA 33”
,
“x”: 37,
“y”: 0.3333333333333333,
“text”: “Chauncey Bowens run for 29 yds to the ALA 38 for a 1ST down”
,
“x”: 38,
“y”: 0.4,
“text”: “Gunner Stockton pass complete to Colbie Young for 38 yds for a TD (Peyton Woodring KICK)”
,
“x”: 43,
“y”: 0.36363636363636365,
“text”: “Nate Frazier run for 2 yds to the UGA 9”
,
“x”: 47,
“y”: 0.3333333333333333,
“text”: “Zachariah Branch run for a loss of 6 yards to the UGA 19”
,
“x”: 48,
“y”: 0.38461538461538464,
“text”: “Gunner Stockton pass complete to Colbie Young for 17 yds to the UGA 36 for a 1ST down”
,
“x”: 49,
“y”: 0.35714285714285715,
“text”: “Chauncey Bowens run for 4 yds to the UGA 40”
,
“x”: 50,
“y”: 0.4,
“text”: “Gunner Stockton pass complete to London Humphreys for 9 yds to the UGA 49 for a 1ST down”
,
“x”: 51,
“y”: 0.375,
“text”: “Gunner Stockton sacked by Edric Hill and LT Overton for a loss of 2 yards to the UGA 47”
,
“x”: 52,
“y”: 0.4117647058823529,
“text”: “Chauncey Bowens run for 43 yds to the ALA 10 for a 1ST down”
,
“x”: 53,
“y”: 0.4444444444444444,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 5 yds to the ALA 5”
,
“x”: 54,
“y”: 0.42105263157894735,
“text”: “Josh McCray run for 3 yds to the ALA 2”
,
“x”: 55,
“y”: 0.4,
“text”: “Josh McCray run for no gain to the ALA 2”
,
“x”: 56,
“y”: 0.38095238095238093,
“text”: “Chauncey Bowens run for a loss of 1 yard to the ALA 2”
,
“x”: 57,
“y”: 0.4090909090909091,
“text”: “Chauncey Bowens run for 2 yds for a TD (Peyton Woodring KICK)”
,
“x”: 66,
“y”: 0.43478260869565216,
“text”: “Chauncey Bowens run for 10 yds to the UGA 23 for a 1ST down”
,
“x”: 67,
“y”: 0.4166666666666667,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 2 yds to the UGA 25”
,
“x”: 77,
“y”: 0.44,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 6 yds to the UGA 32”
,
“x”: 78,
“y”: 0.46153846153846156,
“text”: “Dillon Bell run for 43 yds to the ALA 25 for a 1ST down”
,
“x”: 79,
“y”: 0.48148148148148145,
“text”: “Chauncey Bowens run for 14 yds to the ALA 11 for a 1ST down”
,
“x”: 80,
“y”: 0.5,
“text”: “Chauncey Bowens run for 1 yd to the ALA 10 for a 1ST down Alabama Penalty, Personal Foul (LT Overton) to the ALA 5 for a 1ST down”
,
“x”: 81,
“y”: 0.5172413793103449,
“text”: “Josh McCray run for 4 yds to the ALA 1”
,
“x”: 82,
“y”: 0.5333333333333333,
“text”: “Josh McCray run for 1 yd for a TD (Peyton Woodring KICK)”
,
“x”: 88,
“y”: 0.5161290322580645,
“text”: “Dwight Phillips Jr. run for 1 yd to the 50 yard line”
,
“x”: 89,
“y”: 0.5,
“text”: “Gunner Stockton pass incomplete to Talyn Taylor”
,
“x”: 90,
“y”: 0.48484848484848486,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 94,
“y”: 0.47058823529411764,
“text”: “Gunner Stockton pass complete to Colbie Young for 3 yds to the UGA 49”
,
“x”: 95,
“y”: 0.45714285714285713,
“text”: “Gunner Stockton run for 3 yds to the ALA 48”
,
“x”: 96,
“y”: 0.4722222222222222,
“text”: “Gunner Stockton run for 21 yds to the ALA 27 for a 1ST down”
,
“x”: 97,
“y”: 0.4594594594594595,
“text”: “Chauncey Bowens run for 4 yds to the ALA 23”
,
“x”: 98,
“y”: 0.47368421052631576,
“text”: “Chauncey Bowens run for 6 yds to the ALA 17 for a 1ST down”
,
“x”: 99,
“y”: 0.48717948717948717,
“text”: “Josh McCray run for 7 yds to the ALA 10”
,
“x”: 100,
“y”: 0.475,
“text”: “Josh McCray run for no gain to the ALA 10”
,
“x”: 101,
“y”: 0.4634146341463415,
“text”: “Gunner Stockton run for 2 yds to the ALA 8”
,
“x”: 102,
“y”: 0.4523809523809524,
“text”: “Cash Jones run for a loss of 3 yards to the ALA 11”
,
“x”: 112,
“y”: 0.46511627906976744,
“text”: “Zachariah Branch run for 10 yds to the UGA 15 for a 1ST down”
,
“x”: 113,
“y”: 0.45454545454545453,
“text”: “Chauncey Bowens run for 2 yds to the UGA 17 Georgia Penalty, Offensive Holding (Bo Hughley) to the UGA 9”
,
“x”: 114,
“y”: 0.4444444444444444,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 16”
,
“x”: 115,
“y”: 0.43478260869565216,
“text”: “Gunner Stockton run for a loss of 2 yards to the UGA 14”
,
“x”: 116,
“y”: 0.44680851063829785,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 22 yds to the UGA 36 for a 1ST down”
,
“x”: 117,
“y”: 0.4583333333333333,
“text”: “Gunner Stockton pass complete to Sacovie White-Helton for 5 yds to the UGA 41”
,
“x”: 118,
“y”: 0.46938775510204084,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 48 for a 1ST down”
,
“x”: 119,
“y”: 0.46,
“text”: “Gunner Stockton pass complete to Colbie Young for 1 yd to the UGA 49”
,
“x”: 120,
“y”: 0.45098039215686275,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 121,
“y”: 0.4423076923076923,
“text”: “Cash Jones run for a loss of 4 yards to the UGA 45”
],
“label”: “Georgia SR”,
“borderColor”: “#DC2626CC”,
“borderWidth”: 2.2,
“borderDash”: [
4,
4
],
“fill”: false
,
“label”: “Quarters”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 1
,
“x”: 129,
“y”: 1
,
“x”: 129,
“y”: 0
,
“x”: 33,
“y”: 0
,
“x”: 33,
“y”: 1
,
“x”: 129,
“y”: 1
,
“x”: 129,
“y”: 0
,
“x”: 68,
“y”: 0
,
“x”: 68,
“y”: 1
,
“x”: 129,
“y”: 1
,
“x”: 129,
“y”: 0
,
“x”: 99,
“y”: 0
,
“x”: 99,
“y”: 1
,
“x”: 129,
“y”: 1
,
“x”: 129,
“y”: 0
],
“borderColor”: “rgba(0,0,0,0.1)”,
“borderWidth”: 1,
“tension”: 0,
“fill”: false,
“pointRadius”: 0,
“showLine”: true,
“datalabels”:
“display”: false
],
“currentParams”:
“year”: 2025,
“week”: 5,
“seasonType”: “regular”,
“team”: “Alabama”,
“gameId”: “401752718”
;
// Chart options (WordPress-safe)
const chartOptions =
responsive: true,
maintainAspectRatio: false,
animation:
duration: 0 // Disable animations to prevent conflicts
,
elements: ‘line’ === ‘line’ ? ‘team-lines’.includes(‘play-map’) ?
line:
tension: 0,
borderWidth: 0
:
line:
tension: 0.25,
borderWidth: 2.2
,
point:
pointRadius: ‘team-lines’.includes(‘team-lines’) ? 0 : undefined
: ,
plugins: ‘team-lines’.includes(‘top-receivers’))
chartOptions.indexAxis = ‘y’;
// Initialize the chart
const ctx = canvas.getContext(‘2d’);
const chart = new Chart(ctx,
type: ‘line’,
data: chartData,
options: chartOptions
);
// Store reference to prevent re-initialization
canvas.chartInstance = chart;
console.log(‘CFB Chart initialized successfully’);
catch (error)
console.error(‘Error initializing CFB chart:’, error);
// Fallback: show error message in canvas container
const container = document.getElementById(‘cfb-chart-1759110716686-nrwgks0i1’).parentNode;
if (container)
container.innerHTML = ‘
‘;
// Initialize when DOM is ready
if (document.readyState === ‘loading’)
document.addEventListener(‘DOMContentLoaded’, initChart);
else
initChart();
// Also try initialization after a short delay for WordPress compatibility
setTimeout(initChart, 500);
)();
But it wasn’t like that the whole game, obviously. Alabama came out strong. While the Tide never got above well above-average efficiencies in this game, they continued to climb through the 1st quarter and spent much of the rest of the game near league average SRs. After a few plays, they also started putting up explosive passes, keeping that XR in a middling, but respectable, low-teens range.
Georgia started real slow but suddenly woke up in the 2nd quarter, with their efficiency and explosiveness simultaneously skyrocketing, dragging them out of the mud and having them basically meet Alabama’s efficiency (and exceed the Tide’s explosiveness) by the half. Somehow, Alabama was still up 10 points (and nearly more).
But the second half did not give us a reprieve on the trend. Georgia came back out and was as efficient as they had been, still gaining in efficiency. For a few plays they were pushing a >50% efficiency rate before things started slowing for them going into the 4th quarter. Hilariously, Alabama did not score a single point in the second half, but their SRs and XRs held; and by holding on to a 10-point lead, coming up with a turnover, and making just one critical stop, this team managed to actually win this one.
body
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, ‘Roboto’, sans-serif;
margin: 0;
padding: 20px;
background: #f8fafc;
.chart-container
background: white;
border-radius: 12px;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
overflow: hidden;
.chart-header
padding: 18px 24px 16px;
border-bottom: 1px solid #e5e5e5;
background: white;
.chart-title
font-size: 18px;
font-weight: 600;
color: #171717;
margin: 0;
.chart-content
padding: 20px 24px 24px !important;
@media (max-width: 640px)
.chart-content
padding: 12px 16px 20px !important;
.chart-header
padding: 12px 16px 12px !important;
.embed-footer-top
padding: 8px 12px !important;
.data-definitions
padding: 12px !important;
body
padding: 12px !important;
.chart-content.top-receivers
height: 624px;
.chart-content.top-passers
height: 280px !important;
.chart-content.top-rushers
height: 372px;
.chart-content:not(.top-receivers):not(.top-passers):not(.top-rushers)
height: 372px;
.embed-footer
border-top: 1px solid #e5e5e5;
font-size: 12px;
color: #737373;
.embed-footer-top
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
.embed-footer-link
color: #737373;
text-decoration: none;
font-weight: 500;
.embed-footer-link:hover
color: #525252;
text-decoration: underline;
.data-definitions-toggle
background: none;
border: none;
color: #737373;
font-size: 12px;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 4px;
padding: 0;
.data-definitions-toggle:hover
color: #525252;
.caret
transition: transform 0.2s ease;
font-size: 10px;
.caret.expanded
transform: rotate(180deg);
.data-definitions
display: none;
padding: 16px;
background: #fafafa;
border-top: 1px solid #e5e5e5;
font-size: 12px;
line-height: 1.4;
.data-definitions.expanded
display: block;
.data-definitions ul
margin: 0;
padding-left: 0;
list-style: none;
.data-definitions li
margin-bottom: 4px;
Rush Rate: Georgia
- Based roughly on the SP+ analytic system
- Successful play: Gains enough needed yards (50% 1st down, 70% on 2nd, 100% on 3rd/4th)
- Success Rate (SR): Percentage of plays that were successful
- Explosiveness Rate (XR): Percentage of plays gaining 15+ yards
- Rush Rate: Percentage of offensive plays that are rushing attempts
- Gray area: Represents 50/50 balanced offense
// Toggle data definitions accordion – unique function per embed
function toggleDefinitions_cfb_chart_1759110728998_am17andhr()
const definitions = document.getElementById(‘dataDefinitions_cfb-chart-1759110728998-am17andhr’);
const caret = document.getElementById(‘caret_cfb-chart-1759110728998-am17andhr’);
if (definitions.classList.contains(‘expanded’))
definitions.classList.remove(‘expanded’);
caret.classList.remove(‘expanded’);
else
definitions.classList.add(‘expanded’);
caret.classList.add(‘expanded’);
// WordPress-safe chart initialization with defensive checks
(function()
‘use strict’;
function initChart()
// Check if Chart.js is available
if (typeof Chart === ‘undefined’)
console.warn(‘Chart.js not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if datalabels plugin is available
if (typeof ChartDataLabels === ‘undefined’)
console.warn(‘ChartDataLabels plugin not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if canvas element exists
const canvas = document.getElementById(‘cfb-chart-1759110728998-am17andhr’);
if (!canvas)
console.warn(‘Canvas element not found yet, retrying…’);
setTimeout(initChart, 100);
return;
// Prevent multiple chart instances
if (canvas.chartInstance)
console.log(‘Chart already initialized’);
return;
try
// Register the datalabels plugin
Chart.register(ChartDataLabels);
// Embed actual chart data directly
const chartData =
“datasets”: [
“label”: “50/50”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 0.5
,
“x”: 52,
“y”: 0.5
,
“x”: 52,
“y”: 0
],
“backgroundColor”: “rgba(0,0,0,0.03)”,
“borderColor”: “transparent”,
“pointRadius”: 0,
“fill”: true,
“tension”: 0,
“showLine”: true,
“datalabels”:
“display”: false
,
“data”: [
“x”: 1,
“y”: 1,
“text”: “Nate Frazier run for 2 yds to the UGA 27”
,
“x”: 2,
“y”: 0.5,
“text”: “Gunner Stockton pass incomplete to Colbie Young”
,
“x”: 3,
“y”: 0.3333333333333333,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 4,
“y”: 0.5,
“text”: “Nate Frazier run for 24 yds to the UGA 34 for a 1ST down”
,
“x”: 5,
“y”: 0.4,
“text”: “Gunner Stockton pass incomplete to Henry Delp”
,
“x”: 6,
“y”: 0.5,
“text”: “Chauncey Bowens run for 5 yds to the UGA 39”
,
“x”: 7,
“y”: 0.42857142857142855,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 8,
“y”: 0.375,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 8 yds to the UGA 33”
,
“x”: 9,
“y”: 0.4444444444444444,
“text”: “Chauncey Bowens run for 29 yds to the ALA 38 for a 1ST down”
,
“x”: 10,
“y”: 0.4,
“text”: “Gunner Stockton pass complete to Colbie Young for 38 yds for a TD (Peyton Woodring KICK)”
,
“x”: 11,
“y”: 0.45454545454545453,
“text”: “Nate Frazier run for 2 yds to the UGA 9”
,
“x”: 12,
“y”: 0.5,
“text”: “Zachariah Branch run for a loss of 6 yards to the UGA 19”
,
“x”: 13,
“y”: 0.46153846153846156,
“text”: “Gunner Stockton pass complete to Colbie Young for 17 yds to the UGA 36 for a 1ST down”
,
“x”: 14,
“y”: 0.5,
“text”: “Chauncey Bowens run for 4 yds to the UGA 40”
,
“x”: 15,
“y”: 0.4666666666666667,
“text”: “Gunner Stockton pass complete to London Humphreys for 9 yds to the UGA 49 for a 1ST down”
,
“x”: 16,
“y”: 0.4375,
“text”: “Gunner Stockton sacked by Edric Hill and LT Overton for a loss of 2 yards to the UGA 47”
,
“x”: 17,
“y”: 0.47058823529411764,
“text”: “Chauncey Bowens run for 43 yds to the ALA 10 for a 1ST down”
,
“x”: 18,
“y”: 0.4444444444444444,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 5 yds to the ALA 5”
,
“x”: 19,
“y”: 0.47368421052631576,
“text”: “Josh McCray run for 3 yds to the ALA 2”
,
“x”: 20,
“y”: 0.5,
“text”: “Josh McCray run for no gain to the ALA 2”
,
“x”: 21,
“y”: 0.5238095238095238,
“text”: “Chauncey Bowens run for a loss of 1 yard to the ALA 2”
,
“x”: 22,
“y”: 0.5454545454545454,
“text”: “Chauncey Bowens run for 2 yds for a TD (Peyton Woodring KICK)”
,
“x”: 23,
“y”: 0.5652173913043478,
“text”: “Chauncey Bowens run for 10 yds to the UGA 23 for a 1ST down”
,
“x”: 24,
“y”: 0.5416666666666666,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 2 yds to the UGA 25”
,
“x”: 25,
“y”: 0.52,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 6 yds to the UGA 32”
,
“x”: 26,
“y”: 0.5384615384615384,
“text”: “Dillon Bell run for 43 yds to the ALA 25 for a 1ST down”
,
“x”: 27,
“y”: 0.5555555555555556,
“text”: “Chauncey Bowens run for 14 yds to the ALA 11 for a 1ST down”
,
“x”: 28,
“y”: 0.5714285714285714,
“text”: “Chauncey Bowens run for 1 yd to the ALA 10 for a 1ST down Alabama Penalty, Personal Foul (LT Overton) to the ALA 5 for a 1ST down”
,
“x”: 29,
“y”: 0.5862068965517241,
“text”: “Josh McCray run for 4 yds to the ALA 1”
,
“x”: 30,
“y”: 0.6,
“text”: “Josh McCray run for 1 yd for a TD (Peyton Woodring KICK)”
,
“x”: 31,
“y”: 0.6129032258064516,
“text”: “Dwight Phillips Jr. run for 1 yd to the 50 yard line”
,
“x”: 32,
“y”: 0.59375,
“text”: “Gunner Stockton pass incomplete to Talyn Taylor”
,
“x”: 33,
“y”: 0.5757575757575758,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 34,
“y”: 0.5588235294117647,
“text”: “Gunner Stockton pass complete to Colbie Young for 3 yds to the UGA 49”
,
“x”: 35,
“y”: 0.5714285714285714,
“text”: “Gunner Stockton run for 3 yds to the ALA 48”
,
“x”: 36,
“y”: 0.5833333333333334,
“text”: “Gunner Stockton run for 21 yds to the ALA 27 for a 1ST down”
,
“x”: 37,
“y”: 0.5945945945945946,
“text”: “Chauncey Bowens run for 4 yds to the ALA 23”
,
“x”: 38,
“y”: 0.6052631578947368,
“text”: “Chauncey Bowens run for 6 yds to the ALA 17 for a 1ST down”
,
“x”: 39,
“y”: 0.6153846153846154,
“text”: “Josh McCray run for 7 yds to the ALA 10”
,
“x”: 40,
“y”: 0.625,
“text”: “Josh McCray run for no gain to the ALA 10”
,
“x”: 41,
“y”: 0.6341463414634146,
“text”: “Gunner Stockton run for 2 yds to the ALA 8”
,
“x”: 42,
“y”: 0.6428571428571429,
“text”: “Cash Jones run for a loss of 3 yards to the ALA 11”
,
“x”: 43,
“y”: 0.6511627906976745,
“text”: “Zachariah Branch run for 10 yds to the UGA 15 for a 1ST down”
,
“x”: 44,
“y”: 0.6590909090909091,
“text”: “Chauncey Bowens run for 2 yds to the UGA 17 Georgia Penalty, Offensive Holding (Bo Hughley) to the UGA 9”
,
“x”: 45,
“y”: 0.6444444444444445,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 16”
,
“x”: 46,
“y”: 0.6521739130434783,
“text”: “Gunner Stockton run for a loss of 2 yards to the UGA 14”
,
“x”: 47,
“y”: 0.6382978723404256,
“text”: “Gunner Stockton pass complete to Zachariah Branch for 22 yds to the UGA 36 for a 1ST down”
,
“x”: 48,
“y”: 0.625,
“text”: “Gunner Stockton pass complete to Sacovie White-Helton for 5 yds to the UGA 41”
,
“x”: 49,
“y”: 0.6122448979591837,
“text”: “Gunner Stockton pass complete to Chauncey Bowens for 7 yds to the UGA 48 for a 1ST down”
,
“x”: 50,
“y”: 0.6,
“text”: “Gunner Stockton pass complete to Colbie Young for 1 yd to the UGA 49”
,
“x”: 51,
“y”: 0.5882352941176471,
“text”: “Gunner Stockton pass incomplete to Zachariah Branch”
,
“x”: 52,
“y”: 0.5961538461538461,
“text”: “Cash Jones run for a loss of 4 yards to the UGA 45”
],
“label”: “Georgia Rush Rate”,
“borderColor”: “#991B1BCC”,
“backgroundColor”: “#FEE2E2CC”,
“borderWidth”: 2,
“pointBackgroundColor”: [
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#991B1BCC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“#991B1BCC”,
“#991B1BCC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#991B1BCC”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“#991B1BCC”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“#991B1BCC”,
“#DC2626CC”,
“#DC2626CC”,
“#DC2626CC”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#991B1BCC”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“#991B1BCC”,
“#DC2626CC”,
“#DC2626CC”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”
],
“pointStyle”: [
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“circle”
],
“pointRadius”: [
4,
5.5,
5.5,
4,
5.5,
4,
5.5,
5.5,
4,
5.5,
4,
4,
5.5,
4,
5.5,
5.5,
4,
5.5,
4,
4,
4,
4,
4,
5.5,
5.5,
4,
4,
4,
4,
4,
4,
5.5,
5.5,
5.5,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
5.5,
4,
5.5,
5.5,
5.5,
5.5,
5.5,
4
],
“pointBorderWidth”: 1,
“pointBorderColor”: “#991B1BCC”,
“fill”: true
,
“label”: “Quarters”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 1
,
“x”: 52,
“y”: 1
,
“x”: 52,
“y”: 0
,
“x”: 8,
“y”: 0
,
“x”: 8,
“y”: 1
,
“x”: 52,
“y”: 1
,
“x”: 52,
“y”: 0
,
“x”: 25,
“y”: 0
,
“x”: 25,
“y”: 1
,
“x”: 52,
“y”: 1
,
“x”: 52,
“y”: 0
,
“x”: 39,
“y”: 0
,
“x”: 39,
“y”: 1
,
“x”: 52,
“y”: 1
,
“x”: 52,
“y”: 0
],
“borderColor”: “rgba(0,0,0,0.1)”,
“borderWidth”: 1,
“tension”: 0,
“fill”: false,
“pointRadius”: 0,
“showLine”: true,
“datalabels”:
“display”: false
],
“currentParams”:
“year”: 2025,
“week”: 5,
“seasonType”: “regular”,
“team”: “Alabama”,
“gameId”: “401752718”
;
// Chart options (WordPress-safe)
const chartOptions =
responsive: true,
maintainAspectRatio: false,
animation:
duration: 0 // Disable animations to prevent conflicts
,
elements: ‘line’ === ‘line’ ? ‘opponent-rush-rate’.includes(‘play-map’) ?
line:
tension: 0,
borderWidth: 0
:
line:
tension: 0.25,
borderWidth: 2.2
,
point:
pointRadius: ‘opponent-rush-rate’.includes(‘team-lines’) ? 0 : undefined
: ,
plugins:
datalabels: ‘opponent-rush-rate’.includes(‘top-passers’) ;
// Add indexAxis for player charts
if (‘opponent-rush-rate’.includes(‘top-rushers’) catch (error)
console.error(‘Error initializing CFB chart:’, error);
// Fallback: show error message in canvas container
const container = document.getElementById(‘cfb-chart-1759110728998-am17andhr’).parentNode;
if (container)
container.innerHTML = ‘
‘;
// Initialize when DOM is ready
if (document.readyState === ‘loading’)
document.addEventListener(‘DOMContentLoaded’, initChart);
else
initChart();
// Also try initialization after a short delay for WordPress compatibility
setTimeout(initChart, 500);
)();
How did the Georgia offense suddenly wake up and start performing, you might ask? Well, they started the game passing from QB Gunner Stockton’s hands, which was a decision that was not excellent in the 1st quarter. But before they went into the half, it apparently dawned on the Dawgs them that they could run right through the Alabama D, at least some of the time: they’d either put up a huge explosive rush, or flounder near the line of scrimmage. But, after halftime, those unsuccessful plays became successful ones, and their rushing game was really going (especially in the 3rd quarter).
body
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, ‘Roboto’, sans-serif;
margin: 0;
padding: 20px;
background: #f8fafc;
.chart-container
background: white;
border-radius: 12px;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
overflow: hidden;
.chart-header
padding: 18px 24px 16px;
border-bottom: 1px solid #e5e5e5;
background: white;
.chart-title
font-size: 18px;
font-weight: 600;
color: #171717;
margin: 0;
.chart-content
padding: 20px 24px 24px !important;
@media (max-width: 640px)
.chart-content
padding: 12px 16px 20px !important;
.chart-header
padding: 12px 16px 12px !important;
.embed-footer-top
padding: 8px 12px !important;
.data-definitions
padding: 12px !important;
body
padding: 12px !important;
.chart-content.top-receivers
height: 624px;
.chart-content.top-passers
height: 280px !important;
.chart-content.top-rushers
height: 372px;
.chart-content:not(.top-receivers):not(.top-passers):not(.top-rushers)
height: 372px;
.embed-footer
border-top: 1px solid #e5e5e5;
font-size: 12px;
color: #737373;
.embed-footer-top
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
.embed-footer-link
color: #737373;
text-decoration: none;
font-weight: 500;
.embed-footer-link:hover
color: #525252;
text-decoration: underline;
.data-definitions-toggle
background: none;
border: none;
color: #737373;
font-size: 12px;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 4px;
padding: 0;
.data-definitions-toggle:hover
color: #525252;
.caret
transition: transform 0.2s ease;
font-size: 10px;
.caret.expanded
transform: rotate(180deg);
.data-definitions
display: none;
padding: 16px;
background: #fafafa;
border-top: 1px solid #e5e5e5;
font-size: 12px;
line-height: 1.4;
.data-definitions.expanded
display: block;
.data-definitions ul
margin: 0;
padding-left: 0;
list-style: none;
.data-definitions li
margin-bottom: 4px;
Rush Rate: Alabama
- Based roughly on the SP+ analytic system
- Successful play: Gains enough needed yards (50% 1st down, 70% on 2nd, 100% on 3rd/4th)
- Success Rate (SR): Percentage of plays that were successful
- Explosiveness Rate (XR): Percentage of plays gaining 15+ yards
- Rush Rate: Percentage of offensive plays that are rushing attempts
- Gray area: Represents 50/50 balanced offense
// Toggle data definitions accordion – unique function per embed
function toggleDefinitions_cfb_chart_1759110739564_o2rou6jh0()
const definitions = document.getElementById(‘dataDefinitions_cfb-chart-1759110739564-o2rou6jh0’);
const caret = document.getElementById(‘caret_cfb-chart-1759110739564-o2rou6jh0’);
if (definitions.classList.contains(‘expanded’))
definitions.classList.remove(‘expanded’);
caret.classList.remove(‘expanded’);
else
definitions.classList.add(‘expanded’);
caret.classList.add(‘expanded’);
// WordPress-safe chart initialization with defensive checks
(function()
‘use strict’;
function initChart()
// Check if Chart.js is available
if (typeof Chart === ‘undefined’)
console.warn(‘Chart.js not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if datalabels plugin is available
if (typeof ChartDataLabels === ‘undefined’)
console.warn(‘ChartDataLabels plugin not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if canvas element exists
const canvas = document.getElementById(‘cfb-chart-1759110739564-o2rou6jh0’);
if (!canvas)
console.warn(‘Canvas element not found yet, retrying…’);
setTimeout(initChart, 100);
return;
// Prevent multiple chart instances
if (canvas.chartInstance)
console.log(‘Chart already initialized’);
return;
try
// Register the datalabels plugin
Chart.register(ChartDataLabels);
// Embed actual chart data directly
const chartData =
“datasets”: [
“label”: “50/50”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 0.5
,
“x”: 77,
“y”: 0.5
,
“x”: 77,
“y”: 0
],
“backgroundColor”: “rgba(0,0,0,0.03)”,
“borderColor”: “transparent”,
“pointRadius”: 0,
“fill”: true,
“tension”: 0,
“showLine”: true,
“datalabels”:
“display”: false
,
“data”: [
“x”: 1,
“y”: 1,
“text”: “Jam Miller run for 2 yds to the ALA 28”
,
“x”: 2,
“y”: 0.5,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 3,
“y”: 0.6666666666666666,
“text”: “Ty Simpson run for 10 yds to the ALA 38 for a 1ST down”
,
“x”: 4,
“y”: 0.75,
“text”: “Jam Miller run for no gain to the ALA 38”
,
“x”: 5,
“y”: 0.6,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 6,
“y”: 0.5,
“text”: “Ty Simpson pass complete to Isaiah Horton for 10 yds to the ALA 48 for a 1ST down”
,
“x”: 7,
“y”: 0.42857142857142855,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 8,
“y”: 0.5,
“text”: “Kevin Riley run for 5 yds to the UGA 47”
,
“x”: 9,
“y”: 0.4444444444444444,
“text”: “Ty Simpson pass complete to Isaiah Horton for 24 yds to the UGA 23 for a 1ST down”
,
“x”: 10,
“y”: 0.5,
“text”: “Jam Miller run for 2 yds to the UGA 26”
,
“x”: 11,
“y”: 0.45454545454545453,
“text”: “Ty Simpson pass complete to Germie Bernard for 18 yds to the UGA 8 for a 1ST down”
,
“x”: 12,
“y”: 0.5,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 13,
“y”: 0.46153846153846156,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 14,
“y”: 0.42857142857142855,
“text”: “Ty Simpson pass complete to Germie Bernard for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 15,
“y”: 0.4666666666666667,
“text”: “Jam Miller run for 3 yds to the ALA 20”
,
“x”: 16,
“y”: 0.4375,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 17,
“y”: 0.4117647058823529,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the ALA 32 for a 1ST down”
,
“x”: 18,
“y”: 0.3888888888888889,
“text”: “Germie Bernard sacked by Chris Cole for a loss of 6 yards to the ALA 26”
,
“x”: 19,
“y”: 0.3684210526315789,
“text”: “Ty Simpson pass complete to Kevin Riley for 10 yds to the ALA 36”
,
“x”: 20,
“y”: 0.35,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 43 for a 1ST down”
,
“x”: 21,
“y”: 0.3333333333333333,
“text”: “Ty Simpson pass complete to Germie Bernard for 5 yds to the ALA 48”
,
“x”: 22,
“y”: 0.36363636363636365,
“text”: “Jam Miller run for 3 yds to the UGA 49”
,
“x”: 23,
“y”: 0.391304347826087,
“text”: “Germie Bernard run for 11 yds to the UGA 38 for a 1ST down”
,
“x”: 24,
“y”: 0.375,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 19 yds to the UGA 19 for a 1ST down”
,
“x”: 25,
“y”: 0.4,
“text”: “Kevin Riley run for 4 yds to the UGA 15”
,
“x”: 26,
“y”: 0.4230769230769231,
“text”: “Jam Miller run for 2 yds to the UGA 13”
,
“x”: 27,
“y”: 0.4444444444444444,
“text”: “Jam Miller run for 7 yds to the UGA 6 for a 1ST down”
,
“x”: 28,
“y”: 0.42857142857142855,
“text”: “Ty Simpson pass complete to Isaiah Horton for 6 yds for a TD (Conor Talty KICK)”
,
“x”: 29,
“y”: 0.41379310344827586,
“text”: “Ty Simpson pass complete to Kevin Riley for 27 yds to the UGA 48 for a 1ST down”
,
“x”: 30,
“y”: 0.4,
“text”: “Ty Simpson pass complete to Germie Bernard for 2 yds to the UGA 46”
,
“x”: 31,
“y”: 0.41935483870967744,
“text”: “Kevin Riley run for 1 yd to the UGA 45”
,
“x”: 32,
“y”: 0.40625,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 33,
“y”: 0.42424242424242425,
“text”: “Jam Miller run for 3 yds to the UGA 8”
,
“x”: 34,
“y”: 0.4411764705882353,
“text”: “Jam Miller run for 2 yds to the UGA 6”
,
“x”: 35,
“y”: 0.42857142857142855,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 36,
“y”: 0.4444444444444444,
“text”: “Kevin Riley run for 2 yds to the ALA 27”
,
“x”: 37,
“y”: 0.43243243243243246,
“text”: “Ty Simpson pass complete to Ryan Williams for 7 yds to the ALA 34”
,
“x”: 38,
“y”: 0.42105263157894735,
“text”: “Germie Bernard pass complete to Isaiah Horton for 4 yds to the ALA 38 for a 1ST down”
,
“x”: 39,
“y”: 0.41025641025641024,
“text”: “Ty Simpson pass complete to Ryan Williams for 18 yds to the UGA 44 for a 1ST down”
,
“x”: 40,
“y”: 0.4,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 41,
“y”: 0.3902439024390244,
“text”: “Ty Simpson pass complete to Lotzeir Brooks for 21 yds to the UGA 23 for a 1ST down”
,
“x”: 42,
“y”: 0.40476190476190477,
“text”: “Kadyn Proctor run for 11 yds to the UGA 2 for a 1ST down”
,
“x”: 43,
“y”: 0.4186046511627907,
“text”: “Ty Simpson run for 2 yds for a TD (Conor Talty KICK)”
,
“x”: 44,
“y”: 0.4090909090909091,
“text”: “Ty Simpson pass complete to Jam Miller for 14 yds to the ALA 39 for a 1ST down”
,
“x”: 45,
“y”: 0.4222222222222222,
“text”: “Jam Miller run for 4 yds to the ALA 43”
,
“x”: 46,
“y”: 0.43478260869565216,
“text”: “Germie Bernard run for 8 yds to the UGA 49 for a 1ST down”
,
“x”: 47,
“y”: 0.44680851063829785,
“text”: “Kevin Riley run for 4 yds to the UGA 45”
,
“x”: 48,
“y”: 0.4583333333333333,
“text”: “Kevin Riley run for 3 yds to the UGA 42”
,
“x”: 49,
“y”: 0.4489795918367347,
“text”: “Ty Simpson pass complete to Kaleb Edwards for 17 yds to the UGA 25 for a 1ST down”
,
“x”: 50,
“y”: 0.44,
“text”: “Ty Simpson pass complete to Jam Miller for a loss of 2 yards to the UGA 27”
,
“x”: 51,
“y”: 0.45098039215686275,
“text”: “Germie Bernard run for 1 yd to the UGA 26”
,
“x”: 52,
“y”: 0.4423076923076923,
“text”: “Ty Simpson pass incomplete to Josh Cuevas”
,
“x”: 53,
“y”: 0.4339622641509434,
“text”: “Ty Simpson pass complete to Germie Bernard for 4 yds to the ALA 29”
,
“x”: 54,
“y”: 0.4444444444444444,
“text”: “Kevin Riley run for 5 yds to the ALA 49”
,
“x”: 55,
“y”: 0.45454545454545453,
“text”: “Kevin Riley run for 4 yds to the UGA 47”
,
“x”: 56,
“y”: 0.4642857142857143,
“text”: “Kevin Riley run for no gain to the UGA 47”
,
“x”: 57,
“y”: 0.47368421052631576,
“text”: “Ty Simpson run for a loss of 2 yards to the UGA 49”
,
“x”: 58,
“y”: 0.46551724137931033,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 59,
“y”: 0.4576271186440678,
“text”: “Ty Simpson pass incomplete to Rico Scott”
,
“x”: 60,
“y”: 0.45,
“text”: “Ty Simpson pass incomplete to Ryan Williams”
,
“x”: 61,
“y”: 0.45901639344262296,
“text”: “Kevin Riley run for 2 yds to the ALA 13”
,
“x”: 62,
“y”: 0.45161290322580644,
“text”: “Ty Simpson pass incomplete to Germie Bernard”
,
“x”: 63,
“y”: 0.4444444444444444,
“text”: “Ty Simpson pass complete to Ryan Williams for 9 yds to the ALA 22 for a 1ST down”
,
“x”: 64,
“y”: 0.453125,
“text”: “Jam Miller run for 2 yds to the ALA 24”
,
“x”: 65,
“y”: 0.4461538461538462,
“text”: “Ty Simpson pass complete to Isaiah Horton for 21 yds to the ALA 45 for a 1ST down”
,
“x”: 66,
“y”: 0.4393939393939394,
“text”: “Ty Simpson pass complete to Josh Cuevas for 12 yds to the UGA 43 for a 1ST down”
,
“x”: 67,
“y”: 0.43283582089552236,
“text”: “Ty Simpson pass complete to Ryan Williams for 2 yds to the UGA 46”
,
“x”: 68,
“y”: 0.4411764705882353,
“text”: “Germie Bernard run for 6 yds to the UGA 40”
,
“x”: 69,
“y”: 0.43478260869565216,
“text”: “Ty Simpson pass incomplete to Isaiah Horton”
,
“x”: 70,
“y”: 0.44285714285714284,
“text”: “Jam Miller run for 7 yds to the ALA 19”
,
“x”: 71,
“y”: 0.4507042253521127,
“text”: “Jam Miller run for 2 yds to the ALA 21”
,
“x”: 72,
“y”: 0.4583333333333333,
“text”: “Ty Simpson run for 2 yds to the ALA 23 for a 1ST down Georgia Penalty, Personal Foul (Ellis Robinson IV) to the ALA 38 for a 1ST down”
,
“x”: 73,
“y”: 0.4657534246575342,
“text”: “Jam Miller run for 6 yds to the ALA 44”
,
“x”: 74,
“y”: 0.47297297297297297,
“text”: “Jam Miller run for a loss of 1 yard to the ALA 43”
,
“x”: 75,
“y”: 0.4666666666666667,
“text”: “Ty Simpson pass complete to Jam Miller for 7 yds to the 50 yard line for a 1ST down”
,
“x”: 76,
“y”: 0.47368421052631576,
“text”: “TEAM run for a loss of 1 yard to the ALA 49”
,
“x”: 77,
“y”: 0.4805194805194805,
“text”: “TEAM run for a loss of 1 yard to the ALA 48”
],
“label”: “Alabama Rush Rate”,
“borderColor”: “rgba(101, 0, 20, 0.8)”,
“backgroundColor”: “rgba(245, 229, 233, 0.8)”,
“borderWidth”: 2,
“pointBackgroundColor”: [
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(101, 0, 20, 0.8)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(175, 40, 60, 0.8)”,
“rgba(255,255,255,0.9)”,
“rgba(255,255,255,0.9)”
],
“pointStyle”: [
“circle”,
“triangle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“triangle”,
“triangle”,
“circle”,
“triangle”,
“circle”,
“circle”,
“circle”,
“circle”,
“circle”,
“triangle”,
“circle”,
“circle”
],
“pointRadius”: [
4,
5.5,
4,
4,
5.5,
5.5,
5.5,
4,
5.5,
4,
5.5,
4,
5.5,
5.5,
4,
5.5,
5.5,
5.5,
5.5,
5.5,
5.5,
4,
4,
5.5,
4,
4,
4,
5.5,
5.5,
5.5,
4,
5.5,
4,
4,
5.5,
4,
5.5,
5.5,
5.5,
5.5,
5.5,
4,
4,
5.5,
4,
4,
4,
4,
5.5,
5.5,
4,
5.5,
5.5,
4,
4,
4,
4,
5.5,
5.5,
5.5,
4,
5.5,
5.5,
4,
5.5,
5.5,
5.5,
4,
5.5,
4,
4,
4,
4,
4,
5.5,
4,
4
],
“pointBorderWidth”: 1,
“pointBorderColor”: “rgba(101, 0, 20, 0.8)”,
“fill”: true
,
“label”: “Quarters”,
“data”: [
“x”: 1,
“y”: 0
,
“x”: 1,
“y”: 1
,
“x”: 77,
“y”: 1
,
“x”: 77,
“y”: 0
,
“x”: 26,
“y”: 0
,
“x”: 26,
“y”: 1
,
“x”: 77,
“y”: 1
,
“x”: 77,
“y”: 0
,
“x”: 44,
“y”: 0
,
“x”: 44,
“y”: 1
,
“x”: 77,
“y”: 1
,
“x”: 77,
“y”: 0
,
“x”: 61,
“y”: 0
,
“x”: 61,
“y”: 1
,
“x”: 77,
“y”: 1
,
“x”: 77,
“y”: 0
],
“borderColor”: “rgba(0,0,0,0.1)”,
“borderWidth”: 1,
“tension”: 0,
“fill”: false,
“pointRadius”: 0,
“showLine”: true,
“datalabels”:
“display”: false
],
“currentParams”:
“year”: 2025,
“week”: 5,
“seasonType”: “regular”,
“team”: “Alabama”,
“gameId”: “401752718”
;
// Chart options (WordPress-safe)
const chartOptions =
responsive: true,
maintainAspectRatio: false,
animation:
duration: 0 // Disable animations to prevent conflicts
,
elements: ‘line’ === ‘line’ ? ‘team-rush-rate’.includes(‘play-map’) ?
line:
tension: 0,
borderWidth: 0
:
line:
tension: 0.25,
borderWidth: 2.2
,
point:
pointRadius: ‘team-rush-rate’.includes(‘team-lines’) ? 0 : undefined
: ,
plugins: ‘team-rush-rate’.includes(‘top-passers’) catch (error)
console.error(‘Error initializing CFB chart:’, error);
// Fallback: show error message in canvas container
const container = document.getElementById(‘cfb-chart-1759110739564-o2rou6jh0’).parentNode;
if (container)
container.innerHTML = ‘
‘;
// Initialize when DOM is ready
if (document.readyState === ‘loading’)
document.addEventListener(‘DOMContentLoaded’, initChart);
else
initChart();
// Also try initialization after a short delay for WordPress compatibility
setTimeout(initChart, 500);
)();
As a bit of a side note, Alabama showed something resembling balance in this game, at least by the end, by leaning increasingly on the rush in the second half.
Be it on me as a Gump to complain about running the dang ball, but you have to wonder if part of our, ahem, total lack of points in the second half could be related to leaning on the rush at a time when we hadn’t really shown (all year) that that was a way Alabama gets points. That said, running the ball burns the clock, and that’s ultimately how Alabama won this thing, so what do I know?
body
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, ‘Roboto’, sans-serif;
margin: 0;
padding: 20px;
background: #f8fafc;
.chart-container
background: white;
border-radius: 12px;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
overflow: hidden;
.chart-header
padding: 18px 24px 16px;
border-bottom: 1px solid #e5e5e5;
background: white;
.chart-title
font-size: 18px;
font-weight: 600;
color: #171717;
margin: 0;
.chart-content
padding: 20px 24px 24px !important;
@media (max-width: 640px)
.chart-content
padding: 12px 16px 20px !important;
.chart-header
padding: 12px 16px 12px !important;
.embed-footer-top
padding: 8px 12px !important;
.data-definitions
padding: 12px !important;
body
padding: 12px !important;
.chart-content.top-receivers
height: 624px;
.chart-content.top-passers
height: 280px !important;
.chart-content.top-rushers
height: 372px;
.chart-content:not(.top-receivers):not(.top-passers):not(.top-rushers)
height: 372px;
.embed-footer
border-top: 1px solid #e5e5e5;
font-size: 12px;
color: #737373;
.embed-footer-top
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 16px;
.embed-footer-link
color: #737373;
text-decoration: none;
font-weight: 500;
.embed-footer-link:hover
color: #525252;
text-decoration: underline;
.data-definitions-toggle
background: none;
border: none;
color: #737373;
font-size: 12px;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 4px;
padding: 0;
.data-definitions-toggle:hover
color: #525252;
.caret
transition: transform 0.2s ease;
font-size: 10px;
.caret.expanded
transform: rotate(180deg);
.data-definitions
display: none;
padding: 16px;
background: #fafafa;
border-top: 1px solid #e5e5e5;
font-size: 12px;
line-height: 1.4;
.data-definitions.expanded
display: block;
.data-definitions ul
margin: 0;
padding-left: 0;
list-style: none;
.data-definitions li
margin-bottom: 4px;
SR and XR by Down
- Based roughly on the SP+ analytic system
- Successful play: Gains enough needed yards (50% 1st down, 70% on 2nd, 100% on 3rd/4th)
- Success Rate (SR): Percentage of plays that were successful
- Explosiveness Rate (XR): Percentage of plays gaining 15+ yards
- # Plays: Numbers shown in bars represent total play counts
- NCAA Avg: Dashed line shows 42% (roughly NCAA average) success rate
// Toggle data definitions accordion – unique function per embed
function toggleDefinitions_cfb_chart_1759110754393_s6sidqlf1()
const definitions = document.getElementById(‘dataDefinitions_cfb-chart-1759110754393-s6sidqlf1’);
const caret = document.getElementById(‘caret_cfb-chart-1759110754393-s6sidqlf1’);
if (definitions.classList.contains(‘expanded’))
definitions.classList.remove(‘expanded’);
caret.classList.remove(‘expanded’);
else
definitions.classList.add(‘expanded’);
caret.classList.add(‘expanded’);
// WordPress-safe chart initialization with defensive checks
(function()
‘use strict’;
function initChart()
// Check if Chart.js is available
if (typeof Chart === ‘undefined’)
console.warn(‘Chart.js not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if datalabels plugin is available
if (typeof ChartDataLabels === ‘undefined’)
console.warn(‘ChartDataLabels plugin not loaded yet, retrying…’);
setTimeout(initChart, 100);
return;
// Check if canvas element exists
const canvas = document.getElementById(‘cfb-chart-1759110754393-s6sidqlf1’);
if (!canvas)
console.warn(‘Canvas element not found yet, retrying…’);
setTimeout(initChart, 100);
return;
// Prevent multiple chart instances
if (canvas.chartInstance)
console.log(‘Chart already initialized’);
return;
try
// Register the datalabels plugin
Chart.register(ChartDataLabels);
// Embed actual chart data directly
const chartData =
“labels”: [
“1st Down”,
“2nd Down”,
“3rd Down”,
“4th Down”
],
“datasets”: [
“data”: [
0.09090909090909091,
0.125,
0.15789473684210525,
0
],
“stack”: “Team”,
“label”: “Alabama XR”,
“backgroundColor”: “rgba(101, 0, 20, 0.8)”,
“datalabels”:
“display”: false
,
“data”: [
0.36363636363636365,
0.25,
0.6842105263157895,
0
],
“stack”: “Team”,
“label”: “Alabama SR”,
“backgroundColor”: “rgba(175, 40, 60, 0.8)”,
“datalabels”:
“display”: true
,
“data”: [
0.07692307692307693,
0.23529411764705882,
0.25,
0
],
“stack”: “Opponent”,
“label”: “Georgia XR”,
“backgroundColor”: “#991B1BCC”,
“datalabels”:
“display”: false
,
“data”: [
0.46153846153846156,
0.5294117647058824,
0.25,
0
],
“stack”: “Opponent”,
“label”: “Georgia SR”,
“backgroundColor”: “#DC2626CC”,
“datalabels”:
“display”: true
,
“type”: “line”,
“data”: [
0.42,
0.42,
0.42,
0.42
],
“label”: “NCAA Avg SR”,
“borderColor”: “#757575”,
“borderWidth”: 2,
“borderDash”: [
3,
3
],
“pointRadius”: 0,
“datalabels”:
“display”: false
,
“type”: “line”,
“data”: [
null,
null,
null,
null
],
“label”: “# Plays”,
“backgroundColor”: “rgba(0, 0, 0, 0)”,
“borderColor”: “rgba(0, 0, 0, 0)”,
“borderWidth”: 0,
“pointRadius”: 0,
“showLine”: false,
“fill”: false,
“datalabels”:
“display”: false
],
“teamCounts”: [
33,
24,
19,
1
],
“oppCounts”: [
26,
17,
8,
1
],
“currentParams”:
“year”: 2025,
“week”: 5,
“seasonType”: “regular”,
“team”: “Alabama”,
“gameId”: “401752718”
;
// Chart options (WordPress-safe)
const chartOptions =
responsive: true,
maintainAspectRatio: false,
animation:
duration: 0 // Disable animations to prevent conflicts
,
elements: ‘bar’ === ‘line’ ? ‘down-bars’.includes(‘play-map’) ?
line:
tension: 0,
borderWidth: 0
:
line:
tension: 0.25,
borderWidth: 2.2
,
point:
pointRadius: ‘down-bars’.includes(‘team-lines’) ? 0 : undefined
: ,
plugins:
datalabels:
display: function(context)
// Suppress data labels on line charts
if (‘bar’ === ‘line’)
return false;
return context.dataset.datalabels && context.dataset.datalabels.display === true;
,
formatter: function(value, context) ‘down-bars’.includes(‘top-passers’) ,
legend: ‘bar’ === ‘line’ ?
position: ‘top’,
align: ‘start’,
labels: ‘down-bars’.includes(‘play-map’) ?
usePointStyle: true,
generateLabels: function(chart)
// Call the original generateLabels to get default styling
const original = Chart.defaults.plugins.legend.labels.generateLabels;
const labels = original.call(this, chart);
// Filter and customize each label
const filteredLabels = labels.filter(label =>
return !label.text.includes(‘
const dataset = chart.data.datasets[label.datasetIndex];
if (dataset && dataset.label)
if (dataset.label.includes(‘Rush’))
label.pointStyle = ‘circle’;
label.pointStyleWidth = 4;
label.fillStyle = ‘white’;
else if (dataset.label.includes(‘Pass’))
label.pointStyle = ‘triangle’;
label.pointStyleWidth = 4;
label.fillStyle = ‘white’;
else
label.pointStyle = ‘rect’;
label.pointStyleWidth = 4;
label.fillStyle = ‘white’;
);
return filteredLabels;
,
boxWidth: 20,
padding: 12
:
usePointStyle: false,
boxWidth: 12,
boxHeight: 12,
padding: 12,
generateLabels: function(chart)
const original = Chart.defaults.plugins.legend.labels.generateLabels;
const labels = original.call(this, chart);
// Filter out reference areas and ensure white fill
const filteredLabels = labels.filter(label =>
return !label.text.includes(‘NCAA Avg SR’) &&
!label.text.includes(’50/50′) &&
!label.text.includes(‘Quarters’);
);
// Ensure white fill for all line chart legend boxes
filteredLabels.forEach((label) =>
label.fillStyle = ‘white’;
);
return filteredLabels;
:
position: ‘top’,
align: ‘start’,
labels:
usePointStyle: false,
boxWidth: 12,
boxHeight: 12,
padding: 12,
filter: function(legendItem, chartData)
return !legendItem.text.includes(‘NCAA Avg SR’) &&
!legendItem.text.includes(‘Quarters’) &&
!legendItem.text.includes(’50/50′);
,
generateLabels: function(chart)
const data = chart.data;
if (data.datasets.length)
return data.datasets.map((dataset, i) =>
// Handle backgroundColor arrays (like in Overall Team Performance chart)
let fillColor = dataset.backgroundColor;
if (dataset.label === ‘# Plays’)
fillColor = ‘white’;
else if (Array.isArray(dataset.backgroundColor))
// For datasets with backgroundColor arrays, use the first color for legend
fillColor = dataset.backgroundColor[0];
return
text: dataset.label,
fillStyle: fillColor,
strokeStyle: dataset.label === ‘# Plays’ ? ‘#666’ : dataset.borderColor,
lineWidth: dataset.label === ‘# Plays’ ? 1 : dataset.borderWidth,
hidden: !chart.isDatasetVisible(i),
datasetIndex: i
;
).filter((item, index) =>
dataset.label.includes(’50/50′))) return false;
return dataset.data.some((value) => value > 0);
);
return [];
,
tooltip:
filter: function(tooltipItem)
if (‘down-bars’.includes(‘play-map’))
return !tooltipItem.dataset.label.includes(‘< 0’) &&
!tooltipItem.dataset.label.includes(‘Quarters’) &&
!tooltipItem.dataset.label.includes(‘Drive’);
return !tooltipItem.dataset.label.includes(‘NCAA Avg SR’) &&
!tooltipItem.dataset.label.includes(’50/50′) &&
…