Statistics

ETFL Stat Book

/* Layout: crest header band, leader strip, then one tabbed stat table (All-Time / By Season) with a player drill-down panel */
:root{
–paper:#FBFAF8; –surface:#FFFFFF; –ink:#16130F; –muted:#6B645C; –line:#E6E1DA; –band:#F4F1ED;
–red:#D2161E; –red-ink:#B3121A; –red-soft:#FCE9E9; –leather:#7A4A24;
–display:”Graduate”,”Rockwell”,”Georgia”,serif;
–body:”Barlow”,system-ui,-apple-system,”Segoe UI”,sans-serif;
–num:”Barlow Condensed”,”Arial Narrow”,system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme=”light”]){
–paper:#141210; –surface:#1C1916; –ink:#F2EEE9; –muted:#A49B91; –line:#332E29; –band:#211E1A;
–red:#F0484E; –red-ink:#FF6B70; –red-soft:#3A1A1B; –leather:#C08A5C; color-scheme:dark}}
:root[data-theme=”dark”]{
–paper:#141210; –surface:#1C1916; –ink:#F2EEE9; –muted:#A49B91; –line:#332E29; –band:#211E1A;
–red:#F0484E; –red-ink:#FF6B70; –red-soft:#3A1A1B; –leather:#C08A5C; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(–paper);color:var(–ink);font-family:var(–body);font-size:15px;line-height:1.45}
.wrap{max-width:1080px;margin:0 auto;padding-inline:16px;padding-block:20px 48px}
header.top{display:flex;align-items:center;gap:18px;padding-block:8px 18px;border-bottom:3px solid var(–red)}
header.top img{width:76px;height:76px;flex:none;border-radius:50%;background:#fff}
header.top h1{font-family:var(–display);font-weight:400;font-size:clamp(22px,4.5vw,34px);line-height:1.05;margin:0;letter-spacing:.01em;text-wrap:balance}
header.top p{margin:4px 0 0;color:var(–muted);font-size:14px}
.leaders{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-block:20px}
.leader{background:var(–surface);border:1px solid var(–line);padding:12px 14px;min-width:0}
.leader .k{font-family:var(–num);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(–muted)}
.leader .v{font-family:var(–num);font-weight:700;font-size:34px;line-height:1;color:var(–red);font-variant-numeric:tabular-nums;margin-top:4px}
.leader .n{font-weight:600;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:720px){.leaders{grid-template-columns:repeat(2,minmax(0,1fr))}}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-block:8px 12px}
.tabs{display:flex;border:1px solid var(–ink)}
.tabs button{font:600 14px var(–num);letter-spacing:.08em;text-transform:uppercase;padding:8px 16px;border:0;background:transparent;color:var(–ink);cursor:pointer}
.tabs button[aria-selected=”true”]{background:var(–ink);color:var(–paper)}
.controls input,.controls select{font:inherit;padding:7px 10px;border:1px solid var(–line);background:var(–surface);color:var(–ink);min-width:0}
.controls input{flex:1 1 200px}
:focus-visible{outline:2px solid var(–red);outline-offset:2px}
.count{color:var(–muted);font-size:13px;margin-left:auto}
.tablebox{overflow-x:auto;border:1px solid var(–line);background:var(–surface)}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:8px 10px;text-align:center;white-space:nowrap}
th{font-family:var(–num);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;background:var(–band);color:var(–muted);cursor:pointer;user-select:none;position:sticky;top:0}
th.sorted{color:var(–red-ink)}
th.sorted::after{content:” ▾”} th.sorted.asc::after{content:” ▴”}
td{border-top:1px solid var(–line)}
td.l,th.l{text-align:left}
td.pts{font-weight:700;font-family:var(–num);font-size:17px}
td.rank{color:var(–muted);font-family:var(–num);width:3em}
tr.top3 td.rank{color:var(–red);font-weight:700}
td.dim{color:var(–muted)}
button.player{all:unset;cursor:pointer;font-weight:600;border-bottom:1px dotted var(–muted)}
button.player:hover{color:var(–red-ink);border-color:var(–red)}
tr.seasonbreak td{background:var(–band);font-family:var(–display);text-align:left;font-size:15px;padding-block:10px;color:var(–ink)}
.chip{display:inline-block;font-size:12px;padding:1px 7px;border:1px solid var(–line);margin:1px 2px 1px 0;color:var(–muted)}
.panel{margin-bottom:16px;border:1px solid var(–line);border-top:3px solid var(–red);background:var(–surface);padding:16px}
.panel h2{font-family:var(–display);font-weight:400;font-size:22px;margin:0 0 4px}
.panel .sub{color:var(–muted);margin-bottom:12px}
.panel .close{float:right;font:600 13px var(–num);letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(–line);color:var(–ink);padding:5px 10px;cursor:pointer}
.bars{display:flex;align-items:flex-end;gap:10px;height:120px;margin:8px 0 16px;padding-bottom:4px;border-bottom:1px solid var(–line)}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.bar span.b{width:100%;max-width:46px;background:var(–leather);display:block}
.bar span.b.best{background:var(–red)}
.bar .val{font-family:var(–num);font-weight:700;font-size:14px}
.bar .lab{font-size:11px;color:var(–muted);margin-top:4px;text-align:center;white-space:nowrap}
.sections{display:flex;gap:0;margin-block:18px 4px;border-bottom:1px solid var(–line)}
.sections button{font:400 17px var(–display);background:none;border:0;border-bottom:3px solid transparent;color:var(–muted);padding:8px 14px;cursor:pointer;margin-bottom:-1px}
.sections button[aria-pressed=”true”]{color:var(–ink);border-bottom-color:var(–red)}
.champs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-block:20px}
@media (max-width:820px){.champs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:460px){.champs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.champ{background:var(–surface);border:1px solid var(–line);border-top:3px solid var(–red);padding:10px 12px;min-width:0}
.champ .k{font-family:var(–num);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(–muted)}
.champ .t{font-family:var(–display);font-size:20px;margin-top:2px}
.champ .q{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.champ .s{font-size:12px;color:var(–muted)}
tr.champrow td{background:var(–red-soft)}
.cup{color:var(–red);font-weight:700;font-family:var(–num);letter-spacing:.04em}
footer{margin-top:24px;color:var(–muted);font-size:13px;max-width:70ch}
footer p{margin:6px 0}

ETFL Stat Book

Player stats, standings and QB records, Spring 2023 to Spring 2026



Regular season only. TD is touchdowns scored. FG, Convert and Safety are points. Field goals were only tracked in some seasons, depending on field permits; a dash means not tracked.

Josh Devine (KI) and Josh Devine (Ryderz) are two different players. Tap any player’s name to see their season by season record.

const ROWS = [[“Fall 2023″,”Kyle Shaw”,”Valin”,14,0,10,4,0,0,94],[“Fall 2023″,”Anton O’Neil”,”Scoop”,11,0,19,5,1,0,85],[“Fall 2023″,”Jazz Lindsey”,”Ruest”,12,0,6,7,0,0,78],[“Fall 2023″,”Chris Miller”,”Valin”,9,0,14,3,0,0,68],[“Fall 2023″,”Brandon Pottle”,”Pottle”,9,0,2,1,0,0,56],[“Fall 2023″,”Kearaun Francis”,”Toi”,7,0,3,0,0,0,45],[“Fall 2023″,”Aaron Karamath”,”Toi”,5,0,11,1,0,0,41],[“Fall 2023″,”Richard Dickenson”,”Scoop”,5,0,8,1,0,0,38],[“Fall 2023″,”Chris Heath”,”Ruest”,5,0,7,0,0,0,37],[“Fall 2023″,”Thomas Lawrence”,”Valin”,4,3,9,2,0,0,36],[“Fall 2023″,”Paul Vanleyden”,”Scoop”,5,0,4,1,0,0,34],[“Fall 2023″,”Aaron Johnson”,”Scoop”,4,0,8,3,0,0,32],[“Fall 2023″,”Connor Ruest”,”Ruest”,4,0,8,0,0,0,32],[“Fall 2023″,”Evan Woodcock”,”Pottle”,4,0,6,0,0,0,30],[“Fall 2023″,”James Green”,”Valin”,3,0,6,1,0,0,24],[“Fall 2023″,”Josh Devine (KI)”,”Stu”,3,0,6,1,0,0,24],[“Fall 2023″,”Alex Leonidakis”,”Ruest”,3,0,4,4,0,0,22],[“Fall 2023″,”Jamall Brown”,”Toi”,3,0,4,4,0,0,22],[“Fall 2023″,”Nathan Fischer”,”Scoop”,3,0,3,0,0,0,21],[“Fall 2023″,”Bry Earle”,”Stu”,3,0,2,1,0,0,20],[“Fall 2023″,”David Delgado”,”Toi”,3,0,2,1,0,0,20],[“Fall 2023″,”Desmond Johnson”,”Pottle”,3,0,2,1,0,0,20],[“Fall 2023″,”Jeff Darling”,”Scoop”,3,0,0,1,1,0,18],[“Fall 2023″,”Brent Shepherd”,”Ruest”,2,0,2,2,0,0,14],[“Fall 2023″,”Karl Vanleyden”,”Scoop”,2,0,2,1,1,0,14],[“Fall 2023″,”Chris Loach”,”Stu”,2,0,0,3,0,0,12],[“Fall 2023″,”Connor Tamblyn”,”Stu”,2,0,0,2,0,0,12],[“Fall 2023″,”Derek McDonald”,”Stu”,2,0,0,0,0,0,12],[“Fall 2023″,”Frank Wilson”,”Scoop”,2,0,0,0,0,0,12],[“Fall 2023″,”Matthew Singh”,”Toi”,2,0,0,1,1,0,12],[“Fall 2023″,”Miguel Morris”,”Toi”,2,0,0,0,1,0,12],[“Fall 2023″,”Chad \”Scoop\” Mallen”,”Scoop”,2,0,0,4,0,0,12],[“Fall 2023″,”Jay Carter”,”Pottle”,1,0,2,2,0,0,8],[“Fall 2023″,”Kahlil Fenton”,”Toi”,1,0,2,0,1,0,8],[“Fall 2023″,”Mike Sperling”,”Valin”,1,0,2,0,0,0,8],[“Fall 2023″,”Musa Mansuar”,”Scoop”,1,0,2,1,0,0,8],[“Fall 2023″,”Ross Erman”,”Ruest”,1,0,2,1,0,0,8],[“Fall 2023″,”Andrew Blair”,”Valin”,1,0,0,2,0,0,6],[“Fall 2023″,”Grae Hayes”,”Pottle”,1,0,0,0,0,0,6],[“Fall 2023″,”Khosya Henderson”,”Stu”,1,0,0,0,0,0,6],[“Fall 2023″,”Mike McNeill”,”Stu”,1,0,0,3,0,0,6],[“Fall 2023″,”Drew Pottle”,”Pottle”,0,0,5,0,0,0,5],[“Fall 2023″,”Stu McNeill”,”Stu”,0,3,0,0,0,0,3],[“Fall 2023″,”Domenic Fata”,”Ruest”,0,0,2,0,0,0,2],[“Fall 2023″,”Marcus Hamilton”,”Pottle”,0,0,2,0,0,0,2],[“Fall 2023″,”Ryan Stephens”,”Ruest”,0,0,2,0,0,0,2],[“Fall 2023″,”Carmen Gnurlantino”,”Valin”,0,0,1,0,1,0,1],[“Fall 2023″,”Luke Brown”,”Ruest”,0,0,1,0,0,0,1],[“Fall 2023″,”Shane Ruest”,”Ruest”,0,0,1,0,0,0,1],[“Fall 2023″,”Toi Simon”,”Toi”,0,0,1,2,0,0,1],[“Fall 2023″,”Christian Levy”,”Pottle”,0,0,0,1,0,0,0],[“Fall 2023″,”David Smith”,”Valin”,0,0,0,2,0,0,0],[“Fall 2023″,”Hassaan Babary”,”Valin”,0,0,0,0,1,0,0],[“Fall 2023″,”Kamar Anglin”,”Toi”,0,0,0,3,0,0,0],[“Fall 2023″,”Ouma Alleyne”,”Toi”,0,0,0,0,1,0,0],[“Fall 2023″,”Quincy James Jr.”,”Toi”,0,0,0,0,3,0,0],[“Fall 2023″,”Ryan Henriques”,”Pottle”,0,0,0,0,1,0,0],[“Fall 2023″,”Wesley Maynard”,”Ruest”,0,0,0,1,1,0,0],[“Spring 2023″,”Josh Devine (KI)”,”Ruest”,9,9,6,0,0,0,69],[“Spring 2023″,”Anton O’Neil”,”Scoop”,9,0,2,3,0,0,56],[“Spring 2023″,”David Delgado”,”Scoop”,8,0,6,0,0,0,54],[“Spring 2023″,”Darnell Barnswell”,”Pacas”,7,0,8,2,0,0,50],[“Spring 2023″,”Bohdan Gluch”,”Glavic”,7,0,4,4,0,0,46],[“Spring 2023″,”Ryan Henriques”,”Pottle”,6,0,10,1,0,0,46],[“Spring 2023″,”Aaron Karamath”,”Toi”,7,0,2,1,0,0,44],[“Spring 2023″,”Anthony Barrett”,”Smith”,7,0,2,0,0,0,44],[“Spring 2023″,”Joe Dublin”,”Pottle”,7,0,2,1,0,0,44],[“Spring 2023″,”Dylan Howell”,”Rafuse”,7,0,1,3,0,0,43],[“Spring 2023″,”Nathaniel Pinto”,”Pacas”,6,0,4,1,0,0,40],[“Spring 2023″,”Thomas Lawrence”,”Glavic”,4,6,9,1,0,0,39],[“Spring 2023″,”Kyle Shaw”,”Ruest”,5,0,8,4,5,0,38],[“Spring 2023″,”Ryan Charlton”,”Smith”,4,0,9,0,0,0,33],[“Spring 2023″,”Jackson Whitter”,”Rafuse”,4,0,8,1,0,0,32],[“Spring 2023″,”Jamie Whitter”,”Rafuse”,5,0,2,2,0,0,32],[“Spring 2023″,”Quinn Smith”,”Pacas”,5,0,0,2,0,0,30],[“Spring 2023″,”Connor Ruest”,”Ruest”,4,0,4,1,0,0,28],[“Spring 2023″,”Oscar Bodzeta”,”Scoop”,4,0,4,1,0,0,28],[“Spring 2023″,”Aaron Johnson”,”Glavic”,4,0,2,0,0,0,26],[“Spring 2023″,”Brandon Pottle”,”Pottle”,4,0,1,6,0,0,25],[“Spring 2023″,”David Smith”,”Smith”,4,0,1,1,2,0,25],[“Spring 2023″,”Drew Pottle”,”Pottle”,3,0,4,1,0,0,22],[“Spring 2023″,”Evan Woodcock”,”Pottle”,3,0,2,2,2,0,20],[“Spring 2023″,”Jazz Lindsey”,”Smith”,3,0,2,1,2,0,20],[“Spring 2023″,”Kyle Tyo”,”Scoop”,2,0,8,1,0,0,20],[“Spring 2023″,”Marko Glavic”,”Glavic”,2,0,7,0,0,0,19],[“Spring 2023″,”Grae Hayes”,”Rafuse”,2,0,6,0,0,0,18],[“Spring 2023″,”Jonah Hardinge”,”Glavic”,3,0,0,0,2,0,18],[“Spring 2023″,”Karl Vanleyden”,”Ruest”,3,0,0,0,0,0,18],[“Spring 2023″,”Khosya Henderson”,”Glavic”,3,0,0,2,0,0,18],[“Spring 2023″,”Ryan Stephens”,”Pacas”,2,0,4,0,0,0,16],[“Spring 2023″,”Brent Shepherd”,”Smith”,2,0,2,2,0,0,14],[“Spring 2023″,”Connor Tamblyn”,”Toi”,2,0,2,0,0,0,14],[“Spring 2023″,”Domenic Fata”,”Toi”,2,0,2,2,2,0,14],[“Spring 2023″,”Jason Segree”,”Glavic”,2,0,0,1,0,2,14],[“Spring 2023″,”Lamar Foyle”,”Toi”,2,0,2,1,0,0,14],[“Spring 2023″,”Matthew Vieira”,”Rafuse”,2,0,2,3,1,0,14],[“Spring 2023″,”Chris Heath”,”Scoop”,2,0,1,1,0,0,13],[“Spring 2023″,”Dylan Bujara”,”Pacas”,1,0,7,0,0,0,13],[“Spring 2023″,”Chris Miller”,”Scoop”,2,0,0,1,0,0,12],[“Spring 2023″,”Jeff Darling”,”Scoop”,1,0,4,0,3,0,10],[“Spring 2023″,”Matthew Singh”,”Scoop”,1,0,4,1,0,0,10],[“Spring 2023″,”Luke Brown”,”Glavic”,0,3,6,0,1,0,9],[“Spring 2023″,”Paul Vanleyden”,”Ruest”,1,0,2,0,0,0,8],[“Spring 2023″,”Brad Spencer”,”Ruest”,1,0,0,3,0,0,6],[“Spring 2023″,”Carmen Gnurlantino”,”Toi”,1,0,0,0,0,0,6],[“Spring 2023″,”Desmond Johnson”,”Ruest”,1,0,0,0,0,0,6],[“Spring 2023″,”Giorgio Mikos”,”Pacas”,1,0,0,0,0,0,6],[“Spring 2023″,”Henriques Simoes”,”Rafuse”,1,0,0,0,0,0,6],[“Spring 2023″,”Jamal Darius”,”Pottle”,1,0,0,0,0,0,6],[“Spring 2023″,”James Green”,”Ruest”,1,0,0,1,0,0,6],[“Spring 2023″,”Kamar Anglin”,”Toi”,1,0,0,0,1,0,6],[“Spring 2023″,”Kearaun Francis”,”Pottle”,1,0,0,1,0,0,6],[“Spring 2023″,”Michael Smith”,”Smith”,1,0,0,0,0,0,6],[“Spring 2023″,”Neil Moody”,”Pacas”,1,0,0,0,1,0,6],[“Spring 2023″,”Ricardo Duarte”,”Pottle”,1,0,0,0,0,0,6],[“Spring 2023″,”Rob Pacas”,”Pacas”,0,6,0,0,0,0,6],[“Spring 2023″,”Toi Simon”,”Toi”,1,0,0,0,0,0,6],[“Spring 2023″,”William Jeyaveeran”,”Toi”,1,0,2,0,0,0,6],[“Spring 2023″,”Shane Ruest”,”Ruest”,0,3,1,0,0,0,4],[“Spring 2023″,”Stu McNeill”,”Scoop”,0,0,4,0,2,0,4],[“Spring 2023″,”Andrew Williams”,”Toi”,0,0,2,2,0,0,2],[“Spring 2023″,”Eric Perez-Salas”,”Scoop”,0,0,2,0,1,0,2],[“Spring 2023″,”Frank (Xenophon) Katradis”,”Pacas”,0,0,2,1,0,0,2],[“Spring 2023″,”Kahlil Fenton”,”Rafuse”,0,0,1,1,0,0,1],[“Spring 2023″,”Al Lopez”,”Smith”,0,0,0,1,0,0,0],[“Spring 2023″,”Alex Fedosen”,”Toi”,0,0,0,0,1,0,0],[“Spring 2023″,”Ben Mason”,”Pacas”,0,0,0,1,1,0,0],[“Spring 2023″,”Blair Weyersberg”,”Smith”,0,0,2,0,0,0,0],[“Spring 2023″,”Delroy George”,”Toi”,0,0,0,1,0,0,0],[“Spring 2023″,”Frank Wilson”,”Pottle”,0,0,2,0,0,0,0],[“Spring 2023″,”Kyle Maclean”,”Pacas”,0,0,0,1,0,0,0],[“Spring 2023″,”Matt Snyder”,”Smith”,0,0,0,2,0,0,0],[“Spring 2023″,”Miguel Morris”,”Toi”,0,0,0,1,1,0,0],[“Spring 2023″,”Mike McNeill”,”Glavic”,0,0,0,1,0,0,0],[“Spring 2023″,”Mike Rafuse”,”Rafuse”,0,0,0,0,1,0,0],[“Spring 2023″,”Mike Sperling”,”Rafuse”,0,0,1,0,0,0,0],[“Spring 2023″,”Neave Narain”,”Ruest”,0,0,0,0,4,0,0],[“Spring 2023″,”Ross Erman”,”Ruest”,0,0,0,1,0,0,0],[“Spring 2023″,”Shaun Airlie”,”Smith”,0,0,0,0,1,0,0],[“Fall 2024″,”Nathan Fischer”,”Pacas”,17,0,6,1,0,0,108],[“Fall 2024″,”Matthew Vieira”,”Shaw”,12,0,10,6,0,0,82],[“Fall 2024″,”Josh Devine (KI)”,”Toi”,9,3,12,2,0,0,69],[“Fall 2024″,”Anton O’Neil”,”Shaw”,9,0,10,1,0,0,64],[“Fall 2024″,”Braeden Pacas”,”Pacas”,9,0,4,1,0,0,58],[“Fall 2024″,”Nathan Lewis”,”Scoop”,8,0,0,3,0,0,48],[“Fall 2024″,”Evan Woodcock”,”Pacas”,6,0,11,0,0,0,47],[“Fall 2024″,”Cole Brown”,”Stu”,6,0,7,0,0,0,43],[“Fall 2024″,”Ryan Dale”,”Shaw”,5,0,11,2,0,0,41],[“Fall 2024″,”Jazz Lindsey”,”Scoop”,6,0,2,3,2,0,38],[“Fall 2024″,”Alex Fedosen”,”Pacas”,5,0,8,4,0,0,38],[“Fall 2024″,”Frank Wilson”,”Stu”,6,0,2,2,0,0,38],[“Fall 2024″,”Connor Tamblyn”,”Shaw”,5,0,8,1,0,0,38],[“Fall 2024″,”David Smith”,”Scoop”,1,12,17,2,0,0,35],[“Fall 2024″,”Harrison Jemmott”,”Scoop”,5,0,4,0,0,0,34],[“Fall 2024″,”Connor Ruest”,”Pacas”,4,3,6,0,0,0,33],[“Fall 2024″,”Alex Leonidakis”,”Toi”,5,0,2,0,0,0,32],[“Fall 2024″,”Shane Ruest”,”Pacas”,4,0,2,2,0,0,26],[“Fall 2024″,”Alex McClyment”,”Pacas”,3,0,7,2,0,0,25],[“Fall 2024″,”Marty Scheer”,”Stu”,4,0,0,3,0,0,24],[“Fall 2024″,”Paul Vanleyden”,”Shaw”,4,0,0,1,0,0,24],[“Fall 2024″,”Thushanth Seevaratnam”,”Toi”,3,0,4,1,1,0,22],[“Fall 2024″,”Quincy Ross”,”Toi”,3,0,4,1,0,0,22],[“Fall 2024″,”Mike Sperling”,”Toi”,3,0,4,0,0,0,22],[“Fall 2024″,”Aaron Johnson”,”Stu”,3,0,2,3,0,0,20],[“Fall 2024″,”Aaron Karamath”,”Stu”,2,0,8,1,0,0,20],[“Fall 2024″,”Chad \”Scoop\” Mallen”,”Scoop”,3,0,2,1,0,0,20],[“Fall 2024″,”Karl Vanleyden”,”Shaw”,3,0,2,0,0,0,20],[“Fall 2024″,”Bry Earle”,”Stu”,3,0,0,0,0,0,18],[“Fall 2024″,”Quentin Chevalier”,”Scoop”,3,0,0,0,0,0,18],[“Fall 2024″,”Mike McNeill”,”Stu”,2,0,2,1,1,0,14],[“Fall 2024″,”Brent Shepherd”,”Toi”,2,0,2,0,0,0,14],[“Fall 2024″,”James Green”,”Shaw”,2,0,1,1,0,0,13],[“Fall 2024″,”Stevan Ivancevic”,”Scoop”,2,0,0,0,0,0,12],[“Fall 2024″,”Chris Miller”,”Pacas”,1,0,4,0,0,0,10],[“Fall 2024″,”Jeff Darling”,”Pacas”,1,0,2,0,1,0,8],[“Fall 2024″,”Kamar Anglin”,”Stu”,1,0,2,1,0,0,8],[“Fall 2024″,”Rob Pacas”,”Pacas”,1,0,2,0,0,0,8],[“Fall 2024″,”Frank (Xenophon) Katradis”,”Scoop”,1,0,1,1,0,0,7],[“Fall 2024″,”Joshua Townsend”,”Scoop”,1,0,1,0,0,0,7],[“Fall 2024″,”Mike Devine”,”Toi”,1,0,0,2,3,0,6],[“Fall 2024″,”Brandon Wood”,”Pacas”,1,0,0,0,2,0,6],[“Fall 2024″,”Domenic Fata”,”Scoop”,1,0,0,1,1,0,6],[“Fall 2024″,”Kevin Lee”,”Stu”,1,0,0,0,1,0,6],[“Fall 2024″,”Chris Loach”,”Pacas”,1,0,0,0,0,0,6],[“Fall 2024″,”Joshua Mckie”,”Toi”,1,0,0,0,0,0,6],[“Fall 2024″,”Grae Hayes”,”Toi”,1,0,0,0,0,0,6],[“Fall 2024″,”Toi Simon”,”Toi”,0,0,4,2,0,0,4],[“Fall 2024″,”Don Schram”,”Toi”,0,0,2,0,1,0,2],[“Fall 2024″,”Devo Black”,”Shaw”,0,0,2,0,0,0,2],[“Fall 2024″,”Eric Perez-Salas”,”Shaw”,0,0,0,0,2,0,0],[“Fall 2024″,”Kiran Persaud”,”Scoop”,0,0,0,0,1,0,0],[“Fall 2024″,”Stu McNeill”,”Stu”,0,0,0,2,0,0,0],[“Fall 2024″,”Michael Smith”,”Scoop”,0,0,0,1,0,0,0],[“Fall 2024″,”Wesley Maynard”,”Pacas”,0,0,0,1,0,0,0],[“Spring 2024″,”Aaron Karamath”,”Toi”,5,0,1,2,0,0,31],[“Spring 2024″,”Aaron Watkins”,”Ruest”,1,0,2,0,0,0,8],[“Spring 2024″,”Aaron Johnson”,”Scoop”,0,0,0,0,0,0,0],[“Spring 2024″,”Aisosa Osaguona”,”Valin”,0,0,0,0,0,0,0],[“Spring 2024″,”Alex Leonidakis”,”Toi”,6,0,0,1,0,0,36],[“Spring 2024″,”Alex Fedosen”,”Rafuse”,2,0,4,0,3,0,16],[“Spring 2024″,”Andrew Coates”,”Glavic”,1,0,5,0,0,0,11],[“Spring 2024″,”Andrew Mahfood”,”Ruest”,0,0,0,1,1,0,0],[“Spring 2024″,”Anthony Barrett”,”Rafuse”,9,0,5,4,0,0,59],[“Spring 2024″,”Anthony Le Rose”,”Valin”,1,0,0,0,0,0,6],[“Spring 2024″,”Anton O’Neil”,”Glavic”,7,0,4,2,0,0,46],[“Spring 2024″,”Avienne Athanasious”,”Glavic”,0,0,0,1,0,0,0],[“Spring 2024″,”Brad Spencer”,”Smith”,1,0,0,1,0,0,6],[“Spring 2024″,”Brandon Wood”,”Smith”,0,0,0,0,2,0,0],[“Spring 2024″,”Brandon Pottle”,”Toi”,3,0,2,0,0,0,20],[“Spring 2024″,”Brent Shepherd”,”Smith”,5,0,2,0,0,0,32],[“Spring 2024″,”Bry Earle”,”Scoop”,2,0,0,0,0,0,12],[“Spring 2024″,”Carmen Gnurlantino”,”Glavic”,0,0,0,0,1,0,0],[“Spring 2024″,”Chris Loach”,”Scoop”,3,0,0,1,0,0,18],[“Spring 2024″,”Chris Cavallaro”,”Scoop”,0,0,0,0,3,0,0],[“Spring 2024″,”Chris Cross”,”Toi”,0,0,0,1,1,0,0],[“Spring 2024″,”Chris Heath”,”Scoop”,0,0,0,1,0,0,0],[“Spring 2024″,”Chris Miller”,”Smith”,5,0,10,3,0,0,40],[“Spring 2024″,”Connor Tamblyn”,”Smith”,3,0,4,0,0,0,22],[“Spring 2024″,”Connor Ruest”,”Ruest”,1,0,9,0,0,0,15],[“Spring 2024″,”Craig Klassen”,”Smith”,0,0,0,0,0,0,0],[“Spring 2024″,”Daniel Lopez-Correa”,”Toi”,0,0,0,0,1,0,0],[“Spring 2024″,”Daniel Betts”,”Smith”,0,0,0,0,0,0,0],[“Spring 2024″,”Darnell Barnswell”,”Ruest”,2,0,0,0,0,0,12],[“Spring 2024″,”David Delgado”,”Scoop”,2,0,1,3,0,0,13],[“Spring 2024″,”David Smith”,”Smith”,1,0,0,0,0,0,6],[“Spring 2024″,”Derek Cyr”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2024″,”Desmond Johnson”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2024″,”Domenic Fata”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2024″,”Don Schram”,”Scoop”,0,0,0,0,1,0,0],[“Spring 2024″,”Dylan Kazda”,”Rafuse”,2,0,2,0,0,0,14],[“Spring 2024″,”Dylan Hutcheson”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2024″,”Eric Perez-Salas”,”Toi”,0,0,0,0,4,0,0],[“Spring 2024″,”Evan Woodcock”,”Rafuse”,3,0,0,0,0,0,18],[“Spring 2024″,”Frank Marcus”,”Smith”,0,0,0,1,0,0,0],[“Spring 2024″,”Grae Hayes”,”Valin”,1,0,0,0,2,0,6],[“Spring 2024″,”Harrison Jemmott”,”Scoop”,1,0,0,1,0,0,6],[“Spring 2024″,”James Green”,”Ruest”,0,0,0,1,0,0,0],[“Spring 2024″,”Jason Segree”,”Pacas”,4,0,2,0,0,0,26],[“Spring 2024″,”Jazz Lindsey”,”Valin”,4,0,4,4,0,0,28],[“Spring 2024″,”Jeff Darling”,”Toi”,3,0,3,0,1,0,21],[“Spring 2024″,”Joe Dublin”,”Smith”,1,0,2,2,0,0,8],[“Spring 2024″,”Jonah Hardinge”,”Rafuse”,0,0,1,1,2,0,1],[“Spring 2024″,”Josh Devine (KI)”,”Valin”,7,0,6,2,0,0,48],[“Spring 2024″,”Joshua Menna”,”Toi”,0,0,0,0,0,0,0],[“Spring 2024″,”Kahlil Fenton”,”Toi”,0,0,0,0,0,0,0],[“Spring 2024″,”Kamar Anglin”,”Toi”,0,0,0,1,0,0,0],[“Spring 2024″,”Karl Vanleyden”,”Ruest”,3,0,0,0,0,0,18],[“Spring 2024″,”Kearaun Francis”,”Rafuse”,0,0,0,0,0,0,0],[“Spring 2024″,”Keith Vanleyden”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2024″,”Kenan Clarke”,”Scoop”,2,0,6,1,0,0,18],[“Spring 2024″,”Khosya Henderson”,”Glavic”,2,0,4,0,0,0,16],[“Spring 2024″,”Kiran Persaud”,”Toi”,0,0,2,0,0,0,2],[“Spring 2024″,”Kyle Shaw”,”Ruest”,4,0,8,1,0,0,32],[“Spring 2024″,”Kyle Tyo”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2024″,”Larry Blackman”,”Rafuse”,0,0,0,0,0,0,0],[“Spring 2024″,”Loxley Prince”,”Valin”,1,0,3,1,0,0,9],[“Spring 2024″,”Luca Cairns Celebre”,”Toi”,3,0,1,1,0,0,19],[“Spring 2024″,”Marcus Hamilton”,”Valin”,0,0,0,1,0,0,0],[“Spring 2024″,”Mario Listro”,”Rafuse”,2,0,4,0,0,0,16],[“Spring 2024″,”Marko Glavic”,”Glavic”,0,0,1,0,0,0,1],[“Spring 2024″,”Matt Snyder”,”Smith”,0,0,0,1,0,0,0],[“Spring 2024″,”Matthew Vieira”,”Ruest”,10,0,2,3,0,0,62],[“Spring 2024″,”Matthew Rafuse”,”Rafuse”,3,0,0,2,0,0,18],[“Spring 2024″,”Matthew Singh”,”Pacas”,0,0,0,3,0,0,0],[“Spring 2024″,”Mike McNeill”,”Valin”,1,0,0,0,1,0,6],[“Spring 2024″,”Miguel Morris”,”Pacas”,0,0,0,0,3,0,0],[“Spring 2024″,”Mike Sperling”,”Pacas”,3,0,6,0,2,0,24],[“Spring 2024″,”Mike Devine”,”Valin”,1,0,0,0,1,0,6],[“Spring 2024″,”Mike Rafuse”,”Rafuse”,0,0,0,0,1,0,0],[“Spring 2024″,”Nathan Lewis”,”Scoop”,8,0,2,2,0,0,50],[“Spring 2024″,”Nathan Fischer”,”Pacas”,4,0,5,0,0,0,29],[“Spring 2024″,”Nathaniel Pinto”,”Pacas”,13,0,8,4,0,0,86],[“Spring 2024″,”Nicholas Duncan”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2024″,”Oscar Bodzeta”,”Rafuse”,3,0,4,4,0,0,22],[“Spring 2024″,”Ouma Alleyne”,”Valin”,0,0,0,0,0,0,0],[“Spring 2024″,”Paul Vanleyden”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2024″,”Quentin Chevalier”,”Scoop”,6,0,8,0,0,0,44],[“Spring 2024″,”Quincy Ross”,”Pacas”,2,0,8,1,0,0,20],[“Spring 2024″,”Quincy James Jr.”,”Pacas”,0,0,0,0,2,0,0],[“Spring 2024″,”Quinn Smith”,”Scoop”,0,0,0,0,0,0,0],[“Spring 2024″,”Richard Dickenson”,”Glavic”,1,0,0,1,0,0,6],[“Spring 2024″,”Rob Pacas”,”Pacas”,0,0,1,1,0,0,1],[“Spring 2024″,”Ross Erman”,”Valin”,0,0,0,0,1,0,0],[“Spring 2024″,”Ryan Henriques”,”Toi”,2,9,4,0,0,0,25],[“Spring 2024″,”Ryan Forde”,”Smith”,2,0,2,1,0,0,14],[“Spring 2024″,”Ryan Dale”,”Glavic”,1,0,2,2,0,0,8],[“Spring 2024″,”Sasha Glavic”,”Glavic”,7,0,10,0,0,0,52],[“Spring 2024″,”Chad \”Scoop\” Mallen”,”Scoop”,2,0,0,0,0,0,12],[“Spring 2024″,”Shane Ruest”,”Ruest”,0,3,3,0,0,0,6],[“Spring 2024″,”Thibishan Sribaskaran”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2024″,”Thomas Lawrence”,”Valin”,2,0,2,1,0,0,14],[“Spring 2024″,”Timothy Winter”,”Pacas”,4,0,2,0,0,0,26],[“Spring 2024″,”Tony Gomez”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2024″,”Trae Wright”,”Smith”,0,0,2,0,0,0,2],[“Spring 2024″,”Treveen Thayalan”,”Glavic”,6,0,2,2,0,0,38],[“Spring 2024″,”Wesley Maynard”,”Rafuse”,0,0,0,0,2,0,0],[“Spring 2024″,”William Jeyaveeran”,”Rafuse”,1,0,0,1,0,0,6],[“Spring 2025″,”Sasha Glavic”,”Glavic”,8,0,16,0,0,0,64],[“Spring 2025″,”Anton O’Neil”,”Pacas”,7,0,12,0,0,0,54],[“Spring 2025″,”Jazz Lindsey”,”Toi”,7,0,10,0,0,0,52],[“Spring 2025″,”Jordon Campbell”,”Toi”,6,0,0,0,0,0,36],[“Spring 2025″,”Ryan Dale”,”Pacas”,6,0,0,0,0,0,36],[“Spring 2025″,”Treveen Thayalan”,”Glavic”,5,0,0,0,0,0,30],[“Spring 2025″,”Khosya Henderson”,”Glavic”,3,0,6,0,0,0,24],[“Spring 2025″,”Brent Shepherd”,”Toi”,4,0,0,1,0,0,24],[“Spring 2025″,”Chris Miller”,”Ruest”,3,0,4,0,0,0,22],[“Spring 2025″,”Connor Ruest”,”Ruest”,3,0,2,1,0,0,20],[“Spring 2025″,”Kyle Shaw”,”Ruest”,3,0,2,1,0,0,20],[“Spring 2025″,”Domenic Gnurlantino”,”Ruest”,3,0,0,0,1,0,18],[“Spring 2025″,”Marty Scheer”,”Glavic”,3,0,0,1,0,0,18],[“Spring 2025″,”Connor Tamblyn”,”Glavic”,2,0,2,0,1,0,14],[“Spring 2025″,”Mario Listro”,”Glavic”,2,0,2,1,0,0,14],[“Spring 2025″,”Josh Devine (KI)”,”Pacas”,2,0,1,0,0,0,13],[“Spring 2025″,”Marko Glavic”,”Glavic”,2,0,0,1,1,0,12],[“Spring 2025″,”Brandon Wood”,”Pacas”,2,0,0,0,0,0,12],[“Spring 2025″,”Thomas Lawrence”,”Pacas”,1,0,4,1,0,0,10],[“Spring 2025″,”Chad \”Scoop\” Mallen”,”Toi”,1,0,2,1,0,0,8],[“Spring 2025″,”Shane Ruest”,”Ruest”,1,0,2,1,0,0,8],[“Spring 2025″,”David Smith”,”Pacas”,1,0,2,0,0,0,8],[“Spring 2025″,”Harrison Jemmott”,”Toi”,1,0,2,0,0,0,8],[“Spring 2025″,”James Green”,”Ruest”,1,0,2,0,0,0,8],[“Spring 2025″,”Thushanth Seevaratnam”,”Toi”,1,0,2,0,0,0,8],[“Spring 2025″,”Patrick McCaskie”,”Toi”,1,0,0,0,1,0,6],[“Spring 2025″,”Darnell Barnswell”,”Glavic”,1,0,0,1,0,0,6],[“Spring 2025″,”Domenic Fata”,”Pacas”,1,0,0,1,0,0,6],[“Spring 2025″,”Alex McClyment”,”Pacas”,1,0,0,0,0,0,6],[“Spring 2025″,”Evan Woodcock”,”Ruest”,1,0,0,0,0,0,6],[“Spring 2025″,”Paul Vanleyden”,”Ruest”,1,0,0,0,0,0,6],[“Spring 2025″,”Teyas Yew Woon”,”Toi”,1,0,0,0,0,0,6],[“Spring 2025″,”Andrew Coates”,”Glavic”,0,0,5,0,0,0,5],[“Spring 2025″,”Quentin Chevalier”,”Toi”,0,0,4,1,0,0,4],[“Spring 2025″,”Jeff Darling”,”Toi”,0,0,2,0,1,0,2],[“Spring 2025″,”Michael Smith”,”Pacas”,0,0,2,0,0,0,2],[“Spring 2025″,”Luke Brown”,”Toi”,0,0,1,0,0,0,1],[“Spring 2025″,”Rob Pacas”,”Pacas”,0,0,1,0,0,0,1],[“Spring 2025″,”Carmen Gnurlantino”,”Ruest”,0,0,0,0,4,0,0],[“Spring 2025″,”Alex Fedosen”,”Pacas”,0,0,0,2,0,0,0],[“Spring 2025″,”Presh Singarajah”,”Glavic”,0,0,0,2,0,0,0],[“Spring 2025″,”Kamar Anglin”,”Ruest”,0,0,0,1,0,0,0],[“Spring 2025″,”Aaron Johnson”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2025″,”Alex Barbara”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2025″,”Alex Leonidakis”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2025″,”Anthony Dimichino”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2025″,”Brad Spencer”,”Toi”,0,0,0,0,0,0,0],[“Spring 2025″,”Chris Schomberg”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2025″,”Don Schram”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2025″,”Frank Wilson”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2025″,”Kabil Siva”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2025″,”Kahlil Fenton”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2025″,”Matthew Gammie”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2025″,”Nicholas Duncan”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2025″,”Patrick Rainbow”,”Toi”,0,0,0,0,0,0,0],[“Spring 2025″,”Sai Sathyakumar”,”Glavic”,0,0,0,0,0,0,0],[“Spring 2025″,”Tony Gomez”,”Toi”,0,0,0,0,0,0,0],[“Spring 2025″,”Troy Phillips”,”Pacas”,0,0,0,0,0,0,0],[“Spring 2025″,”Wesley Maynard”,”Ruest”,0,0,0,0,0,0,0],[“Spring 2026″,”Anthony Barrett”,”Pacas”,14,null,2,1,0,0,86],[“Spring 2026″,”Luca Cairns Celebre”,”Clarke”,12,null,7,1,0,0,79],[“Spring 2026″,”Joe MacDonald”,”Heaney”,10,null,2,2,0,0,62],[“Spring 2026″,”Aaron Karamath”,”Toi”,9,null,3,0,1,0,57],[“Spring 2026″,”Kearaun Francis”,”Jeff”,8,null,3,0,0,0,51],[“Spring 2026″,”Matthew Singh”,”Clarke”,8,null,0,0,0,0,48],[“Spring 2026″,”Grae Hayes”,”Pacas”,6,null,9,0,0,0,45],[“Spring 2026″,”Quentin Chevalier”,”Jeff”,7,null,0,2,0,0,42],[“Spring 2026″,”Jordon Campbell”,”Toi”,6,null,4,0,0,0,40],[“Spring 2026″,”Khosya Henderson”,”Glavic”,6,null,3,1,0,0,39],[“Spring 2026″,”Ryan Dale”,”Pacas”,6,null,3,3,0,0,39],[“Spring 2026″,”Tristan Smith”,”Scoop”,6,null,1,1,0,0,37],[“Spring 2026″,”Dylan Hutcheson”,”Glavic”,5,null,5,3,0,0,35],[“Spring 2026″,”Chris Miller”,”Scoop”,5,null,3,5,0,0,33],[“Spring 2026″,”Alex Leonidakis”,”Pacas”,4,null,6,1,0,0,30],[“Spring 2026″,”Chris Fealy”,”Pacas”,4,null,3,1,0,0,27],[“Spring 2026″,”Nathan Fischer”,”Heaney”,4,null,2,0,0,0,26],[“Spring 2026″,”Presh Singarajah”,”Toi”,4,null,2,0,0,0,26],[“Spring 2026″,”Connor Tamblyn”,”Clarke”,4,null,1,0,0,0,25],[“Spring 2026″,”Heinz Stork”,”Glavic”,4,null,1,0,0,0,25],[“Spring 2026″,”Kayrus Sam”,”Toi”,3,null,7,4,0,0,25],[“Spring 2026″,”Stephano Cavaliere”,”Toi”,4,null,0,0,0,0,24],[“Spring 2026″,”Brent Shepherd”,”Scoop”,3,null,5,0,0,0,23],[“Spring 2026″,”David Smith”,”Jeff”,3,null,2,0,0,0,20],[“Spring 2026″,”Khari Francis”,”Glavic”,3,null,2,0,0,0,20],[“Spring 2026″,”Domenic Gnurlantino”,”Scoop”,3,null,1,0,0,0,19],[“Spring 2026″,”Matthew Vieira”,”Scoop”,3,null,1,0,1,0,19],[“Spring 2026″,”Thushanth Seevaratnam”,”Heaney”,3,null,1,0,0,0,19],[“Spring 2026″,”Emmanuel Beals”,”Glavic”,3,null,0,0,0,0,18],[“Spring 2026″,”Josh Devine (Ryderz)”,”Clarke”,2,null,5,1,0,0,17],[“Spring 2026″,”Yasser Zaheed”,”Glavic”,2,null,4,0,0,0,16],[“Spring 2026″,”Daeshaun Jupiter-Deane”,”Jeff”,2,null,3,0,0,0,15],[“Spring 2026″,”Paul Vanleyden”,”Heaney”,2,null,3,0,0,0,15],[“Spring 2026″,”Bohdan Gluch”,”Heaney”,2,null,2,0,0,0,14],[“Spring 2026″,”James Green”,”Scoop”,2,null,2,0,0,0,14],[“Spring 2026″,”Jamall Brown”,”Jeff”,2,null,1,0,0,0,13],[“Spring 2026″,”Adrian McIntosh”,”Clarke”,2,null,0,0,0,0,12],[“Spring 2026″,”Domenic Fata”,”Toi”,2,null,0,1,0,0,12],[“Spring 2026″,”Nathan Lewis”,”Heaney”,2,null,0,0,1,0,12],[“Spring 2026″,”Patrick Rainbow”,”Pacas”,2,null,0,0,0,0,12],[“Spring 2026″,”Frank Wilson”,”Glavic”,1,null,4,0,0,0,10],[“Spring 2026″,”Mau Maha”,”Pacas”,1,null,4,0,0,0,10],[“Spring 2026″,”Chris Tzortzouklis”,”Heaney”,1,null,2,0,0,0,8],[“Spring 2026″,”Jacob \”Twitch\” Jenikovszky”,”Jeff”,1,null,2,0,0,0,8],[“Spring 2026″,”Raj Patel”,”Toi”,1,null,2,0,0,0,8],[“Spring 2026″,”Sheldon Maxham”,”Clarke”,1,null,2,0,0,0,8],[“Spring 2026″,”Brandon Wood”,”Scoop”,1,null,1,0,0,0,7],[“Spring 2026″,”Patrick McCaskie”,”Scoop”,1,null,1,0,1,0,7],[“Spring 2026″,”Alex McClyment”,”Pacas”,1,null,0,0,0,0,6],[“Spring 2026″,”Eric Robinson”,”Scoop”,1,null,0,3,0,0,6],[“Spring 2026″,”Jason Segree”,”Toi”,1,null,0,0,0,0,6],[“Spring 2026″,”Mike Sperling”,”Jeff”,1,null,0,0,0,0,6],[“Spring 2026″,”Trae Wright”,”Glavic”,1,null,0,2,0,0,6],[“Spring 2026″,”Travis Hill”,”Heaney”,1,null,0,0,0,0,6],[“Spring 2026″,”Eric Perez-Salas”,”Glavic”,0,null,2,1,0,0,2],[“Spring 2026″,”Thomas Lawrence”,”Clarke”,0,null,2,1,0,0,2],[“Spring 2026″,”William Jeyaveeran”,”Scoop”,0,null,2,0,0,0,2],[“Spring 2026″,”Marko Glavic”,”Glavic”,0,null,1,0,1,0,1],[“Spring 2026″,”Myles Daly”,”Glavic”,0,null,1,0,0,0,1],[“Spring 2026″,”Rob Pacas”,”Pacas”,0,null,1,0,0,0,1],[“Spring 2026″,”Chad \”Scoop\” Mallen”,”Scoop”,0,null,1,0,0,0,1],[“Spring 2026″,”Tony Gomez”,”Heaney”,0,null,1,0,0,0,1],[“Spring 2026″,”Adrian Pardinas”,”Scoop”,0,null,0,0,0,0,0],[“Spring 2026″,”Alex Barbara”,”Toi”,0,null,0,0,0,0,0],[“Spring 2026″,”Alex Fedosen”,”Jeff”,0,null,0,1,0,0,0],[“Spring 2026″,”Bryalen Fernandes”,”Pacas”,0,null,0,0,0,0,0],[“Spring 2026″,”Carmen Gnurlantino”,”Clarke”,0,null,0,0,2,0,0],[“Spring 2026″,”Cordell Clarke”,”Toi”,0,null,0,0,0,0,0],[“Spring 2026″,”Daniel Gagne”,”Glavic”,0,null,0,2,0,0,0],[“Spring 2026″,”Dylon Flores”,”Pacas”,0,null,0,0,0,0,0],[“Spring 2026″,”Germaine Clarke”,”Clarke”,0,null,0,0,1,0,0],[“Spring 2026″,”Grady Weatherall”,”Pacas”,0,null,0,0,0,0,0],[“Spring 2026″,”Harrison Jemmott”,”Heaney”,0,null,0,0,0,0,0],[“Spring 2026″,”Houston Munroe”,”Jeff”,0,null,0,0,0,0,0],[“Spring 2026″,”Jackson Lyder”,”Pacas”,0,null,0,0,0,0,0],[“Spring 2026″,”Jahlanie Morrison”,”Jeff”,0,null,0,0,2,0,0],[“Spring 2026″,”Kahlil Fenton”,”Clarke”,0,null,0,0,0,0,0],[“Spring 2026″,”Kamar Anglin”,”Jeff”,0,null,0,0,0,0,0],[“Spring 2026″,”Krishan Kuganesan”,”Toi”,0,null,0,2,1,0,0],[“Spring 2026″,”Lucky Nathakumar”,”Scoop”,0,null,0,0,0,0,0],[“Spring 2026″,”Matthew Gammie”,”Scoop”,0,null,0,0,0,0,0],[“Spring 2026″,”Miguel Morris”,”Clarke”,0,null,0,0,0,0,0],[“Spring 2026″,”Nicholas Vukovic”,”Glavic”,0,null,0,0,0,0,0],[“Spring 2026″,”Nim Jenikovszky”,”Clarke”,0,null,0,0,0,0,0],[“Spring 2026″,”Ouma Alleyne”,”Clarke”,0,null,0,1,0,0,0],[“Spring 2026″,”Owen Gloyns”,”Clarke”,0,null,0,0,0,0,0],[“Spring 2026″,”Rakul Thavakumar”,”Heaney”,0,null,0,0,0,0,0],[“Spring 2026″,”Richard Snaith”,”Toi”,0,null,0,0,0,0,0],[“Spring 2026″,”Rob Grey”,”Toi”,0,null,0,0,0,0,0],[“Spring 2026″,”Sasha Glavic”,”Glavic”,0,null,0,0,1,0,0],[“Spring 2026″,”Tashaun Brady”,”Jeff”,0,null,0,0,0,0,0],[“Spring 2026″,”Tray Loraine”,”Pacas”,0,null,0,0,0,0,0],[“Spring 2026″,”Wesley Maynard”,”Heaney”,0,null,0,0,1,0,0]];
const TD = {“teamseasons”:[{“season”:”Spring 2023″,”team”:”Ruest”,”qb”:”Shane Ruest”,”w”:4,”l”:3,”t”:0,”pf”:189,”pa”:165,”pd”:24,”pw”:3,”pl”:1,”pt”:0,”champ”:true,”rank”:4},{“season”:”Spring 2023″,”team”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”w”:5,”l”:2,”t”:0,”pf”:212,”pa”:195,”pd”:17,”pw”:3,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Spring 2023″,”team”:”Glavic”,”qb”:”Sasha Glavic”,”w”:5,”l”:2,”t”:0,”pf”:186,”pa”:125,”pd”:61,”pw”:1,”pl”:2,”pt”:0,”champ”:false,”rank”:1},{“season”:”Spring 2023″,”team”:”Pottle”,”qb”:”Ricky Pottle”,”w”:4,”l”:2,”t”:1,”pf”:172,”pa”:112,”pd”:60,”pw”:1,”pl”:1,”pt”:1,”champ”:false,”rank”:3},{“season”:”Spring 2023″,”team”:”Smith”,”qb”:”Michael Smith”,”w”:3,”l”:4,”t”:0,”pf”:146,”pa”:168,”pd”:-22,”pw”:1,”pl”:1,”pt”:1,”champ”:false,”rank”:6},{“season”:”Spring 2023″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:2,”l”:5,”t”:0,”pf”:106,”pa”:166,”pd”:-60,”pw”:0,”pl”:3,”pt”:0,”champ”:false,”rank”:7},{“season”:”Spring 2023″,”team”:”Pacas”,”qb”:”Rob Pacas”,”w”:3,”l”:3,”t”:1,”pf”:161,”pa”:172,”pd”:-11,”pw”:2,”pl”:1,”pt”:0,”champ”:false,”rank”:5},{“season”:”Spring 2023″,”team”:”Rafuse”,”qb”:”Mike Rafuse”,”w”:1,”l”:6,”t”:0,”pf”:151,”pa”:220,”pd”:-69,”pw”:1,”pl”:2,”pt”:0,”champ”:false,”rank”:8},{“season”:”Fall 2023″,”team”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”w”:6,”l”:1,”t”:1,”pf”:276,”pa”:145,”pd”:131,”pw”:2,”pl”:0,”pt”:0,”champ”:true,”rank”:1},{“season”:”Fall 2023″,”team”:”Valin”,”qb”:”Bryan Valin”,”w”:6,”l”:2,”t”:0,”pf”:234,”pa”:152,”pd”:82,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Fall 2023″,”team”:”Ruest”,”qb”:”Shane Ruest”,”w”:3,”l”:4,”t”:1,”pf”:195,”pa”:194,”pd”:1,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:4},{“season”:”Fall 2023″,”team”:”Pottle”,”qb”:”Ricky Pottle”,”w”:2,”l”:6,”t”:0,”pf”:128,”pa”:261,”pd”:-133,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:6},{“season”:”Fall 2023″,”team”:”Stu”,”qb”:”Stu McNeill”,”w”:2,”l”:6,”t”:0,”pf”:95,”pa”:195,”pd”:-100,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:5},{“season”:”Fall 2023″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:4,”l”:4,”t”:0,”pf”:169,”pa”:150,”pd”:19,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:3},{“season”:”Spring 2024″,”team”:”Glavic”,”qb”:”Marko Glavic”,”w”:5,”l”:2,”t”:0,”pf”:179,”pa”:139,”pd”:40,”pw”:4,”pl”:0,”pt”:0,”champ”:true,”rank”:3},{“season”:”Spring 2024″,”team”:”Pacas”,”qb”:”Rob Pacas”,”w”:5,”l”:2,”t”:0,”pf”:212,”pa”:154,”pd”:58,”pw”:3,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Spring 2024″,”team”:”Ruest”,”qb”:”Shane Ruest”,”w”:2,”l”:5,”t”:0,”pf”:145,”pa”:187,”pd”:-42,”pw”:2,”pl”:1,”pt”:0,”champ”:false,”rank”:8},{“season”:”Spring 2024″,”team”:”Smith”,”qb”:”Michael Smith”,”w”:3,”l”:4,”t”:0,”pf”:124,”pa”:154,”pd”:-30,”pw”:0,”pl”:3,”pt”:0,”champ”:false,”rank”:5},{“season”:”Spring 2024″,”team”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”w”:3,”l”:4,”t”:0,”pf”:175,”pa”:192,”pd”:-17,”pw”:1,”pl”:2,”pt”:0,”champ”:false,”rank”:4},{“season”:”Spring 2024″,”team”:”Valin”,”qb”:”Bryan Valin”,”w”:2,”l”:4,”t”:1,”pf”:123,”pa”:171,”pd”:-48,”pw”:2,”pl”:1,”pt”:0,”champ”:false,”rank”:7},{“season”:”Spring 2024″,”team”:”Rafuse”,”qb”:”Mike Rafuse”,”w”:5,”l”:2,”t”:0,”pf”:177,”pa”:116,”pd”:61,”pw”:1,”pl”:2,”pt”:0,”champ”:false,”rank”:1},{“season”:”Spring 2024″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:2,”l”:4,”t”:1,”pf”:149,”pa”:171,”pd”:-22,”pw”:0,”pl”:3,”pt”:0,”champ”:false,”rank”:6},{“season”:”Fall 2024″,”team”:”Pacas”,”qb”:”Rob Pacas”,”w”:8,”l”:3,”t”:1,”pf”:373,”pa”:257,”pd”:116,”pw”:2,”pl”:0,”pt”:0,”champ”:true,”rank”:1},{“season”:”Fall 2024″,”team”:”Shaw”,”qb”:”Kyle Shaw”,”w”:7,”l”:5,”t”:0,”pf”:279,”pa”:229,”pd”:50,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Fall 2024″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:3,”l”:9,”t”:0,”pf”:212,”pa”:298,”pd”:-86,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:5},{“season”:”Fall 2024″,”team”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”w”:6,”l”:6,”t”:0,”pf”:240,”pa”:264,”pd”:-24,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:3},{“season”:”Fall 2024″,”team”:”Stu”,”qb”:”Stu McNeill”,”w”:5,”l”:6,”t”:1,”pf”:199,”pa”:255,”pd”:-56,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:4},{“season”:”Spring 2025″,”team”:”Glavic”,”qb”:”Marko Glavic”,”w”:6,”l”:0,”t”:0,”pf”:197,”pa”:74,”pd”:123,”pw”:2,”pl”:0,”pt”:0,”champ”:true,”rank”:1},{“season”:”Spring 2025″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:2,”l”:3,”t”:1,”pf”:167,”pa”:167,”pd”:0,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Spring 2025″,”team”:”Pacas”,”qb”:”Rob Pacas”,”w”:2,”l”:4,”t”:0,”pf”:142,”pa”:179,”pd”:-37,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:3},{“season”:”Spring 2025″,”team”:”Ruest”,”qb”:”Shane Ruest”,”w”:1,”l”:4,”t”:1,”pf”:100,”pa”:186,”pd”:-86,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:4},{“season”:”Spring 2026″,”team”:”Pacas”,”qb”:”Rob Pacas”,”w”:7,”l”:0,”t”:0,”pf”:250,”pa”:150,”pd”:100,”pw”:2,”pl”:0,”pt”:0,”champ”:true,”rank”:1},{“season”:”Spring 2026″,”team”:”Glavic”,”qb”:”Marko Glavic”,”w”:4,”l”:3,”t”:0,”pf”:174,”pa”:166,”pd”:8,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:3},{“season”:”Spring 2026″,”team”:”Toi”,”qb”:”Toi Simon”,”w”:2,”l”:6,”t”:0,”pf”:193,”pa”:253,”pd”:-60,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:7},{“season”:”Spring 2026″,”team”:”Clarke”,”qb”:”Germaine Clarke”,”w”:4,”l”:3,”t”:0,”pf”:186,”pa”:156,”pd”:30,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:2},{“season”:”Spring 2026″,”team”:”Jeff”,”qb”:”Jeff Paras”,”w”:3,”l”:4,”t”:0,”pf”:148,”pa”:155,”pd”:-7,”pw”:1,”pl”:1,”pt”:0,”champ”:false,”rank”:4},{“season”:”Spring 2026″,”team”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”w”:2,”l”:5,”t”:0,”pf”:168,”pa”:227,”pd”:-59,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:6},{“season”:”Spring 2026″,”team”:”Heaney”,”qb”:”Andrew Heaney”,”w”:3,”l”:4,”t”:0,”pf”:157,”pa”:169,”pd”:-12,”pw”:0,”pl”:1,”pt”:0,”champ”:false,”rank”:5}],”champs”:[{“season”:”Spring 2023″,”champ”:”Ruest”,”qb”:”Shane Ruest”,”runner”:”Scoop”,”rqb”:”Chad \”Scoop\” Mallen”,”score”:”38-28″},{“season”:”Fall 2023″,”champ”:”Scoop”,”qb”:”Chad \”Scoop\” Mallen”,”runner”:”Valin”,”rqb”:”Bryan Valin”,”score”:”23-14″},{“season”:”Spring 2024″,”champ”:”Glavic”,”qb”:”Marko Glavic”,”runner”:”Pacas”,”rqb”:”Rob Pacas”,”score”:”38-28″},{“season”:”Fall 2024″,”champ”:”Pacas”,”qb”:”Rob Pacas”,”runner”:”Shaw”,”rqb”:”Kyle Shaw”,”score”:”17-8″},{“season”:”Spring 2025″,”champ”:”Glavic”,”qb”:”Marko Glavic”,”runner”:”Toi”,”rqb”:”Toi Simon”,”score”:”36-32″},{“season”:”Spring 2026″,”champ”:”Pacas”,”qb”:”Rob Pacas”,”runner”:”Glavic”,”rqb”:”Marko Glavic”,”score”:”36-23″}]};
const SEASONS = [“Spring 2023″,”Fall 2023″,”Spring 2024″,”Fall 2024″,”Spring 2025″,”Spring 2026”];
const recs = ROWS.map(r => ({season:r[0],name:r[1],team:r[2],td:r[3],fg:r[4],xp:r[5],int:r[6],sck:r[7],saf:r[8],pts:r[9]}));
const byPlayer = new Map();
for (const r of […recs].sort((a,b)=>SEASONS.indexOf(a.season)-SEASONS.indexOf(b.season))) {
let p = byPlayer.get(r.name);
if (!p) { p = {name:r.name,seasons:[],teams:[],td:0,fg:0,xp:0,int:0,sck:0,saf:0,pts:0}; byPlayer.set(r.name,p); }
p.seasons.push(r); if (!p.teams.includes(r.team)) p.teams.push(r.team);
for (const k of [“td”,”fg”,”xp”,”int”,”sck”,”saf”,”pts”]) p[k] += (r[k]||0);
}
const players = […byPlayer.values()].map(p => ({…p, n:p.seasons.length, first:p.seasons[0].season, last:p.seasons.at(-1).season, ppg:Math.round(p.pts/p.seasons.length*10)/10}));

const fmt = v => v===null||v===undefined ? “–” : (Number.isInteger(v) ? v : v.toFixed(1));
const esc = s => String(s).replace(/[&”]/g, c => ({“&”:”&”,””:”>”,’”‘:”"”}[c]));

// leaders
function leader(label, key, unit){
const best = […players].sort((a,b)=>b[key]-a[key] || b.pts-a.pts)[0];
return `

${label}
${fmt(best[key])}
${esc(best.name)}

`;
}
const bestSeason = […recs].sort((a,b)=>b.pts-a.pts)[0];
document.getElementById(“leaders”).innerHTML =
leader(“All-time points”,”pts”) + leader(“All-time touchdowns”,”td”) + leader(“All-time interceptions”,”int”) +
`

Best single season
${bestSeason.pts}
${esc(bestSeason.name)}
${bestSeason.season}

`;

const state = {view:”all”, sort:”pts”, asc:false, q:””, season:”all”};
const COLS = {
all: [[“rank”,”#”,””],[“name”,”Player”,”l”],[“n”,”Seasons”,””],[“teams”,”Teams”,”l”],[“td”,”TD”,””],[“fg”,”FG”,””],[“xp”,”Convert”,””],[“int”,”INT”,””],[“sck”,”Sacks”,””],[“saf”,”Safety”,””],[“pts”,”Points”,””],[“ppg”,”Pts / Season”,””]],
season: [[“name”,”Player”,”l”],[“team”,”Team”,”l”],[“td”,”TD”,””],[“fg”,”FG”,””],[“xp”,”Convert”,””],[“int”,”INT”,””],[“sck”,”Sacks”,””],[“saf”,”Safety”,””],[“pts”,”Points”,””]]
};
const sel = document.getElementById(“season-filter”);
sel.innerHTML = `All seasons` + SEASONS.map(s=>`${s}`).join(“”);

function sorted(list){
const k = state.sort, dir = state.asc ? 1 : -1;
return […list].sort((a,b)=>{
let x=a[k], y=b[k];
if (k===”season”){ x=SEASONS.indexOf(x); y=SEASONS.indexOf(y); }
if (k===”teams”){ x=a.teams.join(); y=b.teams.join(); }
if (x===null) x=-1; if (y===null) y=-1;
if (typeof x===”string”) return x.localeCompare(y)*dir || b.pts-a.pts;
return (x-y)*dir || b.pts-a.pts || a.name.localeCompare(b.name);
});
}
const match = (r) => !state.q || r.name.toLowerCase().includes(state.q) || (r.team||””).toLowerCase().includes(state.q) || (r.teams||[]).some(t=>t.toLowerCase().includes(state.q));

function render(){
const cols = COLS[state.view];
const thead = document.querySelector(“#tbl thead”), tbody = document.querySelector(“#tbl tbody”);
thead.innerHTML = “

” + cols.map(([k,l,c]) => k===”rank” ? `

${l}

` :
`

${l}

`).join(“”) + “

“;
let html = “”, n = 0;
if (state.view === “all”){
// rank by points regardless of sort, ties share a rank
const ranked = […players].sort((a,b)=>b.pts-a.pts); let prev=null, rk=0;
ranked.forEach((p,i)=>{ if(p.pts!==prev){rk=i+1;prev=p.pts;} p.rank=rk; });
for (const p of sorted(players).filter(match)){
n++;
html += `<tr class="${p.rank

${p.rank} ${p.n} ${p.teams.map(t=>`${esc(t)}`).join(“”)} ${p.td} ${fmt(p.fg)} ${fmt(p.xp)} ${fmt(p.int)} ${fmt(p.sck)} ${fmt(p.saf)} ${fmt(p.pts)} ${fmt(p.ppg)}

`;
}
} else {
let list = recs.filter(r => (state.season===”all” || r.season===state.season) && match(r));
list = sorted(list);
const grouped = true;
list.sort((a,b)=>SEASONS.indexOf(a.season)-SEASONS.indexOf(b.season));
let cur = null;
for (const r of list){
n++;
if (grouped && r.season !== cur){ cur = r.season; html += `

${cur}

`; }
html += `

${esc(r.team)} ${r.td} ${fmt(r.fg)} ${fmt(r.xp)} ${fmt(r.int)} ${fmt(r.sck)} ${fmt(r.saf)} ${fmt(r.pts)}

`;
}
}
tbody.innerHTML = html || `

No players match “${esc(state.q)}”.

`;
document.getElementById(“count”).textContent = state.view===”all” ? `${n} players` : `${n} player-seasons`;
}

function showPlayer(name){
const p = byPlayer.get(name); if (!p) return;
const max = Math.max(…p.seasons.map(s=>s.pts), 1);
const bars = SEASONS.map(s => {
const r = p.seasons.find(x=>x.season===s);
const h = r ? Math.max(2, r.pts/max*86) : 0;
return `

${r?r.pts:””}0?”best”:””}” style=”height:${h}px”>${s.replace(” 20″,” ‘”)}

`;
}).join(“”);
const rows = p.seasons.map(r=>`

${r.season} ${esc(r.team)} ${r.td} ${fmt(r.fg)} ${fmt(r.xp)} ${fmt(r.int)} ${fmt(r.sck)} ${fmt(r.saf)} ${fmt(r.pts)}

`).join(“”);
document.getElementById(“panel”).innerHTML = `

${esc(name)}

${p.seasons.length} season${p.seasons.length>1?”s”:””} · ${p.td} TD · ${fmt(p.pts)} points · ${p.teams.join(“, “)}
${rows}

Season Team TD FG Convert INT Sacks Safety Points
Career ${p.td} ${fmt(p.fg)} ${fmt(p.xp)} ${fmt(p.int)} ${fmt(p.sck)} ${fmt(p.saf)} ${fmt(p.pts)}

`;
document.getElementById(“close-panel”).onclick = () => { document.getElementById(“panel”).innerHTML = “”; };
document.getElementById(“panel”).scrollIntoView({behavior: matchMedia(“(prefers-reduced-motion: reduce)”).matches ? “auto” : “smooth”, block:”start”});
}

document.querySelector(“.tabs”).addEventListener(“click”, e => {
const b = e.target.closest(“button”); if (!b) return;
state.view = b.dataset.view; state.sort = “pts”; state.asc = false;
document.querySelectorAll(“.tabs button”).forEach(x => x.setAttribute(“aria-selected”, x===b));
sel.hidden = state.view !== “season”;
render();
});
function sortBy(k){ if (state.sort===k) state.asc=!state.asc; else { state.sort=k; state.asc = [“name”,”team”,”teams”,”season”].includes(k); } render(); }
document.querySelector(“#tbl thead”).addEventListener(“click”, e => { const th = e.target.closest(“th[data-k]”); if (th) sortBy(th.dataset.k); });
document.querySelector(“#tbl thead”).addEventListener(“keydown”, e => { const th = e.target.closest(“th[data-k]”); if (th && (e.key===”Enter”||e.key===” “)){ e.preventDefault(); sortBy(th.dataset.k);} });
document.getElementById(“search”).addEventListener(“input”, e => { state.q = e.target.value.trim().toLowerCase(); render(); });
sel.addEventListener(“change”, e => { state.season = e.target.value; render(); });
document.addEventListener(“click”, e => { const b = e.target.closest(“button.player”); if (b) showPlayer(b.dataset.p); });
render();

// —- Teams & QBs —-
const pct = (w,l,t) => (w+l+t) ? ((w+.5*t)/(w+l+t)).toFixed(3).replace(/^0/,””) : “–”;
const rec = (w,l,t) => `${w}-${l}${t?”-“+t:””}`;
document.getElementById(“champs”).innerHTML = TD.champs.map(c=>`

${c.season}
${esc(c.champ)}
${esc(c.qb)}
Beat ${esc(c.runner)} ${c.score}

`).join(“”);
const tsel = document.getElementById(“tseason”);
tsel.innerHTML = SEASONS.map(s=>`${s}`).join(“”);
const tstate = {view:”standings”, season:SEASONS.at(-1)};
function agg(key, other){
const m = new Map();
for (const t of TD.teamseasons){
let a = m.get(t[key]); if(!a){a={name:t[key],seasons:0,w:0,l:0,t:0,pf:0,pa:0,pw:0,pl:0,pt:0,ch:[],other:[]}; m.set(t[key],a);}
a.seasons++; for (const k of [“w”,”l”,”t”,”pf”,”pa”,”pw”,”pl”,”pt”]) a[k]+=t[k];
if (t.champ) a.ch.push(t.season); if(!a.other.includes(t[other])) a.other.push(t[other]);
}
return […m.values()].sort((a,b)=>b.ch.length-a.ch.length || pct(b.w,b.l,b.t)-pct(a.w,a.l,a.t) || b.w-a.w);
}
function trender(){
const tb = document.getElementById(“ttbl”); tsel.hidden = tstate.view!==”standings”;
let h=””;
if (tstate.view===”standings”){
const rows = TD.teamseasons.filter(t=>t.season===tstate.season).sort((a,b)=>a.rank-b.rank);
h = `

# Team QB W L T Win % PF PA PD Playoffs `+
rows.map(t=>`

${t.rank} ${esc(t.team)} ${esc(t.qb)} ${t.w} ${t.l} ${t.t} ${pct(t.w,t.l,t.t)} ${t.pf} ${t.pa} ${t.pd>0?”+”:””}${t.pd} ${rec(t.pw,t.pl,t.pt)} ${t.champ?’CHAMPION‘:””}

`).join(“”)+”

“;
} else {
const qb = tstate.view===”qbs”, list = agg(qb?”qb”:”team”, qb?”team”:”qb”);
h = `

${qb?”Quarterback”:”Team”} Seasons Reg. Record Win % Playoffs Total

${qb?””:”

PF PA

“}

Titles ${qb?”Teams”:”QBs”} `+
list.map(a=>`

${esc(a.name)} ${a.seasons} ${rec(a.w,a.l,a.t)} ${pct(a.w,a.l,a.t)} ${rec(a.pw,a.pl,a.pt)} ${rec(a.w+a.pw,a.l+a.pl,a.t+a.pt)}

${qb?””:`

${a.pf} ${a.pa}

`}

${a.ch.length?`${a.ch.length} ${a.ch.map(s=>s.replace(” 20″,” ‘”)).join(“, “)}`:”–”} ${a.other.map(o=>`${esc(o)}`).join(“”)}

`).join(“”)+”

“;
}
tb.innerHTML = h;
}
document.getElementById(“ttabs”).addEventListener(“click”, e=>{ const b=e.target.closest(“button”); if(!b) return; tstate.view=b.dataset.tv; document.querySelectorAll(“#ttabs button”).forEach(x=>x.setAttribute(“aria-selected”, x===b)); trender(); });
tsel.addEventListener(“change”, e=>{ tstate.season=e.target.value; trender(); });
document.querySelector(“.sections”).addEventListener(“click”, e=>{ const b=e.target.closest(“button”); if(!b) return;
document.querySelectorAll(“.sections button”).forEach(x=>x.setAttribute(“aria-pressed”, x===b));
document.getElementById(“players-sec”).hidden = b.dataset.sec!==”players”; document.getElementById(“teams-sec”).hidden = b.dataset.sec!==”teams”; });
if (location.hash===”#teams”) document.getElementById(“sec-teams”).click();
trender();