Skip to content
PropSurvival
For creators

Embeddable Widgets

The one-sentence version: three of PropSurvival's calculators run as free, iframe-embeddable widgets on your own page — the exact same Monte Carlo engine as the full site, not a simplified stand-in, so a number shown here is the same number the full tool would show for the same inputs — plus a fourth, static rule-fact card that runs no simulation at all and simply cites one firm's one published rule value from the same dated corpus.

1. Why the number doesn't drift

Most free prop-firm calculators model a static drawdown floor because it is simpler to build — and on identical trading statistics that can report a materially higher pass probability than a rule-faithful trailing-drawdown model, because a static floor can't be hit by a retracement from an unrealized equity peak. This site's simulator runs the real trailing mechanic against the actual per-firm rule corpus, not a static-floor approximation; see the static-vs-trailing drawdown study for how large that gap can get. The three widgets below are pulled directly from the same source the main app builds from — propSimCore, runPropAtRisk, propVerdictOf, the per-size rule lookups, the full firm rule corpus — never reimplemented by hand. A number shown here will not quietly drift from the number the full tool would have shown for the same inputs.

2. Static vs Trailing Drawdown

Five inputs — win rate, average win, average loss, risk per trade, account size — run through one trader profile twice: once under a static drawdown floor, once under an end-of-day trailing floor locked at the starting balance. Both runs share a single seeded random stream, so the comparison isolates the floor mechanic itself rather than sampling noise. Target, drawdown percentage and day window are fixed to typical single-step challenge terms, stated on the widget itself.

Embed this
<iframe
  src="https://propsurvival.com/embed/static-vs-trailing?src=embed-trailing"
  width="100%"
  height="700"
  style="border:0"
  loading="lazy"
  title="Static vs trailing drawdown calculator — PropSurvival">
</iframe>
<p class="ps-attribution" style="margin:6px 0 0;font:11px system-ui,-apple-system,sans-serif;color:#82857F">Data: <a href="https://propsurvival.com/research/static-vs-trailing?utm_source=embed&utm_medium=widget&utm_campaign=atif" target="_blank" rel="noopener">PropSurvival static-vs-trailing drawdown study</a> · CC BY 4.0</p>

Measured content height after a run: about 675px at desktop widths, up to roughly 1030px at 320px wide — size the iframe for the narrowest width it will actually render at, or a little tall. The ?src=embed-trailing tag is explained in §7, below.

3. Prop Challenge Verdict

Pick one of the corpus firms or programs, enter six trading stats — account size, risk per trade, trades per day, win rate, average win, average loss — and get the same GO / WATCH / REDUCE RISK FIRST / NO-GO verdict, pass probability, binding failure cause and modeled safe-risk band the full tool's own Challenge Verdict panel computes for that firm's published rules. No firm selected, no number shown: a pass probability is a property of one firm's rule set, not a generic template standing in for it.

Embed this
<iframe
  src="https://propsurvival.com/embed/verdict-widget?src=embed-verdict"
  width="100%"
  height="650"
  style="border:0"
  loading="lazy"
  title="Prop challenge verdict calculator — PropSurvival">
</iframe>
<p class="ps-attribution" style="margin:6px 0 0;font:11px system-ui,-apple-system,sans-serif;color:#82857F">Source: <a href="https://propsurvival.com/app?utm_source=embed&utm_medium=widget&utm_campaign=atif" target="_blank" rel="noopener">PropSurvival prop challenge verdict tool</a></p>

Measured content height after a run: about 625px at desktop widths, up to roughly 1035px at 320px wide — same sizing note as above.

4. Personal Rules Survival

Not every visitor is inside a funded-account evaluation. This one asks for the reader's own rules instead of a firm's: a maximum drawdown, an optional daily loss stop, an optional profit goal (leaving it unset switches the question to "how often does my horizon survive," not "how often do I hit a target"), a horizon in trading days, and the same five trading stats the other two widgets ask for. No GO/NO-GO language — a self-imposed rule carries constraint-status wording ("STATUS: NN% of simulated paths respect every rule you set"), the same register the full app's own personal-rule-set mode uses, never the firm-evaluation verdict language.

Embed this
<iframe
  src="https://propsurvival.com/embed/personal-rules?src=embed-personal"
  width="100%"
  height="700"
  style="border:0"
  loading="lazy"
  title="Personal trading rules survival calculator — PropSurvival">
</iframe>
<p class="ps-attribution" style="margin:6px 0 0;font:11px system-ui,-apple-system,sans-serif;color:#82857F">Data: <a href="https://propsurvival.com/research/prop-firm-rules-census-2026?utm_source=embed&utm_medium=widget&utm_campaign=atif" target="_blank" rel="noopener">PropSurvival prop-firm rules census</a> · CC BY 4.0</p>

Measured content height after a run: about 700px at desktop widths, roughly 975px at 375px wide, up to roughly 1290px at 320px — same sizing note as above.

5. Rule-Fact Card

