How to Track Bets in a Spreadsheet: Columns and Metrics
Most bettors can tell you roughly whether they are up or down. Very few can tell you their yield, their average price, their longest losing run or which league is quietly costing them money. A spreadsheet answers all four in a few seconds, and building one takes less time than a single losing session.
Why memory is not a record
Memory compresses. It keeps the big winner and the bad beat and quietly discards the twenty ordinary bets in between, which are the ones that actually determine the result. It also reshapes the past to fit the present: after a good month, the process feels sound; after a bad one, the process feels broken. A written record does not do that.
The second reason is arithmetic. Yield, drawdown and closing line averages cannot be estimated by feel. They are ratios, and ratios need a denominator. Without a sheet, you are guessing at the denominator.
The minimum column set
| Column | Example | Why it matters |
|---|---|---|
| Date and time | 12 Mar, 18:40 | Separates early prices from late ones |
| Sport and league | Football, Serie A | Enables segmentation by market |
| Event | Team A vs Team B | Identifies the bet without ambiguity |
| Market and selection | Total 2.5, over | Prevents mixing different bets in one row |
| Price taken | 1.95 | Required for every return calculation |
| Closing price | 1.88 | Enables closing line value |
| Stake | 10.00 | Needed for weighted averages |
| Result | Won, lost, void, half won | Handles pushes and split lines |
| Return | 19.50 | Actual cash back, not a formula guess |
| Book | Book A | Shows where your best prices come from |
| Notes | Line moved after team news | Explains the outliers later |
Eleven columns are enough for years of data. Anything more is usually a distraction, and anything less forces you to reconstruct information you will not have.
The metrics worth calculating
Profit is the simple one: total return minus total stake. Everything else is a ratio built on top of it, and each ratio answers a different question.
- ROI is profit divided by total stake, expressed as a percentage. It answers how hard your money worked per unit staked.
- Yield is the same calculation applied to turnover, and in most betting usage the two terms are interchangeable. Pick one name and stay with it.
- Strike rate is winning bets divided by settled bets. It says nothing about profitability on its own, because a high strike rate at short prices can still lose money.
- Average odds is the mean price of your bets. It explains why two bettors with the same strike rate can have very different results.
- Maximum drawdown is the largest fall from a peak bankroll to the following low. It tells you what the ride felt like, which no average can.
One further metric is worth the extra column if you capture closing prices: average closing line value in probability points. It is the only metric that evaluates the decision rather than the outcome, and the arithmetic behind it is set out in the guide to closing line value.
If you have never compared prices before staking, add a column for the best available price at the time and one for the price you actually took. The gap between them is the cost of not shopping the line, and it is usually larger than people expect on the first month of data.
The formulas, without the mystique
Put profit in one cell as the sum of returns minus the sum of stakes. Put turnover in another as the sum of stakes. ROI is the first divided by the second. Strike rate is a count of wins divided by a count of settled bets, with voids excluded from both. Average odds is the sum of prices divided by the number of bets, though a stake-weighted version is more honest if your stakes vary.
Drawdown needs a running balance column. Each row adds the previous balance to that bet's profit, then a helper column tracks the highest balance seen so far. Drawdown at any row is the current balance minus that running peak, and the maximum drawdown is the smallest (most negative) value in the column. It is three formulas, not a model.
Logging a bet in thirty seconds
Log at the moment you stake, not at the end of the day. The price is in front of you, the time is known and the note about why you took it is still fresh. A bet logged after the result is a bet logged with hindsight, and hindsight contaminates the notes first and the numbers later.
Fill the result and return columns when the event settles, ideally in one pass the next morning. Two passes, one at stake time and one at settlement time, keep the sheet accurate without turning it into a chore.
Segmentation that teaches you something
A flat list of bets tells you whether you are profitable. A segmented list tells you where. Group by league, by market type, by price band and by time before kickoff, then look at ROI and bet count together. A market with a great ROI over nine bets is a coincidence, not a discovery.
The most useful split for most people is by price band. Bets at long prices have high variance and need a much larger sample before their ROI means anything. Bets at short prices settle faster and reveal a pattern sooner. Looking at the two bands separately often shows that one is carrying the other.
Mistakes that ruin the data
Recording the stake in units but the return in currency. Mixing fractional and decimal odds in the same column. Treating a void as a loss, which silently drags the strike rate down. Leaving a bet out because it was embarrassing. Changing the definition of a unit halfway through the season. Each of these is small, and each makes the resulting metrics wrong in a way that is hard to detect later.
The sheet is not a moral record and it is not a diary. It is a measuring instrument, and like any instrument it is only useful if the readings are taken the same way every time. Keep it boring, keep it consistent, and let it disagree with you when it needs to. That is the entire value.


