College Football Playoff 2024 projections: How big of a favorite is Ohio State vs. Notre Dame?

College Football Playoff 2024 projections: How big of a favorite is Ohio State vs. Notre Dame?
By Austin Mock
Jan 21, 2025

',p(t,"class","first-round-connector svelte-br3pw6")},m(n,r){W(n,t,r)},d(n){n&&G(t)}}}function si(e){var Ae,ee,ge,ce,De,it,ut,ot,$e,dt,Ge,ht;let t,n,r,o,l,s,i,f,c,u=(((ee=(Ae=e[27])==null?void 0:Ae.top)==null?void 0:ee.bracket_seed)||"")+"",_,g,m,w=(((ce=(ge=e[27])==null?void 0:ge.top)==null?void 0:ce.team_name)||"")+"",v,k,b,C,S,z,A,j,P,E,T,L,I,D=(((it=(De=e[27])==null?void 0:De.bottom)==null?void 0:it.bracket_seed)||"")+"",R,$,Y,se=(((ot=(ut=e[27])==null?void 0:ut.bottom)==null?void 0:ot.team_name)||"")+"",re,ie,ne,K,pe,ye,Z,ke,Q,_e,Re,q,ae,oe,fe=!!((dt=($e=e[27])==null?void 0:$e.top)!=null&&dt.logo)&&oi(e);const Fe=[j1,R1],He=[];function xe(ue,Me){var Be,F,te,Xe;return((F=(Be=ue[27])==null?void 0:Be.top)==null?void 0:F.form)==="UpArrow"?0:((Xe=(te=ue[27])==null?void 0:te.top)==null?void 0:Xe.form)==="DownArrow"?1:-1}~(C=xe(e))&&(S=He[C]=Fe[C](e));let B=!!((ht=(Ge=e[27])==null?void 0:Ge.bottom)!=null&&ht.logo)&&li(e);const he=[D1,$1],je=[];function Ee(ue,Me){var Be,F,te,Xe;return((F=(Be=ue[27])==null?void 0:Be.bottom)==null?void 0:F.form)==="UpArrow"?0:((Xe=(te=ue[27])==null?void 0:te.bottom)==null?void 0:Xe.form)==="DownArrow"?1:-1}~(K=Ee(e))&&(pe=je[K]=he[K](e));let qe=e[23]===0&&x1();return{c(){var ue,Me,Be,F;t=M("div"),n=M("div"),r=N(),o=M("div"),l=M("div"),s=M("div"),i=M("div"),fe&&fe.c(),f=N(),c=M("div"),_=X(u),g=N(),m=M("div"),v=X(w),k=N(),b=M("div"),S&&S.c(),A=N(),j=M("div"),P=N(),E=M("div"),T=M("div"),B&&B.c(),L=N(),I=M("div"),R=X(D),$=N(),Y=M("div"),re=X(se),ie=N(),ne=M("div"),pe&&pe.c(),Z=N(),ke=M("div"),Q=N(),qe&&qe.c(),_e=N(),Re=M("div"),ae=N(),p(n,"class","connector-line svelte-br3pw6"),p(n,"style",`${e[23]?"":"background-color: transparent;"}${e[23]===1?"position: relative; top: 25px;":""}`),p(c,"class","seed seed-baseline svelte-br3pw6"),p(m,"class","team-name svelte-br3pw6"),p(i,"class","team-info svelte-br3pw6"),p(b,"class","bracket-logo-img form-wrapper"),p(b,"style",z=(Me=(ue=e[27])==null?void 0:ue.top)!=null&&Me.form?"":"display: none;"),p(s,"class","team-container-outer svelte-br3pw6"),p(j,"class","team-container-divider svelte-br3pw6"),p(I,"class","seed seed-baseline svelte-br3pw6"),p(Y,"class","team-name svelte-br3pw6"),p(T,"class","team-info svelte-br3pw6"),p(ne,"class","bracket-logo-img form-wrapper"),p(ne,"style",ye=(F=(Be=e[27])==null?void 0:Be.bottom)!=null&&F.form?"":"display: none;"),p(E,"class","team-container-outer svelte-br3pw6"),p(l,"class","game-container cfb-game-container svelte-br3pw6"),p(ke,"class",xn(!!e[23]&&"connector-line")+" svelte-br3pw6"),p(ke,"style",`${e[25]==="Championship"?"background-color: transparent;":""}`),p(Re,"class",xn(!!e[23]&&!["Championship"].includes(e[25])&&"connector-bracket pre-game-connector")+" svelte-br3pw6"),p(Re,"style",q=`height: ${1/e[5][e[25]].length*300}px; top: ${e[29]%2===0?1/e[5][e[25]].length*150:-(1/e[5][e[25]].length)*150}px; ${e[23]===e[9].length-1?"border: transparent;":""}`),p(o,"class","game-container-inner svelte-br3pw6"),p(t,"class","game-with-connectors svelte-br3pw6")},m(ue,Me){W(ue,t,Me),h(t,n),h(t,r),h(t,o),h(o,l),h(l,s),h(s,i),fe&&fe.m(i,null),h(i,f),h(i,c),h(c,_),h(i,g),h(i,m),h(m,v),h(s,k),h(s,b),~C&&He[C].m(b,null),h(l,A),h(l,j),h(l,P),h(l,E),h(E,T),B&&B.m(T,null),h(T,L),h(T,I),h(I,R),h(T,$),h(T,Y),h(Y,re),h(E,ie),h(E,ne),~K&&je[K].m(ne,null),h(o,Z),h(o,ke),h(o,Q),qe&&qe.m(o,null),h(o,_e),h(o,Re),h(t,ae),oe=!0},p(ue,Me){var te,Xe,Je,Qe,We,V,Ie,Oe,Et,tn,nn,rn,Rt,cn,Nt,Cn;(Xe=(te=ue[27])==null?void 0:te.top)!=null&&Xe.logo?fe?fe.p(ue,Me):(fe=oi(ue),fe.c(),fe.m(i,f)):fe&&(fe.d(1),fe=null),(!oe||Me&32)&&u!==(u=(((Qe=(Je=ue[27])==null?void 0:Je.top)==null?void 0:Qe.bracket_seed)||"")+"")&&be(_,u),(!oe||Me&32)&&w!==(w=(((V=(We=ue[27])==null?void 0:We.top)==null?void 0:V.team_name)||"")+"")&&be(v,w);let Be=C;C=xe(ue),C!==Be&&(S&&(lt(),J(He[Be],1,1,()=>{He[Be]=null}),st()),~C?(S=He[C],S||(S=He[C]=Fe[C](ue),S.c()),U(S,1),S.m(b,null)):S=null),(!oe||Me&32&&z!==(z=(Oe=(Ie=ue[27])==null?void 0:Ie.top)!=null&&Oe.form?"":"display: none;"))&&p(b,"style",z),(tn=(Et=ue[27])==null?void 0:Et.bottom)!=null&&tn.logo?B?B.p(ue,Me):(B=li(ue),B.c(),B.m(T,L)):B&&(B.d(1),B=null),(!oe||Me&32)&&D!==(D=(((rn=(nn=ue[27])==null?void 0:nn.bottom)==null?void 0:rn.bracket_seed)||"")+"")&&be(R,D),(!oe||Me&32)&&se!==(se=(((cn=(Rt=ue[27])==null?void 0:Rt.bottom)==null?void 0:cn.team_name)||"")+"")&&be(re,se);let F=K;K=Ee(ue),K!==F&&(pe&&(lt(),J(je[F],1,1,()=>{je[F]=null}),st()),~K?(pe=je[K],pe||(pe=je[K]=he[K](ue),pe.c()),U(pe,1),pe.m(ne,null)):pe=null),(!oe||Me&32&&ye!==(ye=(Cn=(Nt=ue[27])==null?void 0:Nt.bottom)!=null&&Cn.form?"":"display: none;"))&&p(ne,"style",ye),(!oe||Me&32&&q!==(q=`height: ${1/ue[5][ue[25]].length*300}px; top: ${ue[29]%2===0?1/ue[5][ue[25]].length*150:-(1/ue[5][ue[25]].length)*150}px; ${ue[23]===ue[9].length-1?"border: transparent;":""}`))&&p(Re,"style",q)},i(ue){oe||(U(S),U(pe),oe=!0)},o(ue){J(S),J(pe),oe=!1},d(ue){ue&&G(t),fe&&fe.d(),~C&&He[C].d(),B&&B.d(),~K&&je[K].d(),qe&&qe.d()}}}function ii(e){let t,n,r,o=(e[23]+1J(g[w],1,1,()=>{g[w]=null});return{c(){t=M("div"),n=M("p"),r=X(" "),l=X(o),s=X(" "),i=N(),f=M("div");for(let w=0;wJ(o[s],1,1,()=>{o[s]=null});return{c(){for(let s=0;sJ(u[v],1,1,()=>{u[v]=null});let g=Ue(e[6]),m=[];for(let v=0;vJ(m[v],1,1,()=>{m[v]=null});return{c(){t=M("div"),n=M("div"),n.textContent=`${V1}`,r=N(),o=M("div"),l=M("div");for(let v=0;v{v[z]=null}),st()),~s?(i=v[s],i||(i=v[s]=w[s](C),i.c()),U(i,1),i.m(l,null)):i=null),(!m||S&64)&&u!==(u=((j=C[21])==null?void 0:j.team_name)+"")&&be(_,u)},i(C){m||(U(i),m=!0)},o(C){J(i),m=!1},d(C){C&&G(t),~s&&v[s].d()}}}function G1(e){let t,n;return t=new lo({}),{c(){Ze(t.$$.fragment)},m(r,o){Ke(t,r,o),n=!0},i(r){n||(U(t.$$.fragment,r),n=!0)},o(r){J(t.$$.fragment,r),n=!1},d(r){Ve(t,r)}}}function W1(e){let t,n;return t=new oo({}),{c(){Ze(t.$$.fragment)},m(r,o){Ke(t,r,o),n=!0},i(r){n||(U(t.$$.fragment,r),n=!0)},o(r){J(t.$$.fragment,r),n=!1},d(r){Ve(t,r)}}}function ci(e){let t,n,r=e[23]<3&&q1(e);return{c(){r&&r.c(),t=dr()},m(o,l){r&&r.m(o,l),W(o,t,l),n=!0},p(o,l){o[23]<3&&r.p(o,l)},i(o){n||(U(r),n=!0)},o(o){J(r),n=!1},d(o){o&&G(t),r&&r.d(o)}}}function U1(e){var b;let t,n,r,o,l,s,i,f,c,u=((b=e[21])==null?void 0:b.team_name)+"",_,g,m;const w=[Y1,X1],v=[];function k(C,S){var z,A;return((z=C[21])==null?void 0:z.form)==="UpArrow"?0:((A=C[21])==null?void 0:A.form)==="DownArrow"?1:-1}return~(s=k(e))&&(i=v[s]=w[s](e)),{c(){var C;t=M("div"),n=M("div"),o=N(),l=M("div"),i&&i.c(),f=N(),c=M("div"),_=X(u),g=N(),p(n,"style",r=`background-image: url("${(C=e[21])==null?void 0:C.logo}");`),p(n,"class","external-team-logo svelte-br3pw6"),p(l,"class","form-wrapper bracket-logo-img external-indicator svelte-br3pw6"),p(c,"class","team-name svelte-br3pw6"),p(t,"class","external-game-container svelte-br3pw6")},m(C,S){W(C,t,S),h(t,n),h(t,o),h(t,l),~s&&v[s].m(l,null),h(t,f),h(t,c),h(c,_),h(t,g),m=!0},p(C,S){var A,j;(!m||S&64&&r!==(r=`background-image: url("${(A=C[21])==null?void 0:A.logo}");`))&&p(n,"style",r);let z=s;s=k(C),s!==z&&(i&&(lt(),J(v[z],1,1,()=>{v[z]=null}),st()),~s?(i=v[s],i||(i=v[s]=w[s](C),i.c()),U(i,1),i.m(l,null)):i=null),(!m||S&64)&&u!==(u=((j=C[21])==null?void 0:j.team_name)+"")&&be(_,u)},i(C){m||(U(i),m=!0)},o(C){J(i),m=!1},d(C){C&&G(t),~s&&v[s].d()}}}function X1(e){let t,n;return t=new lo({}),{c(){Ze(t.$$.fragment)},m(r,o){Ke(t,r,o),n=!0},i(r){n||(U(t.$$.fragment,r),n=!0)},o(r){J(t.$$.fragment,r),n=!1},d(r){Ve(t,r)}}}function Y1(e){let t,n;return t=new oo({}),{c(){Ze(t.$$.fragment)},m(r,o){Ke(t,r,o),n=!0},i(r){n||(U(t.$$.fragment,r),n=!0)},o(r){J(t.$$.fragment,r),n=!1},d(r){Ve(t,r)}}}function ui(e){let t,n,r=e[23]>2&&U1(e);return{c(){r&&r.c(),t=dr()},m(o,l){r&&r.m(o,l),W(o,t,l),n=!0},p(o,l){o[23]>2&&r.p(o,l)},i(o){n||(U(r),n=!0)},o(o){J(r),n=!1},d(o){o&&G(t),r&&r.d(o)}}}function K1(e){let t,n=e[8],r,o,l,s,i;lr(e[15]);let f=ai(e),c=e[6].length>0&&fi(e);return{c(){t=M("div"),f.c(),r=N(),c&&c.c(),o=dr(),p(t,"class","carousel-container svelte-br3pw6")},m(u,_){W(u,t,_),f.m(t,null),e[19](t),W(u,r,_),c&&c.m(u,_),W(u,o,_),l=!0,s||(i=Pe(Oa,"resize",e[15]),s=!0)},p(u,[_]){_&256&&ct(n,n=u[8])?(lt(),J(f,1,1,Le),st(),f=ai(u),f.c(),U(f,1),f.m(t,null)):f.p(u,_),u[6].length>0?c?(c.p(u,_),_&64&&U(c,1)):(c=fi(u),c.c(),U(c,1),c.m(o.parentNode,o)):c&&(lt(),J(c,1,1,()=>{c=null}),st())},i(u){l||(U(f),U(c),l=!0)},o(u){J(f),J(c),l=!1},d(u){u&&(G(t),G(r),G(o)),f.d(u),e[19](null),c&&c.d(u),s=!1,i()}}}const V1="Teams on the bubble";function Z1(e,t,n){let r,o,l,s,{forecast:i}=t,{lastForecast:f}=t,c=0,u=0;const _=["First Round","Second Round","Semifinals","Championship"];let g,m;function w(){n(8,r=u>1e3?4.3:u>850?3.3:u>600?2.3:1.3)}function v(E){if(n(0,c=E),E===0||E===_.length-1||r!==1.3){n(7,o=0);return}const T=g.getBoundingClientRect().width,L=m.getBoundingClientRect().width;n(7,o=(L-T)/2)}let k;function b(){k.goToPrev()}function C(){k.goToNext()}vl(()=>(w(),window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)}));function S(){n(1,u=Oa.innerWidth)}function z(E){Ye[E?"unshift":"push"](()=>{g=E,n(2,g)})}function A(E){Ye[E?"unshift":"push"](()=>{k=E,n(4,k)})}const j=E=>v(E.detail);function P(E){Ye[E?"unshift":"push"](()=>{m=E,n(3,m)})}return e.$$set=E=>{"forecast"in E&&n(13,i=E.forecast),"lastForecast"in E&&n(14,f=E.lastForecast)},e.$$.update=()=>{e.$$.dirty&24576&&n(6,l=i.filter(E=>!!(E!=null&&E.bracket_seed)&&E.bracket_seed>12).map(E=>At({teamRow:E,lastForecast:f})).sort((E,T)=>E.bracket_seed-T.bracket_seed)),e.$$.dirty&24576&&n(5,s=dd({forecast:i,lastForecast:f}))},n(8,r=2.3),n(7,o=0),[c,u,g,m,k,s,l,o,r,_,v,b,C,i,f,S,z,A,j,P]}class J1 extends kt{constructor(t){super(),yt(this,t,Z1,K1,ct,{forecast:13,lastForecast:14})}}const{window:Na}=Pi;function di(e,t,n){const r=e.slice();return r[26]=t[n],r[28]=n,r}function hi(e,t,n){var s,i,f,c,u,_;const r=e.slice();r[29]=t[n],r[33]=n;const o=((i=(s=r[29])==null?void 0:s.top)==null?void 0:i.team)===((f=r[0])==null?void 0:f.team);r[30]=o;const l=((u=(c=r[29])==null?void 0:c.bottom)==null?void 0:u.team)===((_=r[0])==null?void 0:_.team);return r[31]=l,r}function pi(e){let t,n;return{c(){var r,o;t=M("div"),p(t,"style",n=`background-image: url("${(o=(r=e[29])==null?void 0:r.top)==null?void 0:o.logo}");`),p(t,"class","team-logo svelte-br3pw6")},m(r,o){W(r,t,o)},p(r,o){var l,s;o[0]&64&&n!==(n=`background-image: url("${(s=(l=r[29])==null?void 0:l.top)==null?void 0:s.logo}");`)&&p(t,"style",n)},d(r){r&&G(t)}}}function _i(e){var o,l;let t,n=((l=(o=e[29])==null?void 0:o.top)==null?void 0:l.display[e[6][e[26]].odds_col])+"",r;return{c(){var s,i,f,c,u,_,g,m;t=M("div"),r=X(n),p(t,"class","team-odds svelte-br3pw6"),H(t,"--bg-color",(i=(s=e[29])==null?void 0:s.top)==null?void 0:i.colors[e[6][e[26]].odds_col].bg),H(t,"--bg-dark-color",(c=(f=e[29])==null?void 0:f.top)==null?void 0:c.colors_dark[e[6][e[26]].odds_col].bg),H(t,"--text-color",(_=(u=e[29])==null?void 0:u.top)==null?void 0:_.colors[e[6][e[26]].odds_col].text),H(t,"--text-dark-color",(m=(g=e[29])==null?void 0:g.top)==null?void 0:m.colors_dark[e[6][e[26]].odds_col].text)},m(s,i){W(s,t,i),h(t,r)},p(s,i){var f,c,u,_,g,m,w,v,k,b;i[0]&64&&n!==(n=((c=(f=s[29])==null?void 0:f.top)==null?void 0:c.display[s[6][s[26]].odds_col])+"")&&be(r,n),i[0]&64&&H(t,"--bg-color",(_=(u=s[29])==null?void 0:u.top)==null?void 0:_.colors[s[6][s[26]].odds_col].bg),i[0]&64&&H(t,"--bg-dark-color",(m=(g=s[29])==null?void 0:g.top)==null?void 0:m.colors_dark[s[6][s[26]].odds_col].bg),i[0]&64&&H(t,"--text-color",(v=(w=s[29])==null?void 0:w.top)==null?void 0:v.colors[s[6][s[26]].odds_col].text),i[0]&64&&H(t,"--text-dark-color",(b=(k=s[29])==null?void 0:k.top)==null?void 0:b.colors_dark[s[6][s[26]].odds_col].text)},d(s){s&&G(t)}}}function Q1(e){var S,z,A,j,P,E;let t,n,r,o,l,s,i=(((z=(S=e[29])==null?void 0:S.bottom)==null?void 0:z.bracket_seed)||"")+"",f,c,u,_=(((j=(A=e[29])==null?void 0:A.bottom)==null?void 0:j.team_name)||"")+"",g,m,w,v,k=!!((E=(P=e[29])==null?void 0:P.bottom)!=null&&E.logo)&&gi(e),b=e[31]&&mi(e);function C(){return e[19](e[29],e[26])}return{c(){var T,L;t=M("div"),n=N(),r=M("div"),o=M("div"),k&&k.c(),l=N(),s=M("div"),f=X(i),c=N(),u=M("div"),g=X(_),m=N(),b&&b.c(),p(t,"class","team-container-divider svelte-br3pw6"),p(s,"class","seed seed-baseline svelte-br3pw6"),p(u,"class","team-name svelte-br3pw6"),p(o,"class","team-info svelte-br3pw6"),de(o,"lost",((L=(T=e[29])==null?void 0:T.bottom)==null?void 0:L[e[6][e[26]].next_col])===0),p(r,"class","team-container-outer svelte-br3pw6"),p(r,"role","graphics-symbol"),de(r,"active-team",e[31])},m(T,L){W(T,t,L),W(T,n,L),W(T,r,L),h(r,o),k&&k.m(o,null),h(o,l),h(o,s),h(s,f),h(o,c),h(o,u),h(u,g),h(r,m),b&&b.m(r,null),w||(v=Pe(r,"mousemove",C),w=!0)},p(T,L){var I,D,R,$,Y,se,re,ie;e=T,(D=(I=e[29])==null?void 0:I.bottom)!=null&&D.logo?k?k.p(e,L):(k=gi(e),k.c(),k.m(o,l)):k&&(k.d(1),k=null),L[0]&64&&i!==(i=((($=(R=e[29])==null?void 0:R.bottom)==null?void 0:$.bracket_seed)||"")+"")&&be(f,i),L[0]&64&&_!==(_=(((se=(Y=e[29])==null?void 0:Y.bottom)==null?void 0:se.team_name)||"")+"")&&be(g,_),L[0]&576&&de(o,"lost",((ie=(re=e[29])==null?void 0:re.bottom)==null?void 0:ie[e[6][e[26]].next_col])===0),e[31]?b?b.p(e,L):(b=mi(e),b.c(),b.m(r,null)):b&&(b.d(1),b=null),L[0]&577&&de(r,"active-team",e[31])},d(T){T&&(G(t),G(n),G(r)),k&&k.d(),b&&b.d(),w=!1,v()}}}function gi(e){let t,n;return{c(){var r,o;t=M("div"),p(t,"style",n=`background-image: url("${(o=(r=e[29])==null?void 0:r.bottom)==null?void 0:o.logo}");`),p(t,"class","team-logo svelte-br3pw6")},m(r,o){W(r,t,o)},p(r,o){var l,s;o[0]&64&&n!==(n=`background-image: url("${(s=(l=r[29])==null?void 0:l.bottom)==null?void 0:s.logo}");`)&&p(t,"style",n)},d(r){r&&G(t)}}}function mi(e){var o,l;let t,n=((l=(o=e[29])==null?void 0:o.bottom)==null?void 0:l.display[e[6][e[26]].odds_col])+"",r;return{c(){var s,i,f,c,u,_,g,m;t=M("div"),r=X(n),p(t,"class","team-odds svelte-br3pw6"),H(t,"--bg-color",(i=(s=e[29])==null?void 0:s.bottom)==null?void 0:i.colors[e[6][e[26]].odds_col].bg),H(t,"--bg-dark-color",(c=(f=e[29])==null?void 0:f.bottom)==null?void 0:c.colors_dark[e[6][e[26]].odds_col].bg),H(t,"--text-color",(_=(u=e[29])==null?void 0:u.bottom)==null?void 0:_.colors[e[6][e[26]].odds_col].text),H(t,"--text-dark-color",(m=(g=e[29])==null?void 0:g.bottom)==null?void 0:m.colors_dark[e[6][e[26]].odds_col].text)},m(s,i){W(s,t,i),h(t,r)},p(s,i){var f,c,u,_,g,m,w,v,k,b;i[0]&64&&n!==(n=((c=(f=s[29])==null?void 0:f.bottom)==null?void 0:c.display[s[6][s[26]].odds_col])+"")&&be(r,n),i[0]&64&&H(t,"--bg-color",(_=(u=s[29])==null?void 0:u.bottom)==null?void 0:_.colors[s[6][s[26]].odds_col].bg),i[0]&64&&H(t,"--bg-dark-color",(m=(g=s[29])==null?void 0:g.bottom)==null?void 0:m.colors_dark[s[6][s[26]].odds_col].bg),i[0]&64&&H(t,"--text-color",(v=(w=s[29])==null?void 0:w.bottom)==null?void 0:v.colors[s[6][s[26]].odds_col].text),i[0]&64&&H(t,"--text-dark-color",(b=(k=s[29])==null?void 0:k.bottom)==null?void 0:b.colors_dark[s[6][s[26]].odds_col].text)},d(s){s&&G(t)}}}function eh(e){let t,n,r,o;return{c(){t=M("div"),n=M("div"),r=N(),o=M("div"),p(n,"class","first-round-line first-round-top svelte-br3pw6"),de(n,"highlight",e[30]&&e[0][e[6][e[26]].next_col]!==0),p(o,"class","first-round-line first-round-bottom svelte-br3pw6"),de(o,"highlight",e[31]&&e[0][e[6][e[26]].next_col]!==0),p(t,"class","first-round-connector svelte-br3pw6")},m(l,s){W(l,t,s),h(t,n),h(t,r),h(t,o)},p(l,s){s[0]&577&&de(n,"highlight",l[30]&&l[0][l[6][l[26]].next_col]!==0),s[0]&577&&de(o,"highlight",l[31]&&l[0][l[6][l[26]].next_col]!==0)},d(l){l&&G(t)}}}function bi(e){var se,re,ie,ne,K,pe;let t,n,r,o,l,s,i,f,c,u=(((re=(se=e[29])==null?void 0:se.top)==null?void 0:re.bracket_seed)||"")+"",_,g,m,w=(((ne=(ie=e[29])==null?void 0:ie.top)==null?void 0:ne.team_name)||"")+"",v,k,b,C,S,z,A,j,P,E,T,L,I=!!((pe=(K=e[29])==null?void 0:K.top)!=null&&pe.logo)&&pi(e),D=e[30]&&_i(e);function R(){return e[18](e[29],e[26])}let $=e[26]!=="Champion"&&Q1(e),Y=e[28]===0&&eh(e);return{c(){var ye,Z;t=M("div"),n=M("div"),r=N(),o=M("div"),l=M("div"),s=M("div"),i=M("div"),I&&I.c(),f=N(),c=M("div"),_=X(u),g=N(),m=M("div"),v=X(w),k=N(),D&&D.c(),b=N(),$&&$.c(),C=N(),S=M("div"),z=N(),Y&&Y.c(),A=N(),j=M("div"),E=N(),p(n,"class","connector-line svelte-br3pw6"),p(n,"style",`${e[28]?"":"background-color: transparent;"}${e[28]===1?"position: relative; top: 25px;":""}`),de(n,"highlight",e[26]==="Second Round"?e[31]:e[30]||e[31]),p(c,"class","seed seed-baseline svelte-br3pw6"),p(m,"class","team-name svelte-br3pw6"),p(i,"class","team-info svelte-br3pw6"),de(i,"lost",((Z=(ye=e[29])==null?void 0:ye.top)==null?void 0:Z[e[6][e[26]].next_col])===0),p(s,"class","team-container-outer svelte-br3pw6"),p(s,"role","graphics-symbol"),de(s,"active-team",e[30]),p(l,"class","game-container cfb-game-container "+(e[26]==="Champion"&&"one-game")+" svelte-br3pw6"),p(S,"class",xn(!!e[28]&&"connector-line")+" svelte-br3pw6"),p(S,"style",`${e[26]==="Championship"?"background-color: transparent;":""}`),de(S,"highlight",(e[30]||e[31])&&e[0][e[6][e[26]].next_col]!==0),p(j,"class",xn(!!e[28]&&!["Championship","Champion"].includes(e[26])&&"connector-bracket pre-game-connector")+" svelte-br3pw6"),p(j,"style",P=`height: ${1/e[6][e[26]].games.length*300}px; top: ${e[33]%2===0?1/e[6][e[26]].games.length*150:-(1/e[6][e[26]].games.length)*150}px; ${e[28]===e[9].length-1?"background-color: transparent;":""}`),de(j,"highlight",(e[30]||e[31])&&e[0][e[6][e[26]].next_col]!==0),p(o,"class","game-container-inner "+(e[26]==="Champion"&&"one-game")+" svelte-br3pw6"),p(t,"class","game-with-connectors svelte-br3pw6")},m(ye,Z){W(ye,t,Z),h(t,n),h(t,r),h(t,o),h(o,l),h(l,s),h(s,i),I&&I.m(i,null),h(i,f),h(i,c),h(c,_),h(i,g),h(i,m),h(m,v),h(s,k),D&&D.m(s,null),h(l,b),$&&$.m(l,null),h(o,C),h(o,S),h(o,z),Y&&Y.m(o,null),h(o,A),h(o,j),h(t,E),T||(L=Pe(s,"mousemove",R),T=!0)},p(ye,Z){var ke,Q,_e,Re,q,ae,oe,fe;e=ye,Z[0]&577&&de(n,"highlight",e[26]==="Second Round"?e[31]:e[30]||e[31]),(Q=(ke=e[29])==null?void 0:ke.top)!=null&&Q.logo?I?I.p(e,Z):(I=pi(e),I.c(),I.m(i,f)):I&&(I.d(1),I=null),Z[0]&64&&u!==(u=(((Re=(_e=e[29])==null?void 0:_e.top)==null?void 0:Re.bracket_seed)||"")+"")&&be(_,u),Z[0]&64&&w!==(w=(((ae=(q=e[29])==null?void 0:q.top)==null?void 0:ae.team_name)||"")+"")&&be(v,w),Z[0]&576&&de(i,"lost",((fe=(oe=e[29])==null?void 0:oe.top)==null?void 0:fe[e[6][e[26]].next_col])===0),e[30]?D?D.p(e,Z):(D=_i(e),D.c(),D.m(s,null)):D&&(D.d(1),D=null),Z[0]&577&&de(s,"active-team",e[30]),e[26]!=="Champion"&&$.p(e,Z),Z[0]&577&&de(S,"highlight",(e[30]||e[31])&&e[0][e[6][e[26]].next_col]!==0),e[28]===0&&Y.p(e,Z),Z[0]&64&&P!==(P=`height: ${1/e[6][e[26]].games.length*300}px; top: ${e[33]%2===0?1/e[6][e[26]].games.length*150:-(1/e[6][e[26]].games.length)*150}px; ${e[28]===e[9].length-1?"background-color: transparent;":""}`)&&p(j,"style",P),Z[0]&577&&de(j,"highlight",(e[30]||e[31])&&e[0][e[6][e[26]].next_col]!==0)},d(ye){ye&&G(t),I&&I.d(),D&&D.d(),$&&$.d(),Y&&Y.d(),T=!1,L()}}}function wi(e){let t,n,r,o=(e[28]+11e3?4.3:u>850?3.3:u>600?2.3:1.3)}function v(R){if(n(1,c=R),R===0||R===_.length-1||r!==1.3){n(7,o=0);return}const $=g.getBoundingClientRect().width,Y=m.getBoundingClientRect().width;n(7,o=(Y-$)/2)}let k;function b(){k.goToPrev()}function C(){k.goToNext()}const S=(R,$,Y)=>{const se=R==null?void 0:R[$];if(!se){const ie=f.filter(ne=>R==null?void 0:R[`${$}_seeds`].includes(ne.bracket_seed)).sort((ne,K)=>K[Y]-ne[Y])[0];n(0,s=ie);return}n(0,s=se)},z=()=>{n(0,s=l)};vl(()=>(w(),window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)}));function A(){n(2,u=Na.innerWidth)}const j=(R,$)=>{S(R,"top",i[$].odds_col)},P=(R,$)=>S(R,"bottom",i[$].odds_col);function E(R){Ye[R?"unshift":"push"](()=>{g=R,n(3,g)})}function T(R){Ye[R?"unshift":"push"](()=>{k=R,n(5,k)})}const L=R=>v(R.detail);function I(R){Ye[R?"unshift":"push"](()=>{m=R,n(4,m)})}const D=()=>z();return e.$$set=R=>{"forecast"in R&&n(15,f=R.forecast)},e.$$.update=()=>{e.$$.dirty[0]&32768&&n(16,l=f.toSorted((R,$)=>$.win_final-R.win_final)[0]),e.$$.dirty[0]&65536&&n(0,s=l),e.$$.dirty[0]&32769&&n(6,i=hd({forecast:f,activeTeam:s}))},n(8,r=2.3),n(7,o=0),[s,c,u,g,m,k,i,o,r,_,v,b,C,S,z,f,l,A,j,P,E,T,L,I,D]}class sh extends kt{constructor(t){super(),yt(this,t,lh,oh,ct,{forecast:15},null,[-1,-1])}}function ih(e){let t,n,r,o;function l(f){e[4](f)}function s(f){e[5](f)}let i={};return e[0]!==void 0&&(i.forecast=e[0]),e[1]!==void 0&&(i.lastForecast=e[1]),t=new J1({props:i}),Ye.push(()=>Ot(t,"forecast",l)),Ye.push(()=>Ot(t,"lastForecast",s)),{c(){Ze(t.$$.fragment)},m(f,c){Ke(t,f,c),o=!0},p(f,c){const u={};!n&&c&1&&(n=!0,u.forecast=f[0],Tt(()=>n=!1)),!r&&c&2&&(r=!0,u.lastForecast=f[1],Tt(()=>r=!1)),t.$set(u)},i(f){o||(U(t.$$.fragment,f),o=!0)},o(f){J(t.$$.fragment,f),o=!1},d(f){Ve(t,f)}}}function ah(e){let t,n,r,o,l;function s(f){e[3](f)}let i={};return e[0]!==void 0&&(i.forecast=e[0]),r=new sh({props:i}),Ye.push(()=>Ot(r,"forecast",s)),{c(){t=M("p"),t.innerHTML='Hover/tap to explore each team's odds',n=N(),Ze(r.$$.fragment),p(t,"class","interactive-note svelte-pezfio")},m(f,c){W(f,t,c),W(f,n,c),Ke(r,f,c),l=!0},p(f,c){const u={};!o&&c&1&&(o=!0,u.forecast=f[0],Tt(()=>o=!1)),r.$set(u)},i(f){l||(U(r.$$.fragment,f),l=!0)},o(f){J(r.$$.fragment,f),l=!1},d(f){f&&(G(t),G(n)),Ve(r,f)}}}function fh(e){let t,n,r=e[2].bracket_hed+"",o,l,s,i=e[2].bracket_dek+"",f,c,u,_,g,m;const w=[ah,ih],v=[];function k(b,C){return C&1&&(u=null),u==null&&(u=!!vt(b[0][0])),u?0:1}return _=k(e,-1),g=v[_]=w[_](e),{c(){t=M("div"),n=M("h2"),o=X(r),l=N(),s=M("p"),f=X(i),c=N(),g.c(),p(n,"class","chart-hed svelte-pezfio"),p(s,"class","chart-dek svelte-pezfio"),p(t,"class","bracket-wrapper")},m(b,C){W(b,t,C),h(t,n),h(n,o),h(t,l),h(t,s),h(s,f),h(t,c),v[_].m(t,null),m=!0},p(b,[C]){(!m||C&4)&&r!==(r=b[2].bracket_hed+"")&&be(o,r),(!m||C&4)&&i!==(i=b[2].bracket_dek+"")&&be(f,i);let S=_;_=k(b,C),_===S?v[_].p(b,C):(lt(),J(v[S],1,1,()=>{v[S]=null}),st(),g=v[_],g?g.p(b,C):(g=v[_]=w[_](b),g.c()),U(g,1),g.m(t,null))},i(b){m||(U(g),m=!0)},o(b){J(g),m=!1},d(b){b&&G(t),v[_].d()}}}function ch(e,t,n){let{forecast:r}=t,{lastForecast:o}=t,{editorial:l}=t;function s(c){r=c,n(0,r)}function i(c){r=c,n(0,r)}function f(c){o=c,n(1,o)}return e.$$set=c=>{"forecast"in c&&n(0,r=c.forecast),"lastForecast"in c&&n(1,o=c.lastForecast),"editorial"in c&&n(2,l=c.editorial)},[r,o,l,s,i,f]}class uh extends kt{constructor(t){super(),yt(this,t,ch,fh,ct,{forecast:0,lastForecast:1,editorial:2})}}function yi(e,t,n){const r=e.slice();return r[10]=t[n],r[12]=n,r}function ki(e){let t,n,r=e[12]===0?"most recent":`${e[10].dateLabel} (${e[10].weekDisplay})`,o,l,s;return{c(){t=M("option"),n=X("View "),o=X(r),l=N(),t.selected=e[12]===0,t.__value=s=e[10].week,ql(t,t.__value)},m(i,f){W(i,t,f),h(t,n),h(t,o),h(t,l)},p(i,f){f&1&&r!==(r=i[12]===0?"most recent":`${i[10].dateLabel} (${i[10].weekDisplay})`)&&be(o,r),f&1&&s!==(s=i[10].week)&&(t.__value=s,ql(t,t.__value))},d(i){i&&G(t)}}}function dh(e){let t,n,r,o,l,s,i,f=Ue(e[0]),c=[];for(let u=0;u{var v;const w=m.target.selectedIndex;n(3,r=l[w].forecast),n(4,o=(v=l[w+1])==null?void 0:v.forecast),n(5,s=l[w].editorial)},g=m=>_(m);return e.$$set=m=>{"forecast"in m&&n(3,r=m.forecast),"lastForecast"in m&&n(4,o=m.lastForecast),"weeklyForecasts"in m&&n(0,l=m.weeklyForecasts),"editorial"in m&&n(5,s=m.editorial),"lastUpdatedTimestamp"in m&&n(6,i=m.lastUpdatedTimestamp)},[l,u,_,r,o,s,i,g]}class ph extends kt{constructor(t){super(),yt(this,t,hh,dh,ct,{forecast:3,lastForecast:4,weeklyForecasts:0,editorial:5,lastUpdatedTimestamp:6})}}function _h(e){let t,n,r;return{c(){t=M("button"),t.textContent="Read more",p(t,"class","read-more svelte-1m2l0yn")},m(o,l){W(o,t,l),n||(r=Pe(t,"click",e[2]),n=!0)},p:Le,d(o){o&&G(t),n=!1,r()}}}function gh(e){let t,n,r,o,l,s,i,f,c,u,_,g,m;return{c(){t=M("p"),t.innerHTML=`Strength of Resume compares a team’s average margin of victory to how the average top-12 team from our model would be expected to perform in those same games. For example, if a team’s average margin of victory for the season is 10 points, but the average top-12 team would be expected to have an average margin of victory of 15 points, their strength of resume would be -5.0. We also cap the margin of victory from individual games at 50 points when calculating a team’s season-long average to curb the outsized effect of blowouts and deduct 7.0 points from a team’s final strength of resume number for each loss – an idea that derives from ESPN's Bill Connelly and his Resume+ metric.`,n=N(),r=M("p"),r.innerHTML=`Strength of Record represents the odds that the average top-12 team from the model would get that team’s exact record in those same games. For example, if one undefeated team played a weaker schedule than another undefeated team, the first would have a weaker strength of record.`,o=N(),l=M("p"),l.textContent=`We blend together each team’s percentile ranking in Strength of Resume and Strength of Record, which is then fed into another linear regression to project each team’s CFP ranking and set the bracket. Due to the unpredictability and volatility of human decision making, my algorithm builds in some "randomness" to each Playoff selection. Add in the fact that the expanded Playoff could mean that the committee ranks teams slightly different from the past, and we have plenty of complications to monitor, especially in the first year of a new system.`,s=N(),i=M("p"),i.textContent=`Once the regular season is over and the bracket is set in each of our 100,000 simulations, we use our game-by-game projections to simulate which teams reach each round of the College Football Playoffs and who ultimately wins the championship. We then calculate how often in these simulations each team reaches certain benchmarks and how many games they win on average. So, when you see that a team has a 20 percent chance of making the playoffs in the forecast interactive, for example, that means it made the playoffs in 20 percent of the simulations we’ve run.`,f=N(),c=M("p"),c.textContent=`The teams included above either have at least a 0.5 percent chance of making the Playoff, or are in the top 25 in at least one of the AP poll, coaches poll and the CFP committee rankings.`,u=N(),_=M("button"),_.textContent="Show less",p(t,"class","svelte-1m2l0yn"),p(r,"class","svelte-1m2l0yn"),p(l,"class","svelte-1m2l0yn"),p(i,"class","svelte-1m2l0yn"),p(c,"class","svelte-1m2l0yn"),p(_,"class","read-more svelte-1m2l0yn")},m(w,v){W(w,t,v),W(w,n,v),W(w,r,v),W(w,o,v),W(w,l,v),W(w,s,v),W(w,i,v),W(w,f,v),W(w,c,v),W(w,u,v),W(w,_,v),g||(m=Pe(_,"click",e[1]),g=!0)},p:Le,d(w){w&&(G(t),G(n),G(r),G(o),G(l),G(s),G(i),G(f),G(c),G(u),G(_)),g=!1,m()}}}function mh(e){let t,n,r,o,l,s,i,f,c,u,_,g,m,w,v;function k(S,z){return S[0]?gh:_h}let b=k(e),C=b(e);return{c(){t=M("div"),n=M("h2"),n.textContent="Methodology",r=N(),o=M("p"),o.textContent=`We create an offensive and defensive projection for every college football team using various metrics, such as Expected Points Added and Success Rate. These projections estimate how many points each team would be expected to score and allow in a game against an average opponent at a neutral site. We then assign a probability of how likely a team is to win a given game by adjusting for opponent and location. Taking into account each team’s current record and remaining schedule, we use these game-by-game projections to simulate the rest of the season 100,000 times.`,l=N(),s=M("p"),s.textContent=`We also created an algorithm to predict which 12 teams the College Football Playoff committee would choose. It’s inherently difficult to model the choices of a committee of 12 people, but we’ve created two quantitative metrics that reflect 10 years of data on the committee's decision making process: Strength of Resume and Strength of Record.`,i=N(),C.c(),f=N(),c=M("h2"),c.textContent="Credits",u=N(),_=M("p"),_.innerHTML='Reporting: Austin Mock | Editing: Matt Brown, Jill Thaw, Eric Single',g=N(),m=M("p"),m.innerHTML=`Design and Development: Ryan Best, Laura Pelton, David Haye, Elliot Jordan, Oliver Viehweger | Editing: Skye Gould, Marc Mazzoni, Amy Cavenaile`,w=N(),v=M("p"),v.innerHTML='Illustration: Dan Goldfarb',p(n,"class","svelte-1m2l0yn"),p(o,"class","svelte-1m2l0yn"),p(s,"class","svelte-1m2l0yn"),p(c,"class","svelte-1m2l0yn"),p(_,"class","svelte-1m2l0yn"),p(m,"class","svelte-1m2l0yn"),p(v,"class","svelte-1m2l0yn"),p(t,"class","methodology-wrapper svelte-1m2l0yn")},m(S,z){W(S,t,z),h(t,n),h(t,r),h(t,o),h(t,l),h(t,s),h(t,i),C.m(t,null),h(t,f),h(t,c),h(t,u),h(t,_),h(t,g),h(t,m),h(t,w),h(t,v)},p(S,[z]){b===(b=k(S))&&C?C.p(S,z):(C.d(1),C=b(S),C&&(C.c(),C.m(t,f)))},i:Le,o:Le,d(S){S&&G(t),C.d()}}}function bh(e,t,n){let r=!1;return[r,()=>n(0,r=!1),()=>n(0,r=!0)]}class wh extends kt{constructor(t){super(),yt(this,t,bh,mh,ct,{})}}function vh(e){let t,n,r,o;function l(f){e[15](f)}function s(f){e[16](f)}let i={editorial:e[2]};return e[1]!==void 0&&(i.forecast=e[1]),e[0]!==void 0&&(i.weeklyForecasts=e[0]),t=new vd({props:i}),Ye.push(()=>Ot(t,"forecast",l)),Ye.push(()=>Ot(t,"weeklyForecasts",s)),{c(){Ze(t.$$.fragment)},m(f,c){Ke(t,f,c),o=!0},p(f,c){const u={};c&4&&(u.editorial=f[2]),!n&&c&2&&(n=!0,u.forecast=f[1],Tt(()=>n=!1)),!r&&c&1&&(r=!0,u.weeklyForecasts=f[0],Tt(()=>r=!1)),t.$set(u)},i(f){o||(U(t.$$.fragment,f),o=!0)},o(f){J(t.$$.fragment,f),o=!1},d(f){Ve(t,f)}}}function yh(e){let t,n,r,o;function l(f){e[13](f)}function s(f){e[14](f)}let i={editorial:e[2]};return e[1]!==void 0&&(i.forecast=e[1]),e[0]!==void 0&&(i.weeklyForecasts=e[0]),t=new Cd({props:i}),Ye.push(()=>Ot(t,"forecast",l)),Ye.push(()=>Ot(t,"weeklyForecasts",s)),{c(){Ze(t.$$.fragment)},m(f,c){Ke(t,f,c),o=!0},p(f,c){const u={};c&4&&(u.editorial=f[2]),!n&&c&2&&(n=!0,u.forecast=f[1],Tt(()=>n=!1)),!r&&c&1&&(r=!0,u.weeklyForecasts=f[0],Tt(()=>r=!1)),t.$set(u)},i(f){o||(U(t.$$.fragment,f),o=!0)},o(f){J(t.$$.fragment,f),o=!1},d(f){Ve(t,f)}}}function kh(e){let t,n,r,o,l,s,i,f,c,u,_,g,m,w,v,k,b,C;function S($){e[7]($)}function z($){e[8]($)}function A($){e[9]($)}function j($){e[10]($)}let P={lastUpdatedTimestamp:e[4]};e[1]!==void 0&&(P.forecast=e[1]),e[3]!==void 0&&(P.lastForecast=e[3]),e[0]!==void 0&&(P.weeklyForecasts=e[0]),e[2]!==void 0&&(P.editorial=e[2]),r=new ph({props:P}),Ye.push(()=>Ot(r,"forecast",S)),Ye.push(()=>Ot(r,"lastForecast",z)),Ye.push(()=>Ot(r,"weeklyForecasts",A)),Ye.push(()=>Ot(r,"editorial",j));function E($){e[11]($)}function T($){e[12]($)}let L={editorial:e[2]};e[1]!==void 0&&(L.forecast=e[1]),e[3]!==void 0&&(L.lastForecast=e[3]),c=new uh({props:L}),Ye.push(()=>Ot(c,"forecast",E)),Ye.push(()=>Ot(c,"lastForecast",T));const I=[yh,vh],D=[];function R($,Y){return Y&2&&(m=null),m==null&&(m=!!vt($[1][0])),m?0:1}return w=R(e,-1),v=D[w]=I[w](e),b=new wh({}),{c(){t=M("main"),n=M("div"),Ze(r.$$.fragment),f=N(),Ze(c.$$.fragment),g=N(),v.c(),k=N(),Ze(b.$$.fragment),p(n,"class","top-container svelte-1qfsb3f"),p(t,"class","app-wrapper svelte-1qfsb3f")},m($,Y){W($,t,Y),h(t,n),Ke(r,n,null),h(n,f),Ke(c,n,null),h(n,g),D[w].m(n,null),h(n,k),Ke(b,n,null),C=!0},p($,[Y]){const se={};!o&&Y&2&&(o=!0,se.forecast=$[1],Tt(()=>o=!1)),!l&&Y&8&&(l=!0,se.lastForecast=$[3],Tt(()=>l=!1)),!s&&Y&1&&(s=!0,se.weeklyForecasts=$[0],Tt(()=>s=!1)),!i&&Y&4&&(i=!0,se.editorial=$[2],Tt(()=>i=!1)),r.$set(se);const re={};Y&4&&(re.editorial=$[2]),!u&&Y&2&&(u=!0,re.forecast=$[1],Tt(()=>u=!1)),!_&&Y&8&&(_=!0,re.lastForecast=$[3],Tt(()=>_=!1)),c.$set(re);let ie=w;w=R($,Y),w===ie?D[w].p($,Y):(lt(),J(D[ie],1,1,()=>{D[ie]=null}),st(),v=D[w],v?v.p($,Y):(v=D[w]=I[w]($),v.c()),U(v,1),v.m(n,k))},i($){C||(U(r.$$.fragment,$),U(c.$$.fragment,$),U(v),U(b.$$.fragment,$),C=!0)},o($){J(r.$$.fragment,$),J(c.$$.fragment,$),J(v),J(b.$$.fragment,$),C=!1},d($){$&&G(t),Ve(r),Ve(c),D[w].d(),Ve(b)}}}function Ch(e,t,n){var z,A,j;let{data:r}=t,{teamsData:o}=t,l=ud(r,o.teamsv2),s=l[0].forecast,i=l[0].editorial,f=(z=l[1])==null?void 0:z.forecast,c=(j=(A=r==null?void 0:r.last_updated)==null?void 0:A[0])==null?void 0:j.last_updated;function u(P){s=P,n(1,s)}function _(P){f=P,n(3,f)}function g(P){l=P,n(0,l)}function m(P){i=P,n(2,i)}function w(P){s=P,n(1,s)}function v(P){f=P,n(3,f)}function k(P){s=P,n(1,s)}function b(P){l=P,n(0,l)}function C(P){s=P,n(1,s)}function S(P){l=P,n(0,l)}return e.$$set=P=>{"data"in P&&n(5,r=P.data),"teamsData"in P&&n(6,o=P.teamsData)},[l,s,i,f,c,r,o,u,_,g,m,w,v,k,b,C,S]}class Mh extends kt{constructor(t){super(),yt(this,t,Ch,kh,ct,{data:5,teamsData:6})}}new Mh({target:document.getElementById("graphics-app"),props:{data:JSON.parse(document.getElementById("graphics-data").textContent),teamsData:JSON.parse(document.getElementById("graphics-teamsData").textContent)}});
More College Football
Mandel’s Final Thoughts: Ohio State, Notre Dame can give first 12-team Playoff storybook ending

College Football Playoff championship first look: Notre Dame-Ohio State in a battle of big brands

How Notre Dame topped Penn State in Orange Bowl Playoff thriller to earn national title shot

How Ohio State outlasted Texas in Cotton Bowl to set up CFP title clash with Notre Dame

2024 College Football Playoff guide: What to know about the new 12-team format, at-large bids
Austin Mock

Austin Mock uses advanced statistical models and simulations to predict outcomes and rate performances in the NFL, college football, MLB and other sports. Follow Austin on Twitter @amock419