The three widgets above run something. This one runs nothing — no form, no button, no simulation. Paste the snippet and it shows one already-published rule value for one firm, resolved through the same per-account-size lookups (perSizeDD, perSizeDaily, perSizeTarget) and the same firm rule corpus the other three widgets read — never a second, hand-typed copy of a number the corpus already carries. Two query parameters choose what renders: ?firm=<id> picks the firm/program (the same ids the app itself reads via clean /app?firm=<id>, and the full list firm rules documents), ?fact=<key> picks the field — daily-loss-limit, max-drawdown, profit-target, or min-trading-days. A firm whose corpus entry carries no value for the chosen field (an instant-funded program with no evaluation profit target, for instance) renders "No stated …", never a fabricated number. The card names its own verification date and never asserts a rating, a ranking, or an opinion — one dated fact, sourced.

Embed this
<iframe
  src="https://propsurvival.com/embed/fact-badge?firm=ftmo2&fact=daily-loss-limit&src=embed-factbadge"
  width="320"
  height="160"
  style="border:0"
  loading="lazy"
  title="Rule-fact card — FTMO daily loss limit — PropSurvival">
</iframe>
<p class="ps-attribution" style="margin:6px 0 0;font:11px system-ui,-apple-system,sans-serif;color:#82857F">Data: <a href="https://propsurvival.com/research/prop-firm-rules-census-2026?utm_source=embed&utm_medium=widget&utm_campaign=atif" target="_blank" rel="noopener">PropSurvival prop-firm rules census</a> · CC BY 4.0</p>

Measured height after render: about 158px at the fixed 320px width (the card does not reflow — it is a fixed-width badge, not a responsive form). Change firm and fact in the URL to cite a different firm or field. A firm with no per-size variation on the chosen field states the number once; a firm whose rule varies by account size (Topstep, Apex and others) adds the published account size the shown number applies to, rather than leaving that unstated.

5b. Citeable one-time price card

Publishers who want to cite PropSurvival's paid Situation Report without retyping a price can embed this card. It shows Situation Report · $29 · one-time · one month, generated from the same single price source every other money surface reads — never a second, hand-typed figure. Attribution is the in-card via PropSurvival link (required; do not strip it). The card does not open checkout itself; it points readers at /pricing.

Embed this
<iframe
  src="https://propsurvival.com/partner/price-badge.html?src=embed-pricebadge"
  width="320"
  height="170"
  style="border:0"
  loading="lazy"
  title="Situation Report one-time price card — PropSurvival">
</iframe>
<p style="margin:6px 0 0;font:11px system-ui,-apple-system,sans-serif;color:#82857F">Source: <a href="https://propsurvival.com/" target="_blank" rel="noopener">PropSurvival</a></p>

One-step act for partners: copy the snippet, paste it on your page, keep the attribution link the card already carries. Measured height after render: about 165px at the fixed 320px width.

6. Using any widget

All five are static HTML with an inlined engine script — no cookies, nothing fetched from the host page, and no third-party analytics. On load they request only same-origin first-party /e/ count files (see §7). No account, no API key, no paid tier, no gating: this is a free distribution surface, not a lead-gated one. The three calculators carry a small "via PropSurvival" link back to the source page after a run; the rule-fact card carries the same link from the moment it renders (target="_blank" rel="noopener" on every one — it never navigates the host page).

An iframe passes no link equity to the page that hosts it, so every copy-paste snippet above also carries one crawlable <p class="ps-attribution"> line outside the iframe, pointing at the dataset or tool the widget draws its numbers from. Where that target is a CC BY 4.0 dataset — the static-vs-trailing drawdown study, the firm-rules census — that line is the license's attribution condition, not a courtesy: keep it visible when you paste the snippet. This is in addition to, not instead of, the in-widget "via PropSurvival" link described above; neither one should be stripped.

7. For site owners

Embedding any of the five widgets needs no request, no account, and no approval — the pages carry no framing restriction (no X-Frame-Options, no frame-ancestors block) and no rate limit. Each widget loads as one page from this domain into the host iframe; the only additional same-origin requests are the first-party /e/ load counts described below. Nothing is written to the visitor's browser (no cookies, no localStorage) from inside the iframe.

Because each widget loads live from this URL rather than being copied into the host page, an engine fix or a corpus update (a firm's rule changing, for instance) reaches every embed automatically — there is nothing to re-copy.

The ?src=embed-<slug> query string on each snippet above is a page-request tag: it changes nothing about how the widget runs. On load, the widget also fires a same-origin first-party count to static /e/b/embedload and /e/q/src files — no Worker isolate, no cookie, no third-party analytics company, and never your inputs or results (see the privacy page §3.7). The default slug names the widget itself; replacing it with a value naming your own site is optional and has no effect on what the widget shows. Nothing beyond the snippet above is required to put a widget on a page — no signup, no configuration step, no size to request.

Teaching risk in a classroom instead of a host page? See classroom-specific setups — a live rulebook, not a slide →

These widgets are one part of a larger set of things a partner can take and use — see the Partner Kit for the full list.