Matched Betting Spreadsheet UK: Track Profits Properly
A practical matched-betting spreadsheet template: the 8 columns that matter, why each earns its keep, and how the data diagnoses gubbing and ROI.

If you matched-bet seriously for more than a couple of months, you reach a point where the mental running tally stops working - too many offers, too many bookies, too many lay legs in flight at once. A spreadsheet solves that, and it does more than just tell you what you've earned. The right columns also diagnose gubbing, surface ROI-per-hour so you know which offers to skip, and give you a clean record if HMRC ever asks about deposits into your bank account.
Why a spreadsheet beats memory or a bookie's account balance
The three reasons people start tracking properly are usually the same: they want to know real net profit (not the bookie balance, which excludes the lay legs sat on Smarkets or Betfair), they want a paper trail for tax questions (matched betting is generally non-taxable in the UK, but evidencing that the deposits are gambling proceeds is much easier with a log), and they want to spot which bookies are about to gub them before it happens - gubbing is a slow drift, not a sudden event, and it shows up in the data weeks before the email arrives.
The fourth reason creeps in once you've been doing this for a while: ROI per hour. An offer that nets £8 isn't worth doing if it took 45 minutes to set up across bookie + exchange + reload checks. With the column structure below, you can sort by £/hour and skip the dross.
The 8 columns every matched-betting tracker needs
These are the columns to put in row 1 of your sheet. The order matters slightly - date first, profit last - but otherwise it's about getting them all in, not optimising the layout.
- 1. Date
- The day you placed the qualifier (not the day the bet settled). YYYY-MM-DD keeps it sortable.
- 2. Bookie
- Standardised name - pick a spelling and stick to it. "William Hill" not "WH", "Sky Bet" not "Skybet". Filtering on bookie later only works if the names are consistent.
- 3. Offer type
- Qualifier, Free Bet, Risk-Free, Acca Refund, Reload, Casino, Bingo - short tags so you can group by offer category later.
- 4. Qualifying stake (£)
- What you staked at the bookie. For a sign-up qualifier, this is the back-bet that earns the free bet.
- 5. Back odds
- The decimal odds you took at the bookie.
- 6. Lay stake (£)
- What you risked on the exchange to cover the back bet.
- 7. Lay odds
- The decimal odds you laid at on Smarkets / Betfair / Matchbook.
- 8. Net profit (£)
- Bookie outcome minus lay outcome minus commission. This is the column that matters.
That's enough to run the basic analyses. The net-profit column carries the financial truth; the others give you everything you need to slice it later. If you're using a calculator (OddsMonkey, Outplayed, or any free oddsmatcher), all of these fields are already there during the bet - you just need to copy them over.
Three optional columns worth adding
Once you've used the core columns for a couple of weeks, three more start earning their keep:
Exchange used - Smarkets, Betfair, or Matchbook. Lets you check commission costs are matching what you think they are, and reconcile per-exchange balances at month-end.
Time spent (minutes) - rough is fine, 5-minute buckets. Without this you can't compute ROI per hour, and without ROI per hour you can't tell good offers from bad.
Notes - free text. "Got promo on second qualifier", "event abandoned, refunded", "second lay leg failed - placed manually". The notes column is where the real lessons live and where you'll find the gubbing patterns when you go back through six months later.
Three example rows to show the shape
The fastest way to grasp the format is to see filled rows. Here's how a sign-up qualifier, a free-bet leg, and an acca-refund offer look:
- Date
- 2026-05-10
- Bookie
- Sky Bet
- Offer type
- Qualifier
- Qualifying stake (£)
- 10.00
- Back odds
- 2.40
- Lay stake (£)
- 9.58
- Lay odds
- 2.46
- Net profit (£)
- -0.42 (qualifying loss, expected)
- Date
- 2026-05-11
- Bookie
- Sky Bet
- Offer type
- Free Bet
- Qualifying stake (£)
- 30.00 (SNR free bet)
- Back odds
- 5.50
- Lay stake (£)
- 26.10
- Lay odds
- 5.20
- Net profit (£)
- 22.45
- Date
- 2026-05-14
- Bookie
- Paddy Power
- Offer type
- Acca Refund
- Qualifying stake (£)
- 10.00
- Back odds
- 12.50 (combined)
- Lay stake (£)
- 0.96 (per leg, dutched)
- Lay odds
- varies per leg
- Net profit (£)
- 8.20 (free bet refund minus lay losses)
Two takeaways from the examples. First: net profit being negative on row 1 is fine and expected - that's a qualifying loss, the cost of unlocking the free bet, which converts to row 2's £22.45 profit. Sum across both rows and you have your real position on the offer. Second: row 3 shows why "Offer type" is more than cosmetic. Acca refunds have a different risk profile to standard free bets (you can lose more on a bad day, you can win more on a good day), and you'll want to filter by offer type later when you're deciding whether the variance is worth it for your bankroll.
What the data tells you once you have 30+ rows
The first month of tracking feels like admin. The third month is where it pays off. Three analyses that need at least 30 rows of data to be meaningful:
ROI per hour by offer type - divide total net profit by total time spent, grouped by offer type. Almost everyone discovers that bingo offers and casino wagering are a much lower hourly rate than they assumed. If your ROI per hour on a category is below your local minimum wage and you have other things to do, skip the category.
Profit per bookie, last 30 days vs prior 30 days - a bookie that was offering you regular promos and stops doing so is gubbing you. The pattern shows up as a profit drop weeks before the formal restriction email. Filter by bookie, compare the two periods, and you'll spot it.
Net profit by month, year to date - the simplest one and the one that motivates continuation. A monthly total chart on the second sheet of the workbook turns the tedious row-entry into something that visibly compounds.
Sheets vs Excel vs Notion - where to actually put it
Google Sheets is the right default. It's free, syncs to your phone for on-the-go bet logging, and the QUERY function is genuinely useful for slicing the data later. The downside is that if you're tracking a substantial bankroll you may want the file off Google's servers - in which case Excel or LibreOffice locally is a sensible answer.
Notion databases work but are slower for the analyses above. Notion's strength is rich notes, not numerical filtering. If you want a hybrid setup, keep the bet log in Sheets and use Notion for the longer write-ups on which offers you're working through.
Dedicated apps exist (the matched-betting platforms have built-in trackers), but vendor lock-in is a real cost. If you move away from the platform, you usually lose the historical data with it. A spreadsheet under your own ownership survives any platform change.
Frequently asked questions
Q01Do I need a spreadsheet from day one, or can I wait until I'm a few weeks in?
Q02Should the lay-side commission be a column or a formula?
Q03Is this enough for HMRC if they ask about my deposits?
Q04What about tracking lay liabilities and exchange balances?
Q05Will this help me spot when I'm being gubbed?
Matched Betting Tax UK: What You Owe
Gubbing: What It Is and How to Avoid It
How Much Can You Earn From Matched Betting?