DEV Community

rytjy
rytjy

Posted on

A vendor claimed +90.2% annualised. Their own monthly table says 34.8% without three months.

Last week a trading-platform newsletter landed in my inbox with a strategy of the week.

The headline: Hypothetical Annual Return (Compounded) +90.2%. Somewhere above it, in smaller type: "All results are hypothetical."

I do not know whether the strategy works. I do know that a monthly percentage table is enough to check the arithmetic, so I checked it.

The table

Two and a bit years of monthly cells, printed right there in the email:

Year months (%)
2024 -3.8, +8.3, -0.5, -7.9, +5.3, +3.9, +4.5
2025 +8.5, +0.1, +0.6, +50.7, +7.6, +4.5, +3.3, +10.9, -, +6.2, +12.4, +10.7
2026 +14.1, +23.4, -20.9, +20.3, -6.1, -8.9, -3.9, +2.8, +9.3, +18.5, +2.2, +50.1

Compound them:

  • 2024 (7 months): +9.16%
  • 2025 (11 months, September missing): +180.27% — the email prints +180.4%
  • 2026 (11 months): +49.9% — the email prints +50.1%
  • Full span: roughly +350%, which annualises to ~90.3%

So the +90.2% is not a typo and not a fabrication. The arithmetic holds. That is the part almost nobody checks, and it passed.

What the arithmetic hides

Three questions turn "consistent" into "informative".

1. How much rests on a few months?

The three largest cells are +50.7%, +23.4%, +50.1%. Remove those three months and the annualised figure falls to about 34.8%. The strategy is not a smooth 90% engine; it is a handful of good months carrying a decade of averages.

2. What is the worst peak-to-trough on monthly closes?

-21.8%. And 2026 contains -20.9%, then -6.1%, -8.9%, -3.9% in a row. Anyone sizing this needs to know that sequence exists before they read the annualised number.

3. What exactly is being measured?

The vendor's own disclaimer: "there is no single real-life trading account that looks exactly like the track record shown here." Fees are estimated, not taken from a broker statement. The track record is a model account.

None of that is fraud. It is a hypothetical number, clearly labelled as such, in 8-point type.

The three-question check

For any seller quoting an annualised return:

  1. Ask for the monthly cells, not the annual figure.
  2. Compound them yourself. If it does not match, stop and ask why. If it matches, continue.
  3. Drop the three best months and recompute; compute the worst monthly peak-to-trough.

Two minutes, a calculator, and you learn whether the number is durable or decorative.

I keep the working notes and a small standard-library toolkit for this kind of check in backtest-audit-kit. The write-up for this case is case 15.

If you sell a strategy and your numbers survive these three questions, say so — that is rarer than a 90% headline.

Top comments (3)

Collapse
 
launchgatecheck profile image
Launch Gate •

The check I'd add to your three lives inside the table itself: the "-" cell. 2025 is 11 printed months plus a missing September, and compounding has no representation for missing - the product silently converts that cell to 1.0, a flat month that never happened. That is the general failure: every aggregate has an identity element (sum turns gaps into 0, product into 1, count into skip), so a missing value never errors, it just becomes the most convenient possible value for the arithmetic. The honest report format is coverage next to the number: "23 of 24 monthly cells." A 90% annualised figure over 96% coverage is a different claim from the same figure over 100%, and the table already contains the information needed to say which one it is.

The second addition is above the table rather than inside it. Even a perfectly honest monthly table arrives pre-selected: this is the strategy the newsletter chose to feature this week, out of every strategy they track. The three-question check measures whether the number is durable; it cannot measure the presentation filter, because the reader never sees the strategies that were not featured. That asymmetry is why your step 2 (compound it yourself) catches arithmetic problems but not selection ones - for those, the only fix is asking how many strategies were eligible for the slot and what their median looked like. A vendor who will answer that question is rarer than one whose cells compound correctly.

Collapse
 
rytjy profile image
rytjy •

Both points land, and the second is the harder one.

On coverage: agreed on printing "23 of 24". Working through monthly tables this week, I would add one more count next to it - whether the page is live at all. One strategy on a public leaderboard had 89 monthly cells, all zero: a complete table, 100% coverage, and a number that means "inactive", not "flat". Coverage plus a live/dead marker catches both.

On selection: this is why the eligible set matters more than the arithmetic check. I screened 37 public strategies this week instead of one, which is the closest a reader gets to a denominator from outside. 19 of 36 carry more than 70% of their log return in the best three months, 14 carry no flag at all, and on the most quotable one the best three months are 84% of the log return. The featured example and the median are different claims, exactly as you put it.

So the order I would put the questions to a vendor: how many were eligible, what did the median look like, and how many monthly cells am I actually looking at.

Collapse
 
launchgatecheck profile image
Launch Gate •

The all-zero leaderboard row is the cleanest possible demonstration that coverage is necessary but not sufficient - a table can be complete and still say nothing.

Your 19-of-36 number is the part of this exchange I would keep. It converts the concentration check from a single-table audit into a population baseline: once a reader knows the median public strategy carries most of its log return in its best three months, the featured 90% stops being a claim about a strategy and becomes a claim about which strategy got picked. That is the selection effect measured rather than asserted, and measured is the only version a skeptical reader can reuse.

Merged order, then: eligible set, median, coverage, liveness, concentration, drawdown. A vendor table that survives all six is rare enough to deserve its own write-up.