NFL playoff projections 2024: The Athletic's model predicts the field

Welcome to our 2024 NFL projections, where you will find each team’s probability of conquering its division, advancing through the playoffs and winning the Super Bowl. The projections are based on 100,000 simulations of the remainder of the season, which factors in each team’s projected strength, current health as well as its remaining schedule. All projections and probabilities are rounded to the nearest whole number. You can read more about the model at the bottom of the page. The projections will be updated regularly throughout each week.

‘,s=z(),l=S(“div”);for(let k=0;k<_.length;k+=1)_[k].c();o=z(),a=S(“button”),a.innerHTML=”,c=z(),f=S(“div”);for(let k=0;k{n(1,E=q),d(),p(q,V),k(q)},c=q=>{const V=D.scrollLeft,ce=D.getBoundingClientRect().width/T,ne=V+q*ce;D.scrollTo({left:ne,behavior:”smooth”}),w(ne)},f=(q,V)=>V>1015?q<3:V>674?q<2:!q,h=()=>{const q=D.getBoundingClientRect().width,V=q/120,ee=Math.floor(V),ce=Math.ceil(V),ne=ee%2?ee:ce;n(15,T=ne),n(2,N=q/T)},u=Intl.DateTimeFormat().resolvedOptions(),d=()=>{let q=s.games.filter(ee=>ee.week==E),V=[];q.forEach(ee=>{let ce=new Date(ee.datetime).toLocaleDateString(u.locale,{weekday:”long”,month:”long”,day:”numeric”});ee.status_display_string=ee.status==”post”?`FINAL${ee.ot&&`/${ee.ot}`}`:new Date(ee.datetime).toLocaleTimeString(u.locale,{hourCycle:”h12″,hour:”numeric”,minute:”2-digit”});let ne=V.find(fe=>fe.day===ce);ne?ne.games.push(ee):V.push({day:ce,games:[ee]})}),n(3,A=V)},g=()=>s.weeks.map(q=>{let V;const ee=new Date(q.start_timestamp),ce=ee.toLocaleDateString(u.locale,{month:”short”,day:”numeric”}),ne=new Date(q.end_timestamp);ee.getMonth()===ne.getMonth()?V=ne.toLocaleDateString(u.locale,{day:”numeric”}):V=ne.toLocaleDateString(u.locale,{month:”short”,day:”numeric”});const fe=Gt(ce),ve=Gt(V),Me=ee.getTime()===ne.getTime()?fe:`${fe}–${ve}`;return{…q,display_string:Me}}),_=()=>{const q=new Date().getTime(),V=s.weeks.filter(ce=>{const ne=new Date(ce.end_timestamp).getTime()+864e5;return q>=ne});return(V.length===0?0:V[V.length-1].week_number)+1},p=(q,V)=>{const ee=D.getBoundingClientRect().width,ce=r>=768?ee/T:100,ne=ce*(q-1)-ee/2+ce/2;window.setTimeout(()=>{D.scrollTo({left:ne,behavior:V}),w(ne)},0)},w=q=>{Math.round(q)<=0?O.classList.add(“disabled”):O.classList.remove(“disabled”);const V=D.getBoundingClientRect().width,ee=D.scrollWidth-V;Math.round(q)>=ee?C.classList.add(“disabled”):C.classList.remove(“disabled”)},k=q=>{const V=window.location.pathname,ee=window.location.hash;window.history.pushState({},””,`${V}?${l.toString()}${ee}`),l.set(“week”,q),window.history.replaceState({},””,`${V}?${l.toString()}${ee}`)};let E=l.get(“week”)||_(),T,N,I=g(),A=[],D,O,C;ji(()=>(h(),a(E,”auto”),window.addEventListener(“resize”,h),()=>{window.removeEventListener(“resize”,h)}));function x(){n(8,r=qa.innerWidth)}function F(q){De[q?”unshift”:”push”](()=>{O=q,n(5,O)})}const R=()=>c(-i),P=q=>a(q.week_number,”smooth”);function Y(q){De[q?”unshift”:”push”](()=>{D=q,n(4,D)})}function H(q){De[q?”unshift”:”push”](()=>{C=q,n(6,C)})}const X=()=>c(i);return e.$$set=q=>{“games”in q&&n(13,s=q.games),”params”in q&&n(14,l=q.params),”editorialContent”in q&&n(0,o=q.editorialContent)},e.$$.update=()=>{e.$$.dirty[0]&32768&&n(7,i=Math.min(T,4))},n(8,r=0),[o,E,N,A,D,O,C,i,r,a,c,f,I,s,l,T,x,F,R,P,Y,H,X]}class Hd extends mt{constructor
*
*
* Copyright (c) 2016 Jorik Tangelder;
* Licensed under the MIT license */(function(e){(function(t,n,r,i){var s=[“”,”webkit”,”Moz”,”MS”,”ms”,”o”],l=n.createElement(“div”),o=”function”,a=Math.round,c=Math.abs,f=Date.now;function h(v,y,M){return setTimeout(E(v,M),y)}function u(v,y,M){return Array.isArray(v)?(d(v,M[y],M),!0):!1}function d(v,y,M){var U;if(v)if(v.forEach)v.forEach(y,M);else if(v.length!==i)for(U=0;U\s*\(/gm,”{anonymous}()@”):”Unknown Stack Trace”,ke=t.console&&(t.console.warn||t.console.log);return ke&&ke.call(t.console,U,te),v.apply(this,arguments)}}var _;typeof Object.assign!=”function”?_=function(y){if(y===i||y===null)throw new TypeError(“Cannot convert undefined or null to object”);for(var M=Object(y),U=1;U-1}function C(v){return v.trim().split(/\s+/g)}function x(v,y,M){if(v.indexOf&&!M)return v.indexOf(y);for(var U=0;Uet[y]}),U}function P(v,y){for(var M,U,$=y[0].toUpperCase()+y.slice(1),te=0;te1&&!M.firstMultiple?M.firstMultiple=gt(y):$===1&&(M.firstMultiple=!1);var te=M.firstInput,ke=M.firstMultiple,Ve=ke?ke.center:te.center,Ke=y.center=Rt(U);y.timeStamp=f(),y.deltaTime=y.timeStamp-te.timeStamp,y.angle=kt(Ve,Ke),y.distance=Ze(Ve,Ke),Ct(M,y),y.offsetDirection=Oe(y.deltaX,y.deltaY);var et=yt(y.deltaTime,y.deltaX,y.deltaY);y.overallVelocityX=et.x,y.overallVelocityY=et.y,y.overallVelocity=c(et.x)>c(et.y)?et.x:et.y,y.scale=ke?_n(ke.pointers,U):1,y.rotation=ke?Ye(ke.pointers,U):0,y.maxPointers=M.prevInput?y.pointers.length>M.prevInput.maxPointers?y.pointers.length:M.prevInput.maxPointers:y.pointers.length,at(M,y);var St=v.element;D(y.srcEvent.target,St)&&(St=y.srcEvent.target),y.target=St}function Ct(v,y){var M=y.center,U=v.offsetDelta||{},$=v.prevDelta||{},te=v.prevInput||{};(y.eventType===B||te.eventType===L)&&($=v.prevDelta={x:te.deltaX||0,y:te.deltaY||0},U=v.offsetDelta={x:M.x,y:M.y}),y.deltaX=$.x+(M.x-U.x),y.deltaY=$.y+(M.y-U.y)}function at(v,y){var M=v.lastInterval||y,U=y.timeStamp-M.timeStamp,$,te,ke,Ve;if(y.eventType!=K&&(U>ye||M.velocity===i)){var Ke=y.deltaX-M.deltaX,et=y.deltaY-M.deltaY,St=yt(U,Ke,et);te=St.x,ke=St.y,$=c(St.x)>c(St.y)?St.x:St.y,Ve=Oe(Ke,et),v.lastInterval=y}else $=M.velocity,te=M.velocityX,ke=M.velocityY,Ve=M.direction;y.velocity=$,y.velocityX=te,y.velocityY=ke,y.direction=Ve}function gt(v){for(var y=[],M=0;M=c(y)?v<0?W:le:y<0?re:ue}function Ze(v,y,M){M||(M=Le);var U=y[M[0]]-v[M[0]],$=y[M[1]]-v[M[1]];return Math.sqrt(U*U+$*$)}function kt(v,y,M){M||(M=Le);var U=y[M[0]]-v[M[0]],$=y[M[1]]-v[M[1]];return Math.atan2($,U)*180/Math.PI}function Ye(v,y){return kt(y[1],y[0],Ie)+kt(v[1],v[0],Ie)}function _n(v,y){return Ze(y[0],y[1],Ie)/Ze(v[0],v[1],Ie)}var tn={mousedown:B,mousemove:se,mouseup:L},pn=”mousedown”,We=”mousemove mouseup”;function ct(){this.evEl=pn,this.evWin=We,this.pressed=!1,he.apply(this,arguments)}k(ct,he,{handler:function(y){var M=tn[y.type];M&B&&y.button===0&&(this.pressed=!0),M&se&&y.which!==1&&(M=L),this.pressed&&(M&L&&(this.pressed=!1),this.callback(this.manager,M,{pointers:[y],changedPointers:[y],pointerType:ve,srcEvent:y}))}});var ze={pointerdown:B,pointermove:se,pointerup:L,pointercancel:K,pointerout:K},Q={2:ne,3:fe,4:ve,5:Me},Ce=”pointerdown”,me=”pointermove pointerup pointercancel”;t.MSPointerEvent&&!t.PointerEvent&&(Ce=”MSPointerDown”,me=”MSPointerMove MSPointerUp MSPointerCancel”);function qe(){this.evEl=Ce,this.evWin=me,he.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}k(qe,he,{handler:function(y){var M=this.store,U=!1,$=y.type.toLowerCase().replace(“ms”,””),te=ze[$],ke=Q[y.pointerType]||y.pointerType,Ve=ke==ne,Ke=x(M,y.pointerId,”pointerId”);te&B&&(y.button===0||Ve)?Ke<0&&(M.push(y),Ke=M.length-1):te&(L|K)&&(U=!0),!(Ke<0)&&(M[Ke]=y,this.callback(this.manager,te,{pointers:M,changedPointers:[y],pointerType:ke,srcEvent:y}),U&&M.splice(Ke,1))}});var nn={touchstart:B,touchmove:se,touchend:L,touchcancel:K},dc=”touchstart”,mc=”touchstart touchmove touchend touchcancel”;function ks(){this.evTarget=dc,this.evWin=mc,this.started=!1,he.apply(this,arguments)}k(ks,he,{handler:function(y){var M=nn[y.type];if(M===B&&(this.started=!0),!!this.started){var U=gc.call(this,y,M);M&(L|K)&&U[0].length-U[1].length===0&&(this.started=!1),this.callback(this.manager,M,{pointers:U[0],changedPointers:U[1],pointerType:ne,srcEvent:y})}}});function gc(v,y){var M=F(v.touches),U=F(v.changedTouches);return y&(L|K)&&(M=R(M.concat(U),”identifier”)),[M,U]}var _c={touchstart:B,touchmove:se,touchend:L,touchcancel:K},pc=”touchstart touchmove touchend touchcancel”;function fr(){this.evTarget=pc,this.targetIds={},he.apply(this,arguments)}k(fr,he,{handler:function(y){var M=_c[y.type],U=vc.call(this,y,M);U&&this.callback(this.manager,M,{pointers:U[0],changedPointers:U[1],pointerType:ne,srcEvent:y})}});function vc(v,y){var M=F(v.touches),U=this.targetIds;if(y&(B|se)&&M.length===1)return U[M[0].identifier]=!0,[M,M];var $,te,ke=F(v.changedTouches),Ve=[],Ke=this.target;if(te=M.filter(function(et){return D(et.target,Ke)}),y===B)for($=0;$-1&&U.splice(te,1)};setTimeout($,bc)}}function yc(v){for(var y=v.srcEvent.clientX,M=v.srcEvent.clientY,U=0;U-1&&this.requireFail.splice(y,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(v){return!!this.simultaneous[v.id]},emit:function(v){var y=this,M=this.state;function U($){y.manager.emit($,v)}M=jt&&U(y.options.event+Ss(M))},tryEmit:function(v){if(this.canEmit())return this.emit(v);this.state=Nt},canEmit:function(){for(var v=0;vy.threshold&&$&y.direction},attrTest:function(v){return Tt.prototype.attrTest.call(this,v)&&(this.state&_t||!(this.state&_t)&&this.directionTest(v))},emit:function(v){this.pX=v.deltaX,this.pY=v.deltaY;var y=Ds(v.direction);y&&(v.additionalEvent=this.options.event+y),this._super.emit.call(this,v)}});function si(){Tt.apply(this,arguments)}k(si,Tt,{defaults:{event:”pinch”,threshold:0,pointers:2},getTouchAction:function(){return[rn]},attrTest:function(v){return this._super.attrTest.call(this,v)&&(Math.abs(v.scale-1)>this.options.threshold||this.state&_t)},emit:function(v){if(v.scale!==1){var y=v.scale<1?”in”:”out”;v.additionalEvent=this.options.event+y}this._super.emit.call(this,v)}});function li(){Ft.apply(this,arguments),this._timer=null,this._input=null}k(li,Ft,{defaults:{event:”press”,pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ns]},process:function(v){var y=this.options,M=v.pointers.length===y.pointers,U=v.distancey.time;if(this._input=v,!U||!M||v.eventType&(L|K)&&!$)this.reset();else if(v.eventType&B)this.reset(),this._timer=h(function(){this.state=Ut,this.tryEmit()},y.time,this);else if(v.eventType&L)return Ut;return Nt},reset:function(){clearTimeout(this._timer)},emit:function(v){this.state===Ut&&(v&&v.eventType&L?this.manager.emit(this.options.event+”up”,v):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}});function oi(){Tt.apply(this,arguments)}k(oi,Tt,{defaults:{event:”rotate”,threshold:0,pointers:2},getTouchAction:function(){return[rn]},attrTest:function(v){return this._super.attrTest.call(this,v)&&(Math.abs(v.rotation)>this.options.threshold||this.state&_t)}});function ai(){Tt.apply(this,arguments)}k(ai,Tt,{defaults:{event:”swipe”,threshold:10,velocity:.3,direction:pe|Se,pointers:1},getTouchAction:function(){return mr.prototype.getTouchAction.call(this)},attrTest:function(v){var y=this.options.direction,M;return y&(pe|Se)?M=v.overallVelocity:y&pe?M=v.overallVelocityX:y&Se&&(M=v.overallVelocityY),this._super.attrTest.call(this,v)&&y&v.offsetDirection&&v.distance>this.options.threshold&&v.maxPointers==this.options.pointers&&c(M)>this.options.velocity&&v.eventType&L},emit:function(v){var y=Ds(v.offsetDirection);y&&this.manager.emit(this.options.event+y,v),this.manager.emit(this.options.event,v)}});function gr(){Ft.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}k(gr,Ft,{defaults:{event:”tap”,pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ri]},process:function(v){var y=this.options,M=v.pointers.length===y.pointers,U=v.distancee[23].call(_)),m(P,”for”,”metric-select”),m(P,”class”,”svelte-1cah4a2″),m(X,”id”,”metric-select”),m(X,”class”,”svelte-1cah4a2″),e[0]===void 0&&$t(()=>e[24].call(X)),m(H,”id”,”select-container”),m(H,”class”,”svelte-1cah4a2″),m(R,”id”,”picker”),m(R,”class”,”svelte-1cah4a2″),m(t,”id”,”team-odds”),oe(t,”–theme-color”,e[12].color),oe(t,”–theme-dark-color”,e[12].dark_color),m(t,”class”,”svelte-1cah4a2″)},m(B,se){J(B,t,se),b(t,n),b(n,r),b(n,i),b(i,l),b(n,o),b(n,a),b(a,f),b(n,h),u.m(d,n),b(t,g),b(t,_),b(_,p),b(p,w),b(w,k);for(let L=0;L<5;L+=1)ce[L]&&ce[L].m(k,null);b(w,T);for(let L=0;L<5;L+=1)fe[L]&&fe[L].m(T,null);ve&&ve.m(w,null),b(p,N),b(N,I),b(I,A),b(I,D),e[20](p),x=Vi(_,e[23].bind(_)),b(t,F),b(t,R),b(R,P),b(R,Y),b(R,H),b(H,X);for(let L=0;L{const Y=i.sort((X,q)=>{const V=ee=>Math.abs(P-a(new Date(ee.xAxis)));return V(X)-V(q)})[0];if(Math.abs(P-a(new Date(Y.xAxis)))>25){N();return}I(Y)},T=P=>{const Y=P.target.getBoundingClientRect(),H=P.clientX-Y.left;E(H)},N=()=>{n(10,o=!1),n(8,l=s),n(9,h=w-p.left)},I=P=>{n(10,o=!0),n(8,l=P),n(9,h=a(new Date(l.xAxis))-p.left)};let A;ji(()=>{new n_(A).on(“pan”,Y=>{const H=A.getBoundingClientRect(),X=Y.center.x-H.left;E(X)})});const D=P=>P.value===_;function O(P){De[P?”unshift”:”push”](()=>{A=P,n(7,A)})}const C=P=>T(P),x=()=>N();function F(){w=this.clientWidth,k=this.clientHeight,n(1,w),n(2,k)}function R(){_=Bo(this),n(0,_),n(12,r),n(18,d),n(17,u)}return e.$$set=P=>{“team”in P&&n(17,u=P.team),”odds”in P&&n(18,d=P.odds)},e.$$.update=()=>{e.$$.dirty[0]&393216&&n(12,r=d.teams.find(P=>P.alias===u)),e.$$.dirty[0]&393217&&n(5,i=d.all_odds.filter(P=>P.team==u&&P.metric==_)),e.$$.dirty[0]&32&&n(4,s=i[i.length-1]),e.$$.dirty[0]&16&&n(8,l=s),e.$$.dirty[0]&34&&n(3,a=Ue.scaleUtc([new Date(i[0].xAxis),new Date(“2025-02-15T00:15:00+00:00”)],[p.left,w-p.right])),e.$$.dirty[0]&4&&n(6,c=Ue.scaleLinear([0,100],[k-p.bottom,p.top])),e.$$.dirty[0]&72&&n(11,f=Ue.line().x(P=>a(new Date(P.xAxis))).y(P=>c(P.value)).curve(Ue.curveStepAfter)),e.$$.dirty[0]&2&&n(9,h=w-p.left)},n(10,o=!1),[_,w,k,a,s,i,c,A,l,h,o,f,r,g,p,T,N,u,d,D,O,C,x,F,R]}class l_ extends mt{constructor

مصدر

LEAVE A REPLY

Please enter your comment!
Please enter your name here