PageSourceSearch

https://tradesearcher.ai/_next/static/chunks/pages/tools/prop-firm-challenge-calculator-3ce67e68cb485788.js

js tradesearcher.ai collected 2026-10-05 13:09:12 UTC 43,844 bytes, 25 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb54a97b-b0ee-4c8c-bd0a-e96364dab962",e._sentryDebugIdIdentifier="sentry-dbid-cb54a97b-b0ee-4c8c-bd0a-e96364dab962")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[442],{43377:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/tools/prop-firm-challenge-calculator",function(){return a(60259)}])},1342:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{noSSR:function(){return noSSR},default:function(){return dynamic}});let s=a(38754),l=(a(67294),s._(a(24304)));function convertModule(e){return{default:(null==e?void 0:e.default)||e}}function noSSR(e,t){return delete t.webpack,delete t.modules,e(t)}function dynamic(e,t){let a=l.default,s={loading:e=>{let{error:t,isLoading:a,pastDelay:s}=e;return null}};e instanceof Promise?s.loader=()=>e:"function"==typeof e?s.loader=e:"object"==typeof e&&(s={...s,...e}),s={...s,...t};let i=s.loader;return(s.loadableGenerated&&(s={...s,...s.loadableGenerated},delete s.loadableGenerated),"boolean"!=typeof s.ssr||s.ssr)?a({...s,loader:()=>null!=i?i().then(convertModule):Promise.resolve(convertModule(()=>null))}):(delete s.webpack,delete s.modules,noSSR(a,s))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},30043:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"LoadableContext",{enumerable:!0,get:function(){return i}});let s=a(38754),l=s._(a(67294)),i=l.default.createContext(null)},24304:function(e,t,a){"use strict";/**
2@copyright (c) 2017-present James Kyle <[email protected]>
3 MIT License
4 Permission is hereby granted, free of charge, to any person obtaining
5a copy of this software and associated documentation files (the
6"Software"), to deal in the Software without restriction, including
7without limitation the rights to use, copy, modify, merge, publish,
8distribute, sublicense, and/or sell copies of the Software, and to
9permit persons to whom the Software is furnished to do so, subject to
10the following conditions:
11 The above copyright notice and this permission notice shall be
12included in all copies or substantial portions of the Software.
13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
19WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
20*/Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let s=a(38754),l=s._(a(67294)),i=a(30043),r=[],n=[],o=!1;function load(e){let t=e(),a={loading:!0,loaded:null,error:null};return a.promise=t.then(e=>(a.loading=!1,a.loaded=e,e)).catch(e=>{throw a.loading=!1,a.error=e,e}),a}let LoadableSubscription=class LoadableSubscription{promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e}
20,this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}};function Loadable(e){return function(e,t){let a=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},t),s=null;function init(){if(!s){let t=new LoadableSubscription(e,a);s={getCurrentValue:t.getCurrentValue.bind(t),subscribe:t.subscribe.bind(t),retry:t.retry.bind(t),promise:t.promise.bind(t)}}return s.promise()}if(!o){let e=a.webpack?a.webpack():a.modules;e&&n.push(t=>{for(let a of e)if(t.includes(a))return init()})}function LoadableComponent(e,t){!function(){init();let e=l.default.useContext(i.LoadableContext);e&&Array.isArray(a.modules)&&a.modules.forEach(t=>{e(t)})}();let r=l.default.useSyncExternalStore(s.subscribe,s.getCurrentValue,s.getCurrentValue);return l.default.useImperativeHandle(t,()=>({retry:s.retry}),[]),l.default.useMemo(()=>{var t;return r.loading||r.error?l.default.createElement(a.loading,{isLoading:r.loading,pastDelay:r.pastDelay,timedOut:r.timedOut,error:r.error,retry:s.retry}):r.loaded?l.default.createElement((t=r.loaded)&&t.default?t.default:t,e):null},[e,r])}return LoadableComponent.preload=()=>init(),LoadableComponent.displayName="LoadableComponent",l.default.forwardRef(LoadableComponent)}(load,e)}function flushInitializers(e,t){let a=[];for(;e.length;){let s=e.pop();a.push(s(t))}return Promise.all(a).then(()=>{if(e.length)return flushInitializers(e,t)})}Loadable.preloadAll=()=>new Promise((e,t)=>{flushInitializers(r).then(e,t)}),Loadable.preloadReady=e=>(void 0===e&&(e=[]),new Promise(t=>{let res=()=>(o=!0,t());flushInitializers(n,e).then(res,res)})),window.__NEXT_PRELOADREADY=Loadable.preloadReady;let d=Loadable},75918:function(e,t,a){"use strict";a.d(t,{m:function(){return r}});var s=a(85893),l=a(67294),i=a(97537);let r=l.forwardRef((e,t)=>{let{title:a,description:l,actions:r,className:n,...o}=e;return(0,s.jsxs)("div",{ref:t,className:(0,i.cn)("mb-5 flex flex-wrap items-end justify-between gap-5",n),...o,children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h1",{className:"text-[23px] font-semibold tracking-tight text-ts-t1",children:a}),l&&(0,s.jsx)("p",{className:"mt-1 text-[13.5px] text-ts-t2 [&_b]:font-medium [&_b]:text-ts-t1",children:l})]}),r&&(0,s.jsx)("div",{className:"flex shrink-0 flex-wrap items-center gap-2",children:r})]})});r.displayName="PageHeader"},21587:function(e,t,a){"use strict";a.d(t,{b:function(){return p}});var s=a(85893),l=a(67294),i=a(12003),r=a(79906),n=a(22813),o=a(44239),d=a(46277),c=a(97537);let u=(0,i.j)((0,c.cn)("relative flex w-full gap-3 rounded-ts border border-solid p-3.5 text-[13px]","[&>svg]:mt-px [&>svg]:h-[18px] [&>svg]:w-[18px] [&>svg]:shrink-0"),{variants:{variant:{info:"border-ts-info-line bg-ts-info-soft text-ts-info",success:"border-ts-pos-line bg-ts-pos-soft text-ts-pos",warning:"border-ts-warn-line bg-ts-warn-soft text-ts-warn",error:"border-ts-neg-line bg-ts-neg-soft text-ts-neg"}},defaultVariants:{variant:"info"}}),m={info:r.Z,success:n.Z,warning:o.Z,error:d.Z},p=l.forwardRef((e,t)=>{let{className:a,variant:l,icon:i,title:r,description:n,children:o,...d}=e,p=null!=l?l:"info",h=m[p];return(0,s.jsxs)("div",{ref:t,role:"alert",className:(0,c.cn)(u({variant:l}),a),...d,children:[!1===i?null:null!=i?i:(0,s.jsx)(h,{}),(0,s.jsxs)("div",{className:"min-w-0 flex-1 space-y-0.5",children:[r?(0,s.jsx)("div",{className:"font-semibold text-ts-t1",children:r}):null,n?(0,s.jsx)("div",{className:"text-ts-t2",children:n}):null,o]})]})});p.displayName="Alert"},19448:function(e,t,a){"use strict";a.d(t,{E:function(){return d}});var s=a(85893),l=a(67294),i=a(37483),r=a(12003),n=a(97537);let o=(0,r.j)("h-full rounded-ts-sm transition-[width] duration-300 ease-out",{variants:{color:{accent:"bg-ts-accent",pos:"bg-ts-pos",neg:"bg-ts-neg",warn:"bg-ts-warn"}},defaultVariants:{color:"accent"}}),d=l.forwardRef((e,t)=>
20{let{className:a,value:l=0,color:r,...d}=e,c=Math.min(100,Math.max(0,l));return(0,s.jsx)(i.fC,{ref:t,value:c,max:100,className:(0,n.cn)("relative h-2 w-full overflow-hidden rounded-ts-sm bg-ts-line",a),...d,children:(0,s.jsx)(i.z$,{className:o({color:r}),style:{width:"".concat(c,"%")}})})});d.displayName=i.fC.displayName},55564:function(e,t,a){"use strict";a.d(t,{Bw:function(){return x},Ph:function(){return c},Ql:function(){return b},i4:function(){return m},ki:function(){return u}});var s=a(85893),l=a(67294),i=a(95059),r=a(74004),n=a(375),o=a(17259),d=a(97537);let c=i.fC;i.ZA;let u=i.B4,m=l.forwardRef((e,t)=>{let{className:a,children:l,...n}=e;return(0,s.jsxs)(i.xz,{ref:t,className:(0,d.cn)("flex h-[30px] w-full items-center justify-between gap-2 rounded-md border border-solid border-ts-line-2 bg-ts-panel-2 px-2 text-xs text-ts-t1","transition-colors hover:border-ts-line-3 data-[placeholder]:text-ts-t3","disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",d.k,a),...n,children:[l,(0,s.jsx)(i.JO,{asChild:!0,children:(0,s.jsx)(r.Z,{className:"h-3.5 w-3.5 shrink-0 opacity-70"})})]})});m.displayName=i.xz.displayName;let p=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(i.u_,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1 text-ts-t3",a),...l,children:(0,s.jsx)(n.Z,{className:"h-3.5 w-3.5"})})});p.displayName=i.u_.displayName;let h=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(i.$G,{ref:t,className:(0,d.cn)("flex cursor-default items-center justify-center py-1 text-ts-t3",a),...l,children:(0,s.jsx)(r.Z,{className:"h-3.5 w-3.5"})})});h.displayName=i.$G.displayName;let x=l.forwardRef((e,t)=>{let{className:a,children:l,position:r="popper",...n}=e;return(0,s.jsx)(i.h_,{children:(0,s.jsxs)(i.VY,{ref:t,position:r,className:(0,d.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-ts border border-solid border-ts-line-3 bg-ts-panel text-ts-t1 shadow-ts-pop","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...n,children:[(0,s.jsx)(p,{}),(0,s.jsx)(i.l_,{className:(0,d.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:l}),(0,s.jsx)(h,{})]})})});x.displayName=i.VY.displayName;let f=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(i.__,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-[10.5px] font-semibold uppercase tracking-wider text-ts-t4",a),...l})});f.displayName=i.__.displayName;let b=l.forwardRef((e,t)=>{let{className:a,children:l,...r}=e;return(0,s.jsxs)(i.ck,{ref:t,className:(0,d.cn)("relative flex w-full cursor-pointer select-none items-center rounded-[6px] py-1.5 pl-2 pr-7 text-xs text-ts-t1 outline-none","focus:bg-ts-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...r,children:[(0,s.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(i.wU,{children:(0,s.jsx)(o.Z,{className:"h-3.5 w-3.5 text-ts-accent"})})}),(0,s.jsx)(i.eT,{children:l})]})});b.displayName=i.ck.displayName;let y=l.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,s.jsx)(i.Z0,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-ts-line",a),...l})});y.displayName=i.Z0.displayName},80949:function(e,t,a){"use strict";a.d(t,{o0:function(){return s},yP:function(){return toolChartBaseOptions}});let s={accent:"#15d57f",pos:"#2ee08a",neg:"#ff5d6c",warn:"#ffb020",info:"#5b9dff",gold:"#ffd066",line:"rgba(255, 255, 255, 0.07)",t1:"#f5f6f7",t2:"#9aa0a8",t3:"#6a7077",panel:"#0e0f11"};function toolChartAxis(e){return{grid:{color:s.line},border:{color:s.line},ticks:{color:s.t3},title:{display:!!e,text:null!=e?e:"",color:s.t2}}}function toolChartBaseOptions(e){return{responsive:!0,maintainAspectRatio:!1,plugins:{legend:{labels:{color:s.t2}},title:{color:s.t1},tooltip:{backgroundColor:s.panel,titleColor:s.t1,bodyColor:s.t2,borderColor:s.line,borderWidth:1}},scales:{x:toolChartAxis(null==e?void 0:e.x),y:toolChartAxis(null==e?void 0:e.y)}}}},60259:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return F}});var s=a(85893),l=a(67294),i=a(9008),r=a.n(i),n=a(85609),o=a(89616),d=a(17738),c=a(60802),u=a(33e3),m=a(19448),p=a(21587),h=a(42889),x=a(55564),f=a(36381),b=a(75918),y=a(51683),g=a(80949),w=a(97537),v=a(23148),j=a(5152),D=a.n(j),N=a(41664),T=a.n(N),C=a(21463),P=a(55356);let R={profitTarget:10,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"dayStart",totalDrawdownBasis:"initial",timeLimitDays:30,minTradingDays:0,phase2ProfitTarget:null,accountSize:1e5,fee:500},S=[{id:"ftmo",name:"FTMO",phase1:{profitTarget:10,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:null,minTradingDays:4},phase2:{profitTarget:5,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:null,minTradingDays:4},consistencyRule:!1,accountSizes:[{label:"$10,000",value:1e4,fee:155},{label:"$25,000",value:25e3,fee:250},{label:"$50,000",value:5e4,fee:345},{label:"$100,000",value:1e5,fee:540},{label:"$200,000",value:2e5,fee:1080}],ruleSnapshotDate:"2026-05-10",ruleSourceUrl:"https://ftmo.com/en/trading-objectives/",ruleNotes:"2-step rules: 10%/5% targets, 5% daily loss amount from initial capital, 10% static max loss, 4 minimum trading days, no maximum time limit."},{id:"topstep",name:"TopStep",phase1:{profitTarget:6,dailyDrawdown:0,totalDrawdown:3,drawdownType:"trailing",dailyDrawdownBasis:"initial",totalDrawdownBasis:"endOfDayPeak",timeLimitDays:null,minTradingDays:5},phase2:null,consistencyRule:!0,consistencyRuleMaxBestDayPct:50,accountSizes:[{label:"$50,000",value:5e4,fee:165,maxLossAmount:2e3},{label:"$100,000",value:1e5,fee:165,maxLossAmount:3e3},{label:"$150,000",value:15e4,fee:375,maxLossAmount:4500}],ruleSnapshotDate:"2026-05-10",ruleSourceUrl:"https://help.topstep.com/en/articles/8284197-trading-combine-parameters",ruleNotes:"Trading Combine rules: maximum loss trails highest end-of-day balance and locks at starting balance; best day must stay below 50% of total profits."},{id:"the5ers",name:"The5%ers",phase1:{profitTarget:8,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"dayStart",totalDrawdownBasis:"initial",timeLimitDays:null,minTradingDays:3},phase2:{profitTarget:5,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"dayStart",totalDrawdownBasis:"initial",timeLimitDays:null,minTradingDays:3},consistencyRule:!1,accountSizes:[{label:"$6,000",value:6e3,fee:95},{label:"$20,000",value:2e4,fee:175},{label:"$50,000",value:5e4,fee:235},{label:"$100,000",value:1e5,fee:235},{label:"$200,000",value:2e5,fee:850}],ruleSnapshotDate:"2026-05-10",ruleSourceUrl:"https://help.the5ers.com/what-are-the-general-rules-for-the-high-stakes-program/",ruleNotes:"High Stakes Classic-style preset: daily loss is 5% of the highest of starting balance/equity of the day; max loss is 10% of initial balance. New High Stakes phase 1 target may be 10%."},{id:"myfundedfx",name:"MyFundedFX",phase1:{profitTarget:8,dailyDrawdown:5,totalDrawdown:12,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:30,minTradingDays:5},phase2:{profitTarget:5,dailyDrawdown:5,totalDrawdown:12,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:60,minTradingDays:5},consistencyRule:!1,accountSizes:[{label:"$5,000",value:5e3,fee:49},{label:"$10,000",value:1e4,fee:84},{label:"$25,000",value:25e3,fee:169},{label:"$50,000",value:5e4,fee:269},{label:"$100,000",value:1e5,fee:499},{label:"$200,000",value:2e5,fee:949}],ruleSnapshotDate:"2026-05-10",ruleSourceUrl:"https://myfundedfx.com/",ruleNotes:"Preset requires periodic verification against MyFundedFX current challenge terms."}
20,{id:"fundednext",name:"Funded Next",phase1:{profitTarget:10,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:28,minTradingDays:5},phase2:{profitTarget:5,dailyDrawdown:5,totalDrawdown:10,drawdownType:"static",dailyDrawdownBasis:"initial",totalDrawdownBasis:"initial",timeLimitDays:56,minTradingDays:5},consistencyRule:!1,accountSizes:[{label:"$6,000",value:6e3,fee:59},{label:"$15,000",value:15e3,fee:119},{label:"$25,000",value:25e3,fee:199},{label:"$50,000",value:5e4,fee:299},{label:"$100,000",value:1e5,fee:549},{label:"$200,000",value:2e5,fee:999}],ruleSnapshotDate:"2026-05-10",ruleSourceUrl:"https://help.fundednext.com/en/articles/8019436-what-rules-do-i-need-to-follow-in-the-evaluation-challenge",ruleNotes:"Evaluation model is no longer offered to new clients as of 2025-03-18; preset kept for existing-client compatibility."}];function simulatePhase(e,t,a,s,l){var i,r,n;let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},d=null!==(i=o.random)&&void 0!==i?i:Math.random,c=a.winRate/100,u=a.riskPerTrade/100,m=null!==(r=e.timeLimitDays)&&void 0!==r?r:365,p=t*(1+e.profitTarget/100),h=e.dailyDrawdown/100,x=e.totalDrawdown/100,f=null!==(n=e.totalDrawdownAmount)&&void 0!==n?n:t*x,b=e.minTradingDays,y=null!=o.consistencyMaxBestDayPct?o.consistencyMaxBestDayPct/100:null,getDailyLossFloor=a=>{if(h<=0)return-1/0;let s="initial"===e.dailyDrawdownBasis?t*h:a*h;return a-s},getTotalLossFloor=(a,s)=>"intradayPeak"===e.totalDrawdownBasis?a-f:"endOfDayPeak"===e.totalDrawdownBasis?Math.min(s-f,t):t-f,passesConsistency=(e,t)=>null===y||!(t<=0)&&e/t<y,g=0,w=0,v=0,j=0,D=0,N=[];for(let e=0;e<s;e++){let s=t,i=t,r=t,n=0,o=0,h=!1,x=null,f=0,y=e<l,T=y?[s]:[];for(let e=1;e<=m;e++){let t=s,l=getDailyLossFloor(t),m=0;for(let e=0;e<a.tradesPerDay;e++){let e=s*u,t=d()<c,n=t?e*a.avgWin:-(e*a.avgLoss);if(s+=n,m+=n,i=Math.max(i,s),s<=l){x="daily_dd";break}let o=getTotalLossFloor(i,r);if(s<=o){x="total_dd";break}}if(x){y&&T.push(s);break}if(m>0&&(o+=m,n=Math.max(n,m)),r=Math.max(r,s),y&&T.push(s),s>=p&&e>=b&&passesConsistency(n,o)){h=!0,f=e;break}}h?(g++,D+=f):"daily_dd"===x?w++:"total_dd"===x?v++:j++,y&&N.push({curve:T,passed:h})}return{passRate:g/s*100,failByDailyDD:w/s*100,failByTotalDD:v/s*100,failByTimeLimit:j/s*100,avgDaysToPass:g>0?D/g:0,samplePaths:N}}var k=a(98461);let L=D()(()=>a.e(6495).then(a.bind(a,26495)).then(e=>e.Line),{loadableGenerated:{webpack:()=>[null]},ssr:!1});v.kL.register(v.uw,v.f$,v.od,v.jn,v.Dx,v.u,v.De,v.Gu);let _={winRate:55,avgWin:1.5,avgLoss:1,tradesPerDay:3,riskPerTrade:1},PropFirmChallengeCalculator=()=>{var e,t,a,i,n,v;let[j,D]=(0,l.useState)("ftmo"),[N,F]=(0,l.useState)(3),[M,B]=(0,l.useState)(R),[A,$]=(0,l.useState)(_),[I,z]=(0,l.useState)(null),[Z,O]=(0,l.useState)(!1),[E,V]=(0,l.useState)(null),W="custom"===j,U=S.find(e=>e.id===j),G=W?M.accountSize:null!==(a=null==U?void 0:null===(e=U.accountSizes[N])||void 0===e?void 0:e.value)&&void 0!==a?a:1e5,X=W?M.fee:null!==(i=null==U?void 0:null===(t=U.accountSizes[N])||void 0===t?void 0:t.fee)&&void 0!==i?i:0,q=W?null:null==U?void 0:U.accountSizes[N],withSelectedAccountLoss=e=>(null==q?void 0:q.maxLossAmount)?{...e,totalDrawdownAmount:q.maxLossAmount,totalDrawdown:q.maxLossAmount/G*100}:e,Y=W?{profitTarget:M.profitTarget,dailyDrawdown:M.dailyDrawdown,totalDrawdown:M.totalDrawdown,drawdownType:M.drawdownType,dailyDrawdownBasis:M.dailyDrawdownBasis,totalDrawdownBasis:M.totalDrawdownBasis,timeLimitDays:M.timeLimitDays,minTradingDays:0}:withSelectedAccountLoss(U.phase1),Q=W?null!=M.phase2ProfitTarget?{profitTarget:M.phase2ProfitTarget,dailyDrawdown:M.dailyDrawdown,totalDrawdown:M.totalDrawdown,drawdownType:M.drawdownType,dailyDrawdownBasis:M.dailyDrawdownBasis,totalDrawdownBasis:M.totalDrawdownBasis,timeLimitDays:M.timeLimitDays,minTradingDays:0}:null:(null==U?void 0:U.phase2)?withSelectedAccountLoss(U.phase2):null,H=!W&&(null==U?void 0:U.consistencyRule)?U.consistencyRuleMaxBestDayPct:void 0;(0,l.useEffect)(()=>{if(!W&&U){let e=U.accountSizes.findIndex(e=>1e5===e.value);F(e>=0?e:U.accountSizes.length-1)}},[j]);let handleStrategyChange=e=>{let{name:t,value:a}=e.target,s=""===a?0:parseFloat(a);$(e=>({...e,[t]:isNaN(s)?e[t]:s}))},handleCustomRulesChange=e=>{let{name:t,value:a}=e.target,s=""===a?0:parseFloat(a);B(e=>({...e,[t]:isNaN(s)?e[t]:s}))},runSimulation=()=>
20{if(A.tradesPerDay<=0){V("Trades per day must be greater than 0.");return}if(A.riskPerTrade<=0){V("Risk per trade must be greater than 0.");return}V(null),O(!0),setTimeout(()=>{let e=simulatePhase(Y,G,A,1e4,50,{consistencyMaxBestDayPct:H}),t=null;Q&&(t=simulatePhase(Q,G,A,1e4,50,{consistencyMaxBestDayPct:H}));let{table:a,winRates:s,rMultiples:l}=function(e,t,a,s,l){let i=[],r=a.winRate;for(let e=r-10;e<=r+10;e+=5)e>0&&e<100&&i.push(e);let n=[.5,1,1.5,2,2.5,3],o=[];for(let s of i){let i=[];for(let r of n){let n={...a,winRate:s,avgWin:r},o=simulatePhase(e,t,n,500,0,{consistencyMaxBestDayPct:l});i.push(o.passRate)}o.push(i)}return{table:o,winRates:i,rMultiples:n}}(Y,G,A,0,H);z({phase1:e,phase2:t,sensitivityTable:a,sensitivityWinRates:s,sensitivityRMultiples:l}),O(!1)},50)};(0,l.useEffect)(()=>{runSimulation()},[]);let buildChartData=e=>{let t=e.samplePaths.map((e,t)=>({label:"Path ".concat(t+1),data:e.curve,borderColor:e.passed?"".concat(g.o0.pos,"88"):"".concat(g.o0.neg,"55"),borderWidth:1,pointRadius:0,tension:.2,fill:!1})),a=Math.max(...e.samplePaths.map(e=>e.curve.length)),s=Array.from({length:a},(e,t)=>"Day ".concat(t));return{labels:s,datasets:t}},K=(0,g.yP)(),J={...K,interaction:{mode:"index",intersect:!1},plugins:{...K.plugins,legend:{...K.plugins.legend,display:!1},title:{...K.plugins.title,display:!0,text:"Monte Carlo Equity Paths (50 samples)"}},scales:{...K.scales,x:{...K.scales.x,ticks:{...K.scales.x.ticks,maxTicksLimit:10}},y:{...K.scales.y,ticks:{...K.scales.y.ticks,callback:e=>"$".concat(Number(e).toLocaleString())}}}},fmtPct=e=>"".concat(e.toFixed(1),"%"),fmtCurrency=e=>"$".concat(Math.round(e).toLocaleString()),ee=I?I.phase1.passRate>0?1/(I.phase1.passRate/100):1/0:0,et=ee*X,formatAttempts=e=>Number.isFinite(e)?e.toFixed(1):"N/A",formatCost=e=>Number.isFinite(e)?fmtCurrency(e):"N/A",getCombinedPassRate=()=>(null==I?void 0:I.phase2)?I.phase1.passRate/100*(I.phase2.passRate/100):0,getPhaseLimitLabel=e=>{let t=e.totalDrawdownAmount?"".concat(fmtCurrency(e.totalDrawdownAmount)," (").concat(e.totalDrawdown.toFixed(1),"%)"):"".concat(e.totalDrawdown,"%"),a="initial"===e.totalDrawdownBasis?"static initial":"endOfDayPeak"===e.totalDrawdownBasis?"trailing EOD":"trailing intraday",s="initial"===e.dailyDrawdownBasis?"initial-capital amount":"day-start balance",l=e.dailyDrawdown>0?"".concat(e.dailyDrawdown,"% (").concat(s,")"):"None by default";return"Daily: ".concat(l," | Max loss: ").concat(t," (").concat(a,")")},getSensitivityCellColor=(e,t)=>{let a=t?1:.7;return e>=50?"rgba(76,175,80, ".concat(e>75?.4*a:.2*a,")"):"rgba(244,67,54, ".concat(e<25?.4*a:.2*a,")")},renderPhaseResults=(e,t,a,l)=>(0,s.jsxs)("div",{className:"mb-6",children:[(0,s.jsxs)("h3",{className:"mb-3 text-sm font-medium text-ts-t1",children:[a," Results"]}),(0,s.jsxs)(d.Zb,{className:"mb-4 p-4",children:[(0,s.jsx)("p",{className:"mb-1 text-[13px] text-ts-t2",children:"Pass Probability"}),(0,s.jsxs)("div",{className:"mb-2 flex items-baseline gap-2",children:[e.passRate>=50?(0,s.jsx)(y.KY,{className:"text-3xl font-bold",children:fmtPct(e.passRate)}):(0,s.jsx)(y.o$,{className:"text-3xl font-bold",children:fmtPct(e.passRate)}),(0,s.jsx)("span",{className:"text-[13px] text-ts-t2",children:"chance of passing"})]}),(0,s.jsx)(m.E,{value:Math.min(e.passRate,100),color:e.passRate>=50?"pos":"neg"})]}),(0,s.jsxs)("div",{className:"mb-4 grid grid-cols-3 gap-3",children:[(0,s.jsx)(f.i,{label:"Failed: Daily DD",value:fmtPct(e.failByDailyDD),valueClassName:"text-ts-neg"}),(0,s.jsx)(f.i,{label:"Failed: Total DD",value:fmtPct(e.failByTotalDD),valueClassName:"text-ts-neg"}),(0,s.jsx)(f.i,{label:"Failed: Time Limit",value:fmtPct(e.failByTimeLimit),valueClassName:"text-ts-neg",hint:null===t.timeLimitDays?"".concat(365,"d horizon"):"Time limit"})]}),(0,s.jsxs)("div",{className:"mb-4 grid grid-cols-3 gap-3",children:[(0,s.jsx)(f.i,{label:"Avg Days to Pass",value:e.avgDaysToPass>0?Math.round(e.avgDaysToPass):"N/A"}),(0,s.jsx)(f.i,{label:"Expected Attempts",value:e.passRate>0?(1/(e.passRate/100)).toFixed(1):"N/A"}),(0,s.jsx)(f.i,{label:"Expected Cost",value:e.passRate>0?fmtCurrency(1/(e.passRate/100)*X):"N/A"})]}),l&&e.samplePaths.length>0&&(0,s.jsx)("div",{className:"mb-4 h-[350px]",children:(0,s.jsx)(L,{data:buildChartData(e),options:J})})]});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r(),{children:[(0,s.jsx)("title",{children:"Prop Firm Challenge Calculator | Monte Carlo Simulator | TradeSearcher"}),(0,s.jsx)("meta",{name:"description",content:"Calculate your probability of passing prop firm challenges (FTMO, TopStep, The5%ers, MyFundedFX, Funded Next) with 10,000 Monte Carlo simulations based on your strategy stats."}),(0,s.jsx)("meta",{property:"og:title",content:"Prop Firm Challenge Calculator | Monte Carlo Simulator | TradeSearcher"}),(0,s.jsx)("meta",{property:"og:description",content:"Calculate your probability of passing prop firm challenges (FTMO, TopStep, The5%ers, MyFundedFX, Funded Next) with 10,000 Monte Carlo simulations based on your strategy stats."}),(0,s.jsx)("meta",{property:"og:type",content:"website"}),(0,s.jsx)("meta",{property:"og:url",content:"https://tradesearcher.ai/tools/prop-firm-challenge-calculator"}),(0,s.jsx)("meta",{property:"og:site_name",content:"TradeSearcher"}),(0,s.jsx)("meta",{name:"twitter:card",content:"summary"}),(0,s.jsx)("meta",{name:"twitter:title",content:"Prop Firm Challenge Calculator | Monte Carlo Simulator | TradeSearcher"}),(0,s.jsx)("meta",{name:"twitter:description",content:"Calculate your probability of passing prop firm challenges (FTMO, TopStep, The5%ers, MyFundedFX, Funded Next) with 10,000 Monte Carlo simulations based on your strategy stats."})]}),(0,s.jsxs)("div",{className:"mx-auto w-full max-w-[1536px] px-4 pb-8 sm:px-6",children:[(0,s.jsx)(o.Z,{}),(0,s.jsxs)(C.Z,{sx:{mt:2},children:[(0,s.jsx)(b.m,{title:"Prop Firm Challenge Calculator",description:"Estimate your probability of passing a prop firm challenge using Monte Carlo simulation. Select your prop firm, enter your strategy stats, and run 10,000 simulated attempts to see realistic pass rates."}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-12",children:[(0,s.jsx)("div",{className:"md:col-span-4",children:(0,s.jsxs)(d.Zb,{className:"h-full p-5",children:[(0,s.jsx)("h2",{className:"mb-4 text-[15px] font-semibold text-ts-t1",children:"Challenge Setup"}),(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault(),runSimulation()},className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Prop Firm"}),(0,s.jsxs)(x.Ph,{value:j,onValueChange:D,children:[(0,s.jsx)(x.i4,{children:(0,s.jsx)(x.ki,{})}),(0,s.jsxs)(x.Bw,{children:[S.map(e=>(0,s.jsx)(x.Ql,{value:e.id,children:e.name},e.id)),(0,s.jsx)(x.Ql,{value:"custom",children:"Custom"})]})]})]}),!W&&U&&(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Account Size"}),(0,s.jsxs)(x.Ph,{value:String(N),onValueChange:e=>F(Number(e)),children:[(0,s.jsx)(x.i4,{children:(0,s.jsx)(x.ki,{})}),(0,s.jsx)(x.Bw,{children:U.accountSizes.map((e,t)=>(0,s.jsxs)(x.Ql,{value:String(t),children:[e.label," (Fee: $",e.fee,")"]},t))})]})]}),!W&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.Z,{className:"my-1"}),(0,s.jsx)("h3",{className:"mt-2 text-[13px] font-medium text-ts-t2",children:"Phase 1 Rules"}),(0,s.jsx)("p",{className:"text-[11px] text-ts-t3",children:getPhaseLimitLabel(Y)})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetProfitTarget1",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Profit Target %"}),(0,s.jsx)(u.I,{id:"presetProfitTarget1",value:Y.profitTarget,disabled:!0})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetDailyDD1",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Daily DD %"}),(0,s.jsx)(u.I,{id:"presetDailyDD1",value:Y.dailyDrawdown,disabled:!0})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetTotalDD1",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Total DD %"}),(0,s.jsx)(u.I,{id:"presetTotalDD1",value:Y.totalDrawdown,disabled:!0})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetTimeLimit1",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Time Limit"}),(0,s.jsx)(u.I,{id:"presetTimeLimit1",value:Y.timeLimitDays?"".concat(Y.timeLimitDays," days"):"Unlimited",disabled:!0})]})]}),Q&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-[13px] font-medium text-ts-t2",children:"Phase 2 Rules"}),(0,s.jsx)("p",{className:"text-[11px] text-ts-t3",children:getPhaseLimitLabel(Q)})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetProfitTarget2",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Profit Target %"}),(0,s.jsx)(u.I,{id:"presetProfitTarget2",value:Q.profitTarget,disabled:!0})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"presetTimeLimit2",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Time Limit"}),(0,s.jsx)(u.I,{id:"presetTimeLimit2",value:Q.timeLimitDays?"".concat(Q.timeLimitDays," days"):"Unlimited",disabled:!0})]})]})]}),U&&(0,s.jsxs)(p.b,{variant:"info",children:[(0,s.jsxs)("div",{className:"text-[11px]",children:["Rules verified ",U.ruleSnapshotDate,". Source: ",U.ruleSourceUrl]}),U.ruleNotes&&(0,s.jsx)("div",{className:"text-[11px]",children:U.ruleNotes})]})]}),W&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.Z,{className:"my-1"}),(0,s.jsx)("h3",{className:"mt-2 text-[13px] font-medium text-ts-t2",children:"Custom Rules"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"accountSize",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Account Size"}),(0,s.jsx)(u.I,{id:"accountSize",name:"accountSize",type:"number",value:M.accountSize,onChange:handleCustomRulesChange,min:1e3})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"fee",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Fee ($)"}),(0,s.jsx)(u.I,{id:"fee",name:"fee",type:"number",value:M.fee,onChange:handleCustomRulesChange,min:0})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"profitTarget",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Profit Target %"}),(0,s.jsx)(u.I,{id:"profitTarget",name:"profitTarget",type:"number",value:M.profitTarget,onCh
20ange:handleCustomRulesChange,min:1,max:100,step:.5})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"dailyDrawdown",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Daily DD %"}),(0,s.jsx)(u.I,{id:"dailyDrawdown",name:"dailyDrawdown",type:"number",value:M.dailyDrawdown,onChange:handleCustomRulesChange,min:.5,max:100,step:.5})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"totalDrawdown",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Total DD %"}),(0,s.jsx)(u.I,{id:"totalDrawdown",name:"totalDrawdown",type:"number",value:M.totalDrawdown,onChange:handleCustomRulesChange,min:1,max:100,step:.5})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"timeLimitDays",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Time Limit (days)"}),(0,s.jsx)(u.I,{id:"timeLimitDays",name:"timeLimitDays",type:"number",value:null!==(n=M.timeLimitDays)&&void 0!==n?n:"",onChange:e=>{let t=e.target.value;B(e=>({...e,timeLimitDays:""===t?null:parseInt(t,10)}))},min:1}),(0,s.jsx)("p",{className:"mt-1 text-[11px] text-ts-t3",children:"Leave empty for unlimited"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"phase2ProfitTarget",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Phase 2 Profit Target %"}),(0,s.jsx)(u.I,{id:"phase2ProfitTarget",name:"phase2ProfitTarget",type:"number",value:null!==(v=M.phase2ProfitTarget)&&void 0!==v?v:"",onChange:e=>{let t=e.target.value;B(e=>({...e,phase2ProfitTarget:""===t?null:parseFloat(t)}))},min:1,max:100,step:.5}),(0,s.jsx)("p",{className:"mt-1 text-[11px] text-ts-t3",children:"Leave empty if no phase 2"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.Z,{className:"my-1"}),(0,s.jsx)("h3",{className:"mt-2 text-[13px] font-medium text-ts-t2",children:"Your Strategy Stats"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"winRate",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Win Rate %"}),(0,s.jsx)(u.I,{id:"winRate",name:"winRate",type:"number",value:A.winRate,onChange:handleStrategyChange,min:1,max:99,step:1})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"avgWin",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Avg Win (R)"}),(0,s.jsx)(u.I,{id:"avgWin",name:"avgWin",type:"number",value:A.avgWin,onChange:handleStrategyChange,min:.1,step:.1}),(0,s.jsx)("p",{className:"mt-1 text-[11px] text-ts-t3",children:"R-multiples"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"avgLoss",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Avg Loss (R)"}),(0,s.jsx)(u.I,{id:"avgLoss",name:"avgLoss",type:"number",value:A.avgLoss,onChange:handleStrategyChange,min:.1,step:.1}),(0,s.jsx)("p",{className:"mt-1 text-[11px] text-ts-t3",children:"R-multiples"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"tradesPerDay",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Trades/Day"}),(0,s.jsx)(u.I,{id:"tradesPerDay",name:"tradesPerDay",type:"number",value:A.tradesPerDay,onChange:handleStrategyChange,min:1,max:50,step:1})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"riskPerTrade",className:"mb-1.5 block text-xs font-medium text-ts-t2",children:"Risk per Trade %"}),(0,s.jsx)(u.I,{id:"riskPerTrade",name:"riskPerTrade",type:"number",value:A.riskPerTrade,onChange:handleStrategyChange,min:.1,max:10,step:.1}),(0,s.jsx)("p",{className:"mt-1 text-[11px] text-ts-t3",children:"% of account risked per trade"})]}),(0,s.jsx)(c.z,{variant:"primary",type:"submit",className:"w-full",disabled:Z,children:Z?"Simulating...":"Run 10,000 Simulations"}),E&&(0,s.jsx)(p.b,{variant:"error",children:E}),(0,s.jsx)(k.Z,{tool:"prop-firm-challenge-calculator"})]})]})}),(0,s.jsx)("div",{className:"md:col-span-8",children:(0,s.jsxs)(d.Zb,{className:"p-5",children:[(0,s.jsx)("h2",{className:"mb-4 text-[15px] font-semibold text-ts-t1",children:"Simulation Results"}),Z&&(0,s.jsx)(m.E,{value:100,className:"mb-4 animate-pulse"}),I&&!Z&&(0,s.jsxs)(s.Fragment,{children:[renderPhaseResults(I.phase1,Y,"Phase 1",!0),I.phase2&&Q&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.Z,{className:"my-6"}),renderPhaseResults(I.phase2,Q,"Phase 2 (conditional on passing Phase 1)",!0),(0,s.jsxs)(d.Zb,{className:"mb-6 bg-ts-panel-2 p-4",children:[(0,s.jsx)("p",{className:"mb-1 text-[13px] text-ts-t2",children:"Combined Pass Probability (Phase 1 AND Phase 2)"}),(0,s.jsx)("p",{className:(0,w.cn)("text-2xl font-bold",getCombinedPassRate()>=.5?"text-ts-pos":"text-ts-neg"),children:fmtPct(100*getCombinedPassRate())}),(0,s.jsxs)("p",{className:"mt-1 text-[13px] text-ts-t2",children:["Expected attempts: ",formatAttempts(getCombinedPassRate()>0?1/getCombinedPassRate():1/0)," | Expected cost: ",formatCost((getCombinedPassRate()>0?1/getCombinedPassRate():1/0)*X)]})]})]}),(0,s.jsx)(h.Z,{className:"my-6"}),(0,s.jsx)("h3",{className:"mb-1 text-sm font-medium text-ts-t1",children:"Sensitivity Analysis (Phase 1)"}),(0,s.jsx)("p",{className:"mb-4 text-[13px] text-ts-t2",children:"Pass probability at different win rates and average win R-multiples"}),(0,s.jsx)("div",{className:"mb-6 overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full border-collapse text-xs",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"border-x-0 border-b border-t-0 border-solid border-ts-line px-3 py-2 text-left font-bold text-ts-t2",children:"Win Rate \\ Avg Win (R)"}),I.sensitivityRMultiples.map(e=>(0,s.jsxs)("th",{className:"border-x-0 border-b border-t-0 border-solid border-ts-line px-3 py-2 text-center font-bold text-ts-t2",children:[e.toFixed(1),"R"]},e))]})}),(0,s.jsx)("tbody",{children:I.sensitivityTable.map((e,t)=>{let a=I.sensitivityWinRates[t];return(0,s.jsxs)("tr",{children:[(0,s.jsxs)("td",{className:"border-x-0 border-b border-t-0 border-solid border-ts-line px-3 py-2 font-bold text-ts-t2",children:[a,"%"]}),e.map((e,t)=>{let l=I.sensitivityRMultiples[t],i=a===A.winRate&&.01>Math.abs(l-A.avgWin);return(0,s.jsx)("td",{className:(0,w.cn)("border-x-0 border-b border-t-0 border-solid border-ts-line px-3 py-2 text-center text-ts-t1",i?"font-black":"font-normal"),style:{backgroundColor:getSensitivityCellColor(e,i),border:i?"2px solid #15d57f":void 0},children:fmtPct(e)},t)})]},a)})})]})}),(0,s.jsx)(p.b,{variant:I.phase1.passRate>
20=50?"success":I.phase1.passRate>=25?"warning":"error",children:(0,s.jsx)("span",{className:"text-[13px]",children:I.phase1.passRate>=50?"With a ".concat(fmtPct(I.phase1.passRate)," pass rate, your strategy has a reasonable chance of passing. On average, you would need ").concat(formatAttempts(ee)," attempts costing around ").concat(formatCost(et),"."):I.phase1.passRate>=10?"With a ".concat(fmtPct(I.phase1.passRate)," pass rate, passing is possible but will likely require multiple attempts. Consider reducing risk per trade or improving your win rate and R-multiple before attempting."):"With a ".concat(fmtPct(I.phase1.passRate)," pass rate, this challenge is very difficult with your current stats. Strongly consider improving your strategy before spending on challenge fees.")})})]}),!I&&!Z&&(0,s.jsx)("p",{className:"text-[13px] text-ts-t2",children:"Configure your settings and click “Run 10,000 Simulations” to see results."})]})})]}),(0,s.jsx)(P.U,{title:"The Full Prop Firm Toolkit",id:"prop-firm-toolkit",children:(0,s.jsxs)("p",{children:["Passing the challenge is only step one. Once funded, the"," ",(0,s.jsx)(T(),{href:"/tools/prop-firm-payout-calculator",children:"payout calculator"})," ","turns your split, fees and monthly return into actual take-home income, and the"," ",(0,s.jsx)(T(),{href:"/tools/prop-firm-consistency-calculator",children:"consistency rule calculator"})," ","checks whether your best day blocks a payout under your firm's consistency rule. For the survival math behind both phases, the"," ",(0,s.jsx)(T(),{href:"/tools/risk-of-ruin-calculator",children:"risk of ruin calculator"})," ","quantifies the odds of breaching a drawdown limit with your exact strategy statistics."]})})]})]})]})};PropFirmChallengeCalculator.getLayout=function(e){return(0,s.jsx)(n.Z,{children:e})},PropFirmChallengeCalculator.getCanonicalPath="/tools/prop-firm-challenge-calculator";var F=PropFirmChallengeCalculator},51683:function(e,t,a){"use strict";a.d(t,{KY:function(){return r},Pe:function(){return percentile},Wt:function(){return normalCDF},me:function(){return normalRandom},o$:function(){return n},xG:function(){return formatCurrency}});var s=a(85893),l=a(97537),i=a(77173);let coloredText=(e,t)=>{let Component=t=>{let{children:a,className:r,style:n,sx:o,component:d,variant:c,gutterBottom:u,noWrap:m,...p}=t,h=null!=d?d:"span";return(0,s.jsx)(h,{className:(0,l.cn)(e,"inline",r),style:{...(0,i.F)(o),...n},...p,children:a})};return Component.displayName=t,Component},r=coloredText("text-ts-pos","PositiveText"),n=coloredText("text-ts-neg","NegativeText");function formatCurrency(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e<0?"-":"")+"$"+Math.abs(e).toLocaleString("en-US",{minimumFractionDigits:t,maximumFractionDigits:t})}function normalCDF(e){let t=Math.abs(e)/Math.SQRT2,a=1/(1+.3275911*t);return .5*(1+(e<0?-1:1)*(1-((((1.061405429*a+-1.453152027)*a+1.421413741)*a+-.284496736)*a+.254829592)*a*Math.exp(-t*t)))}function normalRandom(e,t){let a;do a=Math.random();while(0===a);return e+t*(Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*Math.random()))}function percentile(e,t){if(0===e.length)return 0;let a=Math.ceil(t/100*e.length)-1;return e[Math.max(0,Math.min(a,e.length-1))]}},5152:function(e,t,a){e.exports=a(1342)},37483:function(e,t,a){"use strict";a.d(t,{fC:function(){return x},z$:function(){return f}});var s=a(67294),l=a(25360),i=a(75320),r=a(85893),n="Progress",[o,d]=(0,l.b)(n),[c,u]=o(n),m=s.forwardRef((e,t)=>{var a,s;let{__scopeProgress:l,value:n=null,max:o,getValueLabel:d=defaultGetValueLabel,...u}=e;(o||0===o)&&!isValidMaxNumber(o)&&console.error((a=`${o}`,`Invalid prop \`max\` of value \`${a}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let m=isValidMaxNumber(o)?o:100;null===n||isValidValueNumber(n,m)||console.error((s=`${n}`,`Invalid prop \`value\` of value \`${s}\` supplied to \`Progress\`. The \`value\` prop must be:
21  - a positive number
22  - less than the value passed to \`max\` (or 100 if no \`max\` prop is set)
23  - \`null\` or \`undefined\` if the progress is indeterminate.
24
25Defaulting to \`null\`.`));let p=isValidValueNumber(n,m)?n:null,h=isNumber(p)?d(p,m):void 0;return(0,r.jsx)(c,{scope:l,value:p,max:m,children:(0,r.jsx)(i.WV.div,{"aria-valuemax":m,"aria-valuemin":0,"aria-valuenow":isNumber(p)?p:void 0,"aria-valuetext":h,role:"progressbar","data-state":getProgressState(p,m),"data-value":p??void 0,"data-max":m,...u,ref:t})})});m.displayName=n;var p="ProgressIndicator",h=s.forwardRef((e,t)=>
25{let{__scopeProgress:a,...s}=e,l=u(p,a);return(0,r.jsx)(i.WV.div,{"data-state":getProgressState(l.value,l.max),"data-value":l.value??void 0,"data-max":l.max,...s,ref:t})});function defaultGetValueLabel(e,t){return`${Math.round(e/t*100)}%`}function getProgressState(e,t){return null==e?"indeterminate":e===t?"complete":"loading"}function isNumber(e){return"number"==typeof e}function isValidMaxNumber(e){return isNumber(e)&&!isNaN(e)&&e>0}function isValidValueNumber(e,t){return isNumber(e)&&!isNaN(e)&&e<=t&&e>=0}h.displayName=p;var x=m,f=h},46277:function(e,t,a){"use strict";a.d(t,{Z:function(){return l}});var s=a(28717);let l=(0,s.Z)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},22813:function(e,t,a){"use strict";a.d(t,{Z:function(){return l}});var s=a(28717);let l=(0,s.Z)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},79906:function(e,t,a){"use strict";a.d(t,{Z:function(){return l}});var s=a(28717);let l=(0,s.Z)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},33541:function(e,t,a){"use strict";a.d(t,{Z:function(){return l}});var s=a(28717);let l=(0,s.Z)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]])}},function(e){e.O(0,[2196,1664,4561,8153,129,6637,6038,3173,3426,8420,2293,5132,9817,9774,2888,179],function(){return e(e.s=43377)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.