Welcome to our 2024 NFL projections, where you will find each team’s probability of conquering their 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=P(),l=A(“div”);for(let w=0;w
‘,f=P(),c=A(“div”);for(let w=0;w ‘,d=P(),_=A(“tbody”);for(let y=0;y=l-n?(tn(e,t,s,r),tn(e,t,n,l-1)):(tn(e,t,n,l-1),tn(e,t,s,r))}}function bn(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function b1(e){return e[0]}function v1(e){return e[1]}const Qs=1e-6;let Ut=class{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=””}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+=”Z”)}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,r){t=+t,n=+n,r=+r;const i=t+r,s=n;if(rQs||Math.abs(this._y1-s)>Qs)&&(this._+=”L”+i+”,”+s),r&&(this._+=`A${r},${r},0,1,1,${t-r},${n}A${r},${r},0,1,1,${this._x1=i},${this._y1=s}`)}rect(t,n,r,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+r}v${+i}h${-r}Z`}value(){return this._||null}};class ii{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class w1{constructor(t,[n,r,i,s]=[0,0,960,500]){if(!((i=+i)>=(n=+n))||!((s=+s)>=(r=+r)))throw new Error(“invalid bounds”);this.delaunay=t,this._circumcenters=new Float64Array(t.points.length*2),this.vectors=new Float64Array(t.points.length*2),this.xmax=i,this.xmin=n,this.ymax=s,this.ymin=r,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:r},vectors:i}=this;let s,l;const o=this.circumcenters=this._circumcenters.subarray(0,r.length/3*2);for(let m=0,p=0,v=r.length,w,T;m0){if(n>=this.ymax)return null;(l=(this.ymax-n)/i)0){if(t>=this.xmax)return null;(l=(this.xmax-t)/r)this.xmax?2:0)|(nLt)if(!(Math.abs(h*a-f*c)>Lt)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let d=r-l,_=i-o,m=a*a+f*f,p=d*d+_*_,v=Math.sqrt(m),w=Math.sqrt(u),T=s*Math.tan((si-Math.acos((m+u-p)/(2*v*w)))/2),y=T/w,S=T/v;Math.abs(y-1)>Lt&&this._append`L${t+y*c},${n+y*h}`,this._append`A${s},${s},0,0,${+(h*d>c*_)},${this._x1=t+S*a},${this._y1=n+S*f}`}}arc(t,n,r,i,s,l){if(t=+t,n=+n,r=+r,l=!!l,rLt||Math.abs(this._y1-c)>Lt)&&this._append`L${f},${c}`,r&&(uO1?this._append`A${r},${r},0,1,${h},${t-o},${n-a}A${r},${r},0,1,${h},${this._x1=f},${this._y1=c}`:u>Lt&&this._append`A${r},${r},0,${+(u>=si)},${h},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function H1(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new R1(t)}function z1(e){return typeof e==”object”&&”length”in e?e:Array.from(e)}function Vo(e){this._context=e}Vo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function q1(e){return new Vo(e)}function $1(e){return e[0]}function W1(e){return e[1]}function B1(e,t){var n=Zt(!0),r=null,i=q1,s=null,l=H1(o);e=typeof e==”function”?e:e===void 0?$1:Zt(e),t=typeof t==”function”?t:t===void 0?W1:Zt(t);function o(a){var f,c=(a=z1(a)).length,h,u=!1,d;for(r==null&&(s=i(d=l())),f=0;f=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._te[11].call(p)),g(m,”class”,”chart-cont svelte-ndqp4f”),g(t,”id”,”team-record-odds”),Q(t,”–theme-color”,e[3].color),Q(t,”–theme-dark-color”,e[3].dark_color),g(t,”class”,”svelte-ndqp4f”)},m(T,y){G(T,t,y),b(t,n),b(n,r),b(r,i),b(r,l),b(r,o),b(n,a),b(n,f),b(f,c),b(f,u),b(f,d),b(t,_),b(t,m),b(m,p),w&&w.m(p,null),v=oi(p,e[11].bind(p))},p(T,[y]){y&8&&s!==(s=T[3].display_name+””)&&ee(l,s),y&8&&h!==(h=T[3].display_name+””)&&ee(u,h),T[6]?w?w.p(T,y):(w=il(T),w.c(),w.m(p,null)):w&&(w.d(1),w=null),y&8&&Q(t,”–theme-color”,T[3].color),y&8&&Q(t,”–theme-dark-color”,T[3].dark_color)},i:Te,o:Te,d(T){T&&Y(t),w&&w.d(),v()}}}const ur=2;function V1(e,t,n){let r,i,s,l,o,a,{team:f}=t,{recordOdds:c}=t;const h={top:15,bottom:45,left:35,right:15};let u;var d=window.matchMedia(“(max-width: 767px)”);let _=d.matches?250:350;function m(){u=this.clientWidth,n(0,u)}return e.$$set=p=>{“team”in p&&n(9,f=p.team),”recordOdds”in p&&n(10,c=p.recordOdds)},e.$$.update=()=>{e.$$.dirty&1536&&n(3,r=c.find(p=>p.team==f)),e.$$.dirty&8&&n(1,i=r.odds),e.$$.dirty&2&&n(2,s=Array.from(Array(i.length).keys())),e.$$.dirty&5&&n(6,l=Ne.scaleBand(s,[h.left,u-h.right])),e.$$.dirty&2&&n(5,o=Ne.scaleLinear().domain([0,Math.max(Ne.max(i,p=>p.odds),20)]).range([_-h.bottom,h.top])),e.$$.dirty&2&&n(4,a=Array.from({length:Math.max(Ne.max(i,p=>p.odds),20)/10+1},(p,v)=>v*10))},[u,i,s,r,a,o,l,h,_,f,c,m]}class G1 extends nt{constructor(t){super(),tt(this,t,V1,Y1,et,{team:9,recordOdds:10})}}function fl(e,t,n){const r=e.slice();return r[27]=t[n].col,r[28]=t[n].hed,r[29]=t[n].dek,r[30]=t,r[31]=n,r}function cl(e,t,n){const r=e.slice();return r[32]=t[n],r}function ul(e){let t,n,r,i;return{c(){t=de(“circle”),g(t,”class”,”non-active-team svelte-t4gsj6″),g(t,”role”,”graphics-object”),g(t,”data-team”,n=e[32].team),g(t,”r”,ct),g(t,”cx”,r=e[32].pos[e[27]].x),g(t,”cy”,i=e[32].pos[e[27]].y),g(t,”stroke”,”#A9A9A5″),g(t,”stroke-width”,”1px”)},m(s,l){G(s,t,l)},p(s,l){l[0]&1&&n!==(n=s[32].team)&&g(t,”data-team”,n),l[0]&1&&r!==(r=s[32].pos[s[27]].x)&&g(t,”cx”,r),l[0]&1&&i!==(i=s[32].pos[s[27]].y)&&g(t,”cy”,i)},d(s){s&&Y(t)}}}function hl(e){let t=[e[6].team,e[5].team].indexOf(e[32].team)===-1,n,r=t&&ul(e);return{c(){r&&r.c(),n=Cn()},m(i,s){r&&r.m(i,s),G(i,n,s)},p(i,s){s[0]&97&&(t=[i[6].team,i[5].team].indexOf(i[32].team)===-1),t?r?r.p(i,s):(r=ul(i),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},d(i){i&&Y(n),r&&r.d(i)}}}function dl(e){let t,n,r,i;return{c(){t=de(“circle”),g(t,”class”,”hover-team svelte-t4gsj6″),g(t,”role”,”graphics-object”),g(t,”data-team”,n=e[6].team),g(t,”r”,ct),g(t,”cx”,r=e[6].pos[e[27]].x),g(t,”cy”,i=e[6].pos[e[27]].y),Q(t,”–theme-color”,e[6].color),Q(t,”–theme-dark-color”,e[6].dark_color),g(t,”stroke”,”#222222″),g(t,”stroke-width”,”2px”)},m(s,l){G(s,t,l)},p(s,l){l[0]&64&&n!==(n=s[6].team)&&g(t,”data-team”,n),l[0]&64&&r!==(r=s[6].pos[s[27]].x)&&g(t,”cx”,r),l[0]&64&&i!==(i=s[6].pos[s[27]].y)&&g(t,”cy”,i),l[0]&64&&Q(t,”–theme-color”,s[6].color),l[0]&64&&Q(t,”–theme-dark-color”,s[6].dark_color)},d(s){s&&Y(t)}}}function X1(e){let t,n;return{c(){t=de(“svg”),n=de(“path”),g(n,”id”,”Polygon 1″),g(n,”d”,”M6 3.5L1.91354e-07 6.53109L4.5634e-07 0.468911L6 3.5Z”),g(n,”fill”,”#E4E4E2″),g(n,”class”,”svelte-t4gsj6″),g(t,”class”,”arrow-svg svelte-t4gsj6″),g(t,”width”,”6″),g(t,”height”,”7″),g(t,”viewBox”,”0 0 6 7″),g(t,”fill”,”none”),g(t,”xmlns”,”http://www.w3.org/2000/svg”)},m(r,i){G(r,t,i),b(t,n)},d(r){r&&Y(t)}}}function Z1(e){let t,n;return{c(){t=de(“svg”),n=de(“path”),g(n,”id”,”Polygon 1″),g(n,”d”,”M6 3.5L1.91354e-07 6.53109L4.5634e-07 0.468911L6 3.5Z”),g(n,”fill”,”#E4E4E2″),g(n,”class”,”svelte-t4gsj6″),g(t,”class”,”arrow-svg svelte-t4gsj6″),g(t,”width”,”6″),g(t,”height”,”7″),g(t,”viewBox”,”0 0 6 7″),g(t,”fill”,”none”),g(t,”xmlns”,”http://www.w3.org/2000/svg”)},m(r,i){G(r,t,i),b(t,n)},d(r){r&&Y(t)}}}function _l(e){let t,n,r,i,s,l,o,a,f,c,h,u=e[27],d,_,m,p,v,w,T,y,S,x,k,N=e[10](e[27],e[6][e[27]])+””,D,M,C,L,E=e[10](e[27],e[6][e[27]])+””,F,U,I,W,H,$,X,te,Z,ie,Me;const fe=()=>e[12](h,u),j=()=>e[12](null,u);let se=_e(e[0]),B=[];for(let re=0;reWK.
OPPONENT
DATE
TIME
OVER/ UNDER
POINT SPREAD
WIN PROB.
RESULT