Methodology
How the Discipline Index is calculated.
The complete specification — every weight, threshold and window, plus what the score cannot tell you. Published in full because a number you cannot interrogate is a number you should not trust.
Current as of July 2026
The Performance Discipline Index is a 0–100 score combining four weighted components, computed live from your most recent synced trade history (up to your last 500 trades across connected accounts):
PDI = (risk consistency × 0.30)
+ ((100 − revenge) × 0.25)
+ ((100 − overtrading) × 0.25)
+ (equity stability × 0.20)
Revenge and overtrading are penalty scores where lower is better, so both are inverted before weighting. The result is rounded to a whole number.
Why process rather than profit
Over any short sample, profit is dominated by variance — a trader can break every rule they set and finish the month up, or follow all of them and finish down. Adherence to your own rules is different: it is observable directly in executed trades, it is not subject to the same noise, and it is the part of trading you actually control.
So PDI deliberately does not reward making money. It rewards behaving consistently, and it is designed so that a profitable but reckless week and a disciplined but unprofitable one produce visibly different numbers.
The four components
Risk consistency
30%Higher is betterHow uniform your position size is across trades.
- Takes the position size of every trade in the window.
- Computes the mean and the standard deviation of those sizes.
- Score = 100 − (standard deviation ÷ mean) × 100, floored at 0.
- This is the coefficient of variation, expressed as a score: identical size every trade scores 100; a standard deviation equal to the mean scores 0.
- No trades in the window scores 0 rather than a neutral placeholder.
Why it is in the score: Sizing is the one variable a trader fully controls. Inconsistent sizing also makes every other statistic unreadable, because results stop being comparable between trades.
Revenge trading
25%Lower is better — inverted before weightingA weighted composite of three separate signals that co-occur after a loss: size escalation, rapid re-entry, and a spike in trading frequency.
- Size escalation: after a loss, if the next trade's size exceeds 1.5× your 10-trade average size, this flag accrues (max contribution 30 points).
- Rapid re-entry: after a loss, if the next trade is in the same instrument within 30 minutes, this flag accrues (max contribution 20 points).
- Frequency spike: after a loss, if trading activity in the following 2 hours exceeds twice your 30-day average pace, this flag accrues (max contribution 30 points).
- The three flags sum, capped at 100. A remaining 20-point structural-pattern allowance exists in the model but has no detector wired to it yet.
Why it is in the score: Revenge trading rarely shows up as one clean signal — it is usually a bigger position, taken faster, more often, right after a loss. Reading three signals together is harder to trigger by coincidence than any one alone.
Overtrading
25%Lower is better — inverted before weightingTrade frequency measured against your own baseline, plus how concentrated activity is in a single session.
- Daily deviation = today's trade count ÷ your average trades per active day.
- Session deviation = your busiest session's trade count ÷ your average session count.
- Score = (daily deviation × 50) + (session deviation × 25), capped at 100. A session deviation above 2 contributes a flat 50.
Why it is in the score: There is no universal 'too many trades' — twenty a day is normal for a scalper and pathological for a swing trader. The baseline is therefore your own history, not an absolute threshold.
Equity stability
20%Higher is betterHow closely your running profit-and-loss curve tracks a straight line, rather than swinging around its own trend.
- Builds a running equity curve from closed trades, starting at a base value of 100 and adding each trade's profit or loss in order.
- Fits a straight best-fit line through that curve and measures the root-mean-square error (RMSE) of the actual curve against it.
- Score = 100 − (RMSE ÷ range of the curve) × 100, floored at 0.
- A perfectly linear curve — rising, flat, or falling — scores 100 regardless of direction. What lowers the score is volatility around the trend, not the trend itself.
- Fewer than three points in the curve returns a neutral 50 rather than a computed score.
Why it is in the score: A curve that swings sharply around its own average, win or lose, indicates size or timing that is not under control. This reads smoothness rather than drawdown, so it is possible to be losing steadily and still score reasonably here — it measures one specific thing, not overall performance.
What this score cannot tell you
Every metric has a domain outside which it stops meaning anything. These are ours.
It does not predict profitability
PDI measures whether you followed your own rules, not whether those rules make money. A disciplined trader running a negative-expectancy strategy will score well and still lose. We present it as a process measure and nothing more.
It rewards a smooth curve, not a rising one
Equity stability scores a straight line at 100 regardless of whether that line goes up or down. A steadily losing account with consistent, small losses can score similarly on this component to a steadily winning one. It measures volatility around your own trend, not whether the trend is favourable — that is a deliberate, narrow measurement, not an oversight, but it means this component alone should never be read as 'performing well.'
Revenge detection has one unused allowance
The revenge score's model reserves 20 of its 100 points for a 'structural' signal that has no detector implemented yet. In practice this means the maximum revenge penalty currently achievable is 80, not 100, until that signal is built.
The overtrading component is time-of-day sensitive
Its daily deviation term compares today's count to your average. Checked mid-session on an active day, that term reads higher than it will once the day completes. The score is most meaningful reviewed across days, not refreshed hourly.
It only reads synced trades, and older history rolls off
PDI is computed from trades synced from your connected broker accounts, up to your most recent 500 across all accounts combined. Self-reported entries are not used, because self-reporting is subject to precisely the recall bias the score exists to surface. If you have more than 500 synced trades, the oldest are not part of the current calculation.
A separate, non-identical calculation exists server-side
An internal admin-facing computation of the same name uses different formulas for risk consistency (based on R-multiples rather than raw position size), revenge (a pure re-entry-timing model rather than this weighted composite) and equity stability (drawdown depth rather than trend smoothness). It shares this page's top-level 0.30 / 0.25 / 0.25 / 0.20 weighting and its overtrading formula, but is not the number shown on your dashboard. We are noting the discrepancy publicly rather than quietly reconciling it, because a methodology page that hides a known inconsistency is worse than one that states it.
Revisions
Changes to the weights, thresholds or windows above are reflected on this page when they ship, and the date at the top is updated. If the specification here ever disagrees with what the platform computes, treat that as a defect and tell us: support@fortitude.trade.
Specification maintained by Jared Sinclair, Founder · Syrax Global FZCO. PDI is a behavioural process measure, not financial advice and not a prediction of trading results.
A score you can audit.
Connect a broker account and the same calculation runs on your own executed trades.