Learn
Building strategies6 min read·Updated July 24, 2026

Reading a backtest: every metric explained

The backtest panel shows a dozen numbers and most people read one. What each metric measures, what good looks like, and the traps that make bad strategies look brilliant.

How the simulation stakes and prices its bets

Before you read a single metric, you need to know two things about how the simulation was built, because they shape every number on the panel.

First, the stake model: one flat unit per bet, always. No progressions, no confidence weighting, no percent-of-bankroll tricks. That is deliberate. A staking scheme can make a mediocre selection process look clever for a while: double after every loss and the curve smooths itself right up to the day it collapses. Flat staking strips the costume off and leaves the only thing a backtest can honestly measure, which is whether your filters pick good bets. All profit figures are in units; multiply by whatever one unit means to your bankroll.

Second, the price. By default, every simulated bet is settled at Pinnacle's closing odd, the final pre-match price once the market has absorbed all the money and news it is going to get. The close is the sharpest number in sports betting, so a profitable backtest is making a strong claim: these rules beat the closing line. You can instead backtest at the opening odd, a choice you make in the builder's backtest settings; every bet is then priced at the market's first quote, and such strategies stay private. Settling at the close also means live results will not replay the backtest, because live picks are recorded at the odd at the moment of detection, which comes earlier and is usually different. That gap gets its own article: From backtest to live.

Number of bets and picks per month: statistical fuel

The number of bets is your sample size, and the sample size decides how much every other number on the panel is allowed to mean. A yield computed over 40 bets is an anecdote. Over 400 it starts to become evidence. Variance shrinks slowly as bets pile up, far more slowly than intuition expects, which is why every trap in this article gets worse when this number is small.

The average picks per month is the pace, and it matters twice. Statistically, a strategy firing three times a month will take years to prove anything either way. Practically, once the strategy is live, each pick sent to you consumes your plan's monthly picks quota, so this number also forecasts what following the strategy will cost you. Sixty bets a month eats an allowance very differently from eight. Details in Picks quota explained.

The backtest window feeds this section too. Without a plan, backtests are clamped to the most recent 183 days, about six months, applied silently rather than thrown as an error. Six months tells you whether a strategy fires at all; it is rarely enough volume to judge a modest edge. Plans extend the window, some without limit; see the plans page. For a judgement this hungry for data, more history is not a luxury.

Wins, losses, voids, refunds, and the win rate trap

The result ledger has four buckets. wins and losses are what they sound like. voids are bets whose stake was refunded, a draw in a two-way market with no draw option, for instance. refunds are spread pushes: the line lands exactly on the number and the stake comes back. Voids and refunds cost nothing and earn nothing; their main job is to explain why wins plus losses is smaller than the number of bets.

Now the trap. The win rate is the most seductive number on the panel and, on its own, the most useless. It means nothing without the average odds beside it. A strategy winning 40% of its bets at average odds of 3.0 makes money: every hundred units staked comes back as roughly 120. A strategy winning 55% at odds of 1.7 loses money steadily while feeling great, because it wins more often than it loses and bleeds anyway. If you keep one habit from this page, read these two numbers as a pair. A high win rate describes the odds range a strategy fishes in, not its skill.

The money: total P&L, total staked, yield, average P&L per month

Total P&L is units won minus units lost over the whole simulation. Total staked is the total units risked. Neither is comparable across strategies by itself: a mediocre high-volume strategy will out-profit an excellent selective one simply by betting more.

Yield fixes that. Profit divided by stake, expressed as a percentage: profit per unit risked. It is the number that lets you compare a 2,000-bet grinder with a 300-bet sniper on equal terms. For calibration, remember that the bookmaker's margin taxes every bet, so a yield held sustainably above zero at closing prices already means beating the market. A few percent held across a large sample is genuinely strong. A double-digit yield on a big sample should make you more suspicious, not more excited, because overfitting produces curves like that on demand.

The average P&L per month is the same profit restated as a pace, in units per month. It answers "what would living with this feel like", but it is an average. A strategy averaging plus two a month can easily hand you a minus eight along the way.

Max drawdown: your pain budget

The max drawdown is the worst peak-to-trough fall of the profit curve, in units: from the best point the strategy had reached, how deep did it sink before recovering? It is the most underrated number on the panel, because it decides whether you would actually have survived the backtest. Every strategy that ended in profit spent part of its life underwater. If the max drawdown reads 30 units and your honest tolerance is 15, that final profit was never available to you. You would have quit at the bottom, at exactly the wrong moment, the way almost everyone does. Read it as a budget: this is roughly the pain the past demanded, and the future is allowed to demand more.

The risk-adjusted family: Sharpe, Sortino, Calmar

The remaining metrics all answer one question with different accents: how much return per unit of turbulence?

The Sharpe ratio compares average returns to how much results swing, in both directions. Higher means steadier profit; a high yield with a low Sharpe was a wild ride that happened to end well. The downside deviation measures only the bad swings, the volatility of losing stretches, since nobody complains about upside surprises; lower is better. The Sortino ratio is Sharpe rebuilt on that base: return per unit of downside pain only, so a Sortino clearly above the Sharpe says the volatility mostly lives on the pleasant side. The Calmar ratio relates return to the max drawdown itself: how much profit the strategy paid per unit of worst-case suffering. Call it the "was it worth the pain" number.

No formulas to memorise. On the three ratios higher is better, on the downside deviation lower is better, and all of them deserve more trust as the number of bets grows. The full advanced analytics view that houses this family is a plan feature; see the plans page.

Where to go next

For why small samples lie so convincingly, the theme under half these traps, read Variance and sample size. For how a spectacular backtest can be an artifact of fitting the past, read Backtesting and overfitting. And for what changes the day your strategy starts betting at detection odds instead of the close, read From backtest to live.

Continue learning

Browse all articles
How to build a winning strategy
Building strategies2 min read

How to build a winning strategy

A repeatable method in six steps: start from a hypothesis, keep the filters few, demand a large sample, and let closing line value be the judge.

Backtesting without fooling yourself Video
Building strategies2 min read

Backtesting without fooling yourself

The backtest is the most powerful and the most dangerous tool you have. How overfitting sneaks in, and how out-of-sample testing keeps you honest.

Anatomy of a strategy Video
Building strategies6 min read

Anatomy of a strategy

What a strategy is actually made of: one sport, one bet selection, one filter tree. How groups combine on the canvas, and what gets frozen the moment you hit Save.