{
  "name": "Prop firm drawdown mechanics: which rule set uses which floor (living classifier + withdrawn Monte Carlo quantities)",
  "description": "A machine-readable map of which drawdown mechanic each pinned study rule set uses (static floor, end-of-day trailing, intraday trailing, closed-balance trailing), classified by tools/lib/drawdown-mechanic.js against live rules/**. Monte Carlo pass-rate quantities remain withdrawn. Contains no pass rates for any named firm.",
  "url": "https://propsurvival.com/research/static-vs-trailing",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "citation": "https://propsurvival.com/research/static-vs-trailing",
  "datePublished": "2026-07-11",
  "dateModified": "2026-09-11",
  "rulesVerified": "2026-07",
  "_generated_by": "tools/build-static-vs-trailing.js — mechanicArchetype via tools/lib/drawdown-mechanic.js; corpus_hash from computeCorpus(); zero hand-typed firm counts",
  "_reproduce": "node tools/build-static-vs-trailing.js --check",
  "withdrawnFields": {
    "date": "2026-07-17",
    "removed": [
      "table1_drawdownIsolated.rows[].passActualPct",
      "table1_drawdownIsolated.rows[].passStaticCFPct",
      "table1_drawdownIsolated.rows[].trailingCostPts",
      "table1_drawdownIsolated.rows[].fundedProbPct",
      "table2_riskScaling.rows[].passPct"
    ],
    "why": "Two independent reasons, either of which is sufficient. (1) POLICY: a firm's drawdown rule is a fact about a document that firm publishes, and PropSurvival cites it. PropSurvival publishes no measured pass rate for any firm. (2) CORRECTNESS: the withdrawn values were produced on 2026-07-11 by engine v1.0, which predates later engine fixes. They were not recomputed — mechanic-level quantities return via the living classifier; pass quantities stay withdrawn.",
    "restoreCondition": "Not restorable as published pass rates. Mechanic-level quantities are regenerated by this builder from rules/** via classifyMechanic()."
  },
  "method": {
    "engine": "PropSurvival Quant Decision Engine (historical July study; pass quantities withdrawn)",
    "classifier": "tools/lib/drawdown-mechanic.js classifyMechanic — same predicates as build-mechanic-pages.js / build-drawdown-landscape.js",
    "pathsPerCell": 20000,
    "prng": {
      "algorithm": "mulberry32",
      "seed": 12345
    },
    "note": "Monte Carlo path counts are historical method documentation only. Living outputs are classifier + corpus_hash."
  },
  "referenceProfile": {
    "winRatePct": 52,
    "avgWinR": 1.6,
    "avgLossR": 1,
    "tradesPerDay": 4,
    "riskPerTradePct": 1,
    "costPerTradeR": 0.05,
    "note": "One profile cannot represent all traders. Historical experimental control for the withdrawn counterfactual — not a typical trader."
  },
  "corpus": {
    "rule_set_count": 60,
    "config_count": 247,
    "global_anchor": "2026-09-10",
    "oldest_anchor": "2026-07-22",
    "anchor_month": "2026-07",
    "corpus_hash": "a72e6a8c00e7d788ca0b4fc3023b7ce528fe39ad286304ed23252e3dd87d2cfc"
  },
  "study_sample": {
    "rule_set_count": 8,
    "moving": 5,
    "static": 3,
    "eod_trailing": 4,
    "intraday_trailing": 1,
    "closed_balance_trailing": 0
  },
  "corpus_mechanic_summary": {
    "denominator_configs": 247,
    "rule_set_count": 60,
    "static": 87,
    "eod_trailing": 110,
    "intraday_trailing": 37,
    "closed_balance_trailing": 13,
    "moving": 160,
    "note": "Byte-agree with tools/build-drawdown-landscape.js mechanic_archetypes via tools/lib/drawdown-mechanic.js"
  },
  "table1_mechanicByRuleSet": {
    "description": "Which drawdown mechanic each pinned study rule set uses. Every mechanicArchetype is classified from the firm's live rules/<slug>/<size>.json via tools/lib/drawdown-mechanic.js. No pass rates: see withdrawnFields.",
    "rows": [
      {
        "firm": "FTMO",
        "program": "FTMO Challenge (2-Step)",
        "slug": "ftmo",
        "account_size": 50000,
        "drawdownRule": "static 10%",
        "mechanicArchetype": "static_floor",
        "reproduceUrl": "https://propsurvival.com/app?firm=ftmo"
      },
      {
        "firm": "FTMO",
        "program": "FTMO Challenge (1-Step)",
        "slug": "ftmo-1step",
        "account_size": 50000,
        "drawdownRule": "trailing EOD 10%",
        "mechanicArchetype": "eod_trailing",
        "reproduceUrl": "https://propsurvival.com/app?firm=ftmo-1step"
      },
      {
        "firm": "FundedNext Futures",
        "program": "Legacy Challenge",
        "slug": "fundednext",
        "account_size": 50000,
        "drawdownRule": "trailing EOD 4%",
        "mechanicArchetype": "eod_trailing",
        "reproduceUrl": "https://propsurvival.com/app?firm=fundednext"
      },
      {
        "firm": "Apex Trader Funding",
        "program": "Intraday Trailing Drawdown Evaluation (EA)",
        "slug": "apex",
        "account_size": 50000,
        "drawdownRule": "trailing intraday 4%",
        "mechanicArchetype": "intraday_trailing",
        "reproduceUrl": "https://propsurvival.com/app?firm=apex"
      },
      {
        "firm": "Topstep",
        "program": "Trading Combine",
        "slug": "topstep",
        "account_size": 50000,
        "drawdownRule": "trailing EOD 4%",
        "mechanicArchetype": "eod_trailing",
        "reproduceUrl": "https://propsurvival.com/app?firm=topstep"
      },
      {
        "firm": "FundingPips",
        "program": "2-Step Standard",
        "slug": "funding-pips",
        "account_size": 50000,
        "drawdownRule": "static 10%",
        "mechanicArchetype": "static_floor",
        "reproduceUrl": "https://propsurvival.com/app?firm=funding-pips"
      },
      {
        "firm": "The5ers",
        "program": "High Stakes (New)",
        "slug": "the5ers",
        "account_size": 50000,
        "drawdownRule": "static 10%",
        "mechanicArchetype": "static_floor",
        "reproduceUrl": "https://propsurvival.com/app?firm=the5ers"
      },
      {
        "firm": "MyFundedFutures",
        "program": "Builder",
        "slug": "myfundedfutures",
        "account_size": 50000,
        "drawdownRule": "trailing EOD 4%",
        "mechanicArchetype": "eod_trailing",
        "reproduceUrl": "https://propsurvival.com/app?firm=myfundedfutures"
      }
    ]
  },
  "mechanicArchetypes": {
    "description": "The qualitative behaviour of each floor mechanic. Every statement here follows from the rule text alone and does not depend on any simulation being correct — which is why these survive and the quantities did not.",
    "static_floor": "A fixed elimination line set at account open. It never moves. Distance to elimination changes only when equity changes.",
    "eod_trailing": "The elimination line ratchets upward on end-of-day closes only, and never falls. Intraday spikes that are given back before the close do not move it.",
    "intraday_trailing": "The elimination line ratchets upward on intraday equity peaks, including unrealized profit, and never falls. A spike that is never banked still moves the line permanently.",
    "closed_balance_trailing": "The elimination line ratchets upward only on closed-trade balance peaks, and never falls. Unrealized equity spikes that are not banked do not move it.",
    "freeze_at_initial": "Once the trailing line reaches the initial balance it locks there and stops trailing, after which the account behaves as a static-floor account."
  },
  "disclaimer": "PropSurvival models published evaluation rules. This dataset classifies drawdown mechanics from the live rule corpus and documents a withdrawn Monte Carlo counterfactual. It does not rank firms, publishes no pass rate for any named firm, and is not affiliated with any firm. Licence: CC BY 4.0."
}
