Find out whether your traders sell winners more readily than losers — measured privately on your own records.

We measure the plan gap: the difference between how your traders plan to handle wins and losses and how they actually trade. One measure is available today: the disposition effect, which is whether your traders close winning positions more readily than losing ones.

Tell us the population and the period. Your staff run a published script inside your systems. You get back PGR, PLR, their pooled ratio and a t statistic, the counts and period behind them, and a one-page memo. The price is fixed before anyone sees data.

Start a Pilot — $745 USD See a sample memo

Email only, no calls. See what it costs

Here as a trader? See Individual traders or the free tools. We can’t help with disputes about a firm.

  1. Your records stay on your systems
  2. Published script run by your staff
  3. Aggregate counts are all that comes back to us
  4. Number, t statistic, period and memo returned to you

partner_disposition.py is public: free for non-commercial use from v2; engagements include a commercial licence. Read the code

Who it is for

  • A prop firm or broker

    Do our traders close winning positions more readily than losing ones?

  • A trading journal or platform

    Can we show users this measure inside our product? Journals & platforms

  • A copy-trading platform

    Does our leader ranking predict what followers earn? Copy-leader test

  • A firm making behaviour claims

    Does our claim hold on our own users’ records? Claims test

What it costs

Prices in USD, before any applicable sales tax. The standard engagement measures one thing today: the disposition effect, reported as PGR, PLR, their pooled ratio and a t statistic, with the counts behind them. If the figure you publish is a different one, write anyway; we’ll tell you plainly whether the published script can compute it.

EngagementWhat you getDeliveryPaymentPrice (USD)
Pilot Your first Snapshot at an introductory price, one per firm: the records behind one disposition figure, measured with the public script on your own records. The figure, its denominator and period, the t statistic, the script version and a one-page memo. Credited in full toward a Memo signed within 60 days of delivery.5 business days100% on acceptance$745
Snapshot One disposition figure for one population and period you name: pooled PGR, PLR, their ratio and a t statistic, the counts and period behind them, the script version and the one-page memo.10 business days50% on acceptance; 50% within 7 days of delivery$2,500
Memo Everything in a Snapshot, plus your pooled ratio set beside the public study’s pooled ratio, with the differences explained in writing. Only the ratios are roughly comparable, and neither sets a target for yours. A private report; an optional co-published study.15 business days50% on acceptance; 50% within 7 days of delivery$6,000
Outcomes pack Everything in a Memo, for your whole book and for each split you agree in the scope (for example by account size or instrument), run by the same script.20 business days50% on acceptance; 50% within 7 days of delivery$12,000

Pilot refunds, from the terms: Extract refund: if your extract can’t be made to run with the script, even with our help by email, the fee is refunded in full. Reproduction refund: if your own re-run of the same published script version on the same export (same file hash) does not reproduce the figure, the fee is refunded in full, by the original payment method, within 10 business days.

Before starting, we agree with you in writing what result would make a Memo worth doing.

Optional quarterly re-check: the same measurement on a fresh extract, at 25% of the tier price, payable in advance, delivered in 5 business days.

Every engagement is invoiced in USD; pay by bank transfer, or, in Canada, the CAD equivalent by Interac e-Transfer. Card payments are accepted through a secure Stripe link, sent only after you accept the scope. One-off engagement, fixed scope, no subscription.

Delivery times are in business days. The clock starts when payment is received and the script’s output comes back without validation errors, and it pauses while a clarifying question is open.

If you don’t like the number, no one else sees it. You can decline publication outright, and we publish nothing from the engagement. The fee is the same either way. The method is the same for every firm and for the free research. Paying buys scope and privacy, never a result. Independence policy

From first email to memo

StepWhoWhen
Email or form: which traders, which datesYouDay 0
ReplydonttradeWithin 1 business day
Written scope and fixed price, free (nothing owed until you accept)donttradeAfter your reply
Accept, sign the agreement, payYouWhen ready
Your staff run the script and send back what it printsYour staffYour pace
Memo delivereddonttradeWithin the tier’s business days of payment and a clean run

The legal contracting party is named in writing, in the engagement agreement, before anything is paid. An NDA or DPA is signed on request. A “no measurable effect” answer is a finished job and is invoiced as one.

Copy-trading platforms: the copy-leader persistence test

Sold to platforms only, never to followers. For copy-trading apps, social trading networks, crypto exchanges with copy features and vault front-ends.

Does your leader ranking predict what followers actually earn after copying costs and delay? The test answers that out of sample: leaders are ranked on one period and judged on a later period the ranking never saw. It is adjusted for luck, so a ranking counts only if it does better than chance would.

  • A method fixed in advance. The ranking rule, the periods, the cost and delay assumptions and the pass mark are fixed in writing before anyone sees data, and they don’t change afterwards.
  • Run on your systems. Your engineers run a script we send with the scope, and can read every line of it first. Only aggregate results come back. We hold no follower, leader or account record.
  • About your ranking, not about people. The result names no leader and scores no one.
  • Not advice. It does not recommend any trader or leader, to you or to your followers, and makes no promise about future results. It is not an audit: please don’t call any leader or ranking audited, certified or verified.

Which engagement: the Pilot ($745 USD) covers one ranking rule and one period, one per platform; a Snapshot ($2,500) the same; a Memo ($6,000) every rule and period agreed in the scope; an Outcomes pack ($12,000) adds a re-check on a later period. Payment, delivery and refunds are those of the engagement.

Ask about the copy-leader test

Firms that make behaviour claims: the claims substantiation test

We report the result whether it supports the claim or not. For trading journals, education sellers, prop firms and brokers whose marketing says their product changes how traders behave, such as “our journal makes you more disciplined”.

Before anyone sees data, the claim is written down as a test: which behaviour, which users, which periods, what comparison, and what result would support it. That test is fingerprinted with a SHA-256 hash, recorded, and then run once, as written.

  • Run on your systems. Your engineers run a script we send with the scope; only aggregate results come back.
  • Either answer is a finished result. The fee is the same either way, and you decide whether anything is published.
  • Limits stated. We tell you in the scope, before you pay, whether your records can test the claim at all. A before-and-after comparison, for example, cannot by itself show that your product caused a change.
  • A test, with its result and its limits. It is not an audit. Please don’t call the claim or the product certified, verified or audited.

The law, in neutral terms (not legal advice). In Canada, the Competition Act treats as reviewable conduct a representation to the public, made to promote a product or a business interest, in the form of “a statement, warranty or guarantee of the performance, efficacy or length of life of a product that is not based on an adequate and proper test thereof, the proof of which lies on the person making the representation” (s. 74.01(1)(b)). Whether a particular test is adequate and proper for a particular claim is for you and your legal advisers to judge. We give no legal advice, and we don’t say that our test meets that standard.

Which engagement: the Pilot ($745 USD) covers one claim, one measure and one comparison, one per firm; a Snapshot ($2,500) the same; a Memo ($6,000) every measure and comparison agreed in the scope; an Outcomes pack ($12,000) runs the same pre-registered test again on a later period.

Ask about a claims test

What stays on your systems

Your trade records and account identifiers. The script runs inside your systems on a five-column extract, one row per open position per day plus a row on the day it closes, with no names. From the export guide:

account_id,date,position_id,closed,pnl
a7f3,2026-03-02,p91,0,110.50
a7f3,2026-03-03,p91,0,-40.25
a7f3,2026-03-04,p91,1,240.00

The first two rows are the unrealised mark at each end of day; the last is the realisation. A list of closed trades alone is refused by the script, by design. To see the shape first, run it on the synthetic file that make_fixture.py writes.

Everything that comes back to us (the script’s complete output on a synthetic file)

Synthetic test file, not real traders. This is the client script’s complete output from the published partner_disposition.py on the test file from make_fixture.py.

$ python3 make_fixture.py --out fixture.csv --seed 7
$ python3 partner_disposition.py fixture.csv --pnl-basis price
pnl basis:            price (funding excluded)
accounts:             30
qualifying sale days: 256

data rows parsed:                   14400
blank records skipped:              0
rows in qualifying pairs:           2048
rows discarded (no close that day): 12352
same-day marks superseded by close: 0
orphan closes (no mark row):        14 of 335 (4.2%)
identifier spelling collisions:     0
unicode data version:               14.0.0

PGR                   0.2178
PLR                   0.1119
ratio (PGR/PLR)       1.9470
t statistic           6.51
n gains  (RG+PG)      1001
n losses (RL+PL)      1046

realised gains   RG   218
paper gains      PG   783
realised losses  RL   117
paper losses     PL   929
zero-pnl rows excluded 1

AGE-CONTROLLED FIGURES (holding age = calendar days since the
position's first row in this file)
positions with a known open date:               329
positions open on the first date (left out):    240
rows used (qualifying pairs, pnl not 0):        975

ratio, ages pooled, same rows:                  2.0325
within-age ratio (Mantel-Haenszel):             1.9273
                                                95% interval 1.3825 to 2.6867, by account

holding age      gain rows  loss rows     PGR     PLR   ratio  within-age
<=1 day                 43         32  0.2093  0.0938   2.233       2.232
2-5 days                73         75  0.2055  0.1333   1.541       1.618
6-20 days              192        224  0.2240  0.0804   2.787       2.595
21-60 days             168        168  0.1667  0.1071   1.556       1.441
61-250 days              0          0       -       -       -           -
251+ days                0          0       -       -       -           -

fixed effects (account + holding day), linear probability model:
  gain coefficient:                             0.103986
  standard error (account and date):            0.021478
  ratio implied for gain rows (ATT):            2.0878
                                                95% interval 1.4495 to 3.7307

gain timing (rows that have a previous row for the same position):
  rows:                                         933
  ratio, ages pooled: same day / previous row:  2.0604 / 1.8627
  within-age ratio: same day / previous row:    1.9488 / 1.7481
  fixed-effects ATT: same day / previous row:   2.0993 / 1.8586
  sign changed since previous row, sold rows:   10 of 138
  sign changed since previous row, unsold rows: 60 of 795

HOW TO READ THE AGE-CONTROLLED FIGURES
- Positions are sold less often the longer they are held. If losing
  positions are on average older than winning ones, the pooled ratio at
  the top can show an effect that is only an age pattern. The within-age
  ratio compares winners and losers of the same holding age; use it, not
  the pooled ratio, for the size of the effect.
- Holding age is counted from each position's first row in this file.
  Positions already open on the file's first date are left out of these
  figures because their age is unknown; the pooled figures still use them.
- The fixed-effects line compares each account with itself, at the same
  holding day. It is a different average from the pooled ratio, so the two
  are not expected to match.
- Gain timing: a position's gain or loss on the day it is sold may partly
  reflect the sale itself (the fill or the closing mark). The lines that
  take the gain or loss from the position's previous row avoid that. If
  they are much smaller, the effect depends on same-day timing.
- Not ruled out: traders may sell large moves in either direction more
  often (a V-shaped pattern, Ben-David and Hirshleifer 2012). Separating
  that from a preference for selling winners needs the size of each gain
  or loss relative to the position, which these five columns do not carry.
- The intervals here are clustered by account (the within-age ratio) and
  by account and date (fixed effects). The t statistic at the top treats
  every row as independent and is not.
- NOT MEASURED means the data cannot support the figure, never zero.

That block is the whole of it. No account IDs, position IDs, dates or individual P&L values are printed. The script is one Python file using only the standard library; it makes no network calls.

Retention: we keep the returned aggregates for the life of the engagement record, and never receive the extract.

What you receive

A one-page memo with these fields, every time:

The figure
Pooled PGR, PLR and their ratio, with the counts behind them, and the same comparison holding position age fixed, with its 95% interval
Precision
The t statistic and the counts behind it
Denominator and period
Exactly who was counted, who was left out, and the dates the extract covers
Script version
The exact code that produced the figure
What this does not show
The limits, stated before anyone asks
Who may rely on it
You only

See a specimen memo

The agreement, in brief

  • Fixed scope and price, in writing before any data is seen.
  • Publication only with your consent. You review anything describing your data first and may decline outright.
  • Use of the name. You may say a figure was “computed with donttrade’s published script (version stated in the memo) and written up by donttrade under a fixed-scope agreement”, and nothing stronger: never audited, certified or verified.
  • Liability is capped at the fees paid. Either side can stop in writing; no cancellation fees. Pilot terms

What the money does not buy

  • No signals, no picks, no predictions. Nothing here tells anyone what to buy.
  • No flattering version. If the number comes out against your marketing, that is the number.
  • Not an audit and not an assurance engagement. No regulatory status, no badge or seal.

Industry codes for prop firms now ask for rules that are objective and can be checked from outside (an example code of conduct). Some firms already pay for outside reviews of their operations, such as payout times; those reviews cover operations, not how traders behaved. A figure computed with a published method can be re-run by anyone who reads it. Publishing a pass rate? Check the arithmetic with the free pass-rate calculator.

For your compliance team

Who will we contract with?

One person. The legal contracting party is named in writing, in the engagement agreement, before anything is paid. We provide whatever identity checks your due diligence needs. The pen name is how the research is published, not a contract term.

Does any account data leave our systems?

No. Your staff run the script inside your systems; we receive only what it prints. We never need access to your systems.

What if the number is bad for us?

Then that is the number. You can keep it private, and we publish nothing from the engagement. The fee is unchanged.

Isn’t this a kind of audit?

No. It is a measurement with its limits stated. Please don’t describe it as audited, certified or verified.

What if we stop halfway?

No cancellation fees. The Pilot is refundable in full until data kick-off, the day your staff first run the script on your records. After that, it is refunded if your extract can’t be made to run, or through the reproduction refund. Snapshot, Memo and Outcomes pack are paid 50% on acceptance and 50% within 7 days of delivery; if either side stops, completed work is billed pro rata.

How do we pay?

Invoiced in USD; bank transfer, or in Canada the CAD equivalent by Interac e-Transfer. Card payments are accepted through a secure Stripe link, sent only after you accept the scope.

Can we talk on a call?

We work by email only, so every answer is in writing and can go straight to your compliance file.

Why is there no client list?

There are no paying clients yet. A firm that chooses to publish its result will be listed, with its consent.

Can we test it first?

Yes. The licence lets any organisation run it on synthetic or test data for 32 days, and the folder includes a generator that writes a test file. partner/ on GitHub

For press and partners

donttrade is independent research on how traders handle winning and losing positions. It publishes its studies, scripts and corrections, and measures firms’ own records on their systems under a fixed-scope agreement. Paying buys scope and privacy, never a result. When describing a result, please use the wording under “Use of the name” above. Method and code: /code/; corrections: /corrections/.

Start a Pilot, or ask a question

Tell us which traders and which dates. You get a written scope and a fixed price back, free. Nothing is owed until you accept the scope.

We use these details only to reply. We reply within 1 business day (Eastern Time, Monday to Friday). Privacy notice

Prefer email? Write to donttrade.research@gmail.com.