If you place even a few bets a week, you already know the feeling. Learning how to track your bets in a spreadsheet is the key to success!
You win a couple, lose a couple, maybe you hit a nice streak, and suddenly you’re like… wait. Am I actually up this month, or did I just get lucky on Saturday and forget about the slow bleed on weekdays?
Most people try to “track” with a betting app history or random notes. It works until it doesn’t. The moment you want answers like:
- What sport am I actually good at?
- Are my parlays killing me?
- Do I lose more when I bet late at night?
- How much did I stake in total last month?
- What’s my ROI, not just my profit?
That’s when a spreadsheet becomes the boring, perfect solution.
This post walks you through a simple, real-world spreadsheet setup you can copy in 15 minutes. Nothing fancy. Just enough structure so the sheet tells you the truth.
How to track bets in a spreadsheet – Why bother tracking at all?
Because your brain will absolutely lie to you.
It will remember the big win, forget the five small losses, and then you size up the next bet like you’re a genius. Tracking fixes that.
Also, tracking is how you spot patterns that are invisible otherwise. Like you’re profitable on spreads but terrible on props. Or you’re fine on pre-match bets but live betting is a disaster. Those are the kinds of discoveries that literally change your results.
The goal of a betting tracker spreadsheet
Not to make you feel productive. Not to build a dashboard that belongs in a finance department.
The goal is simple:
- Log every bet in the same format
- Calculate profit, ROI, win rate, and units automatically
- Make it easy to filter by sport, market, book, bet type, time period
- Give you a quick summary that updates itself
That’s it.
Step 1: Create the sheet and the basic columns
Open Google Sheets or Excel. I prefer Google Sheets because it’s easy on mobile too, but Excel is fine.
Create a tab called Bets.
In row 1, add these column headers:
- Date
- Sport
- League
- Event
- Market
- Selection
- Book
- Odds (Decimal)
- Odds (American) (optional but useful)
- Stake ($)
- Units
- Result
- Profit ($)
- Notes
- Bet ID (optional, for matching sportsbook history)
Yes, it looks like a lot. But most of it is quick to fill. And later you’ll be really glad you included things like Market and Book.
What each column means (quick and practical)
- Date: The date you placed the bet (or the game date; just be consistent)
- Sport/League: Helps you filter, like NBA vs NFL
- Event: “Lakers vs Celtics” or “Arsenal vs Chelsea”
- Market: Spread, Moneyline, Total, Prop, Parlay, Futures, etc
- Selection: The actual pick, like “Lakers -4.5” or “Over 2.5”
- Book: DraftKings, FanDuel, Bet365, whatever you use
- Odds: Put them in decimal if possible. It makes the math cleaner
- Stake: How much you risked in dollars
- Units: Optional but recommended for better tracking
- Result: Win, Loss, Push, Void, Half win, Half loss, Cashout
- Profit: Automatically calculated
- Notes: “Bad number”, “Injury news”, “Live bet”, “Chased”, etc
To make the most out of your betting tracker spreadsheet and ensure you’re tracking all essential metrics effectively, consider this guide which outlines 15 essential metrics every sports bettor should track along with a free tracking template to assist you in your betting journey.
Step 2: Use decimal odds (even if you bet in American)
If you’re in the US you probably think in American odds, but your spreadsheet will be happier with decimal odds.
You can still store American odds too, but do your calculations using decimal.
Convert American odds to decimal
If American odds are positive (like +150):
- Decimal =
1 + (American/100)
If American odds are negative (like -120):
- Decimal =
1 + (100/ABS(American))
In Google Sheets, if your American odds are in cell I2:
text =IF(I2>0, 1+(I2/100), 1+(100/ABS(I2)))
Or you can skip the American column entirely and just enter decimal odds manually. Many books let you switch odds format in settings, which makes this dead simple.
Step 3: Decide what “1 unit” means for you
Units are optional, but they help you compare performance over time even if your bet size changes.
Pick a unit size and stick with it, like:
- 1 unit = $10
- or 1 unit = $50
- or 1 unit = 1% of bankroll (more advanced)
If you want to keep it simple, define a fixed unit. Put it somewhere at the top of the sheet, like in cell B1 on a separate tab called Settings.
For example:
Settings!B1= 25 (meaning 1 unit = $25)
Then in the Units column (say Stake is in J2), calculate units as:
text =J2/Settings!$B$1
Now every bet automatically becomes 0.5 units, 1 unit, 2 units, etc.
If you don’t care about units, you can delete that column. But tracking in units is one of those things you appreciate later.
Step 4: Standardise the Result field (this matters)
Don’t type random stuff like “W”, “win”, “Won”, “✅”, “L”, “ugh”.
Pick a small list and stick to it. I recommend:
WinLossPushVoid
If you do Asian handicaps or exchanges you might need:
Half WinHalf Loss
You can enforce this with a dropdown.
Add a dropdown in Google Sheets
Select the entire Result column, then:
Data -> Data validation -> Dropdown
Add the values above.
This one tiny step prevents your spreadsheet from slowly turning into chaos.
Step 5: Profit formula (the heart of the tracker)
Now we calculate profit automatically.
Assume:
- Decimal odds are in
H2 - Stake is in
J2 - Result is in
L2
Put this in M2 (Profit $):
text =IF(L2=”Win”, (H2-1)*J2, IF(L2=”Loss”, -J2, IF(L2=”Push”, 0, IF(L2=”Void”, 0, “”))))
Copy it down the column.
What this is doing
- Win: profit = (decimal odds minus 1) times stake
- Loss: profit = negative stake
- Push/Void: profit = 0
If you want to support Half Win and Half Loss, you can expand later, but most people don’t need that on day one.
Step 6: Add a “Month” helper column (makes summaries easier)
Add a new column called Month (you can place it right after Date).
If Date is in A2, Month in B2 could be:
text =TEXT(A2,”YYYY-MM”)
Now you can filter and summarise by month without messing around.
You can also add Year, Week, Day of week if you want to detect patterns like weekend tilt. Not necessary, but nice.
Step 7: Create a summary tab that tells you the basics
Create a new tab called Summary.
Here’s the minimum that actually helps:
- Total bets
- Total stake
- Total profit
- ROI
- Win rate
- Average odds
- Biggest win
- Biggest loss
Let’s assume your Bets sheet columns are:
- Stake in
J:J - Profit in
M:M - Result in
L:L - Odds in
H:H
Total bets
text =COUNT(Bets!A:A)-1
(Assuming there’s a header row)
Total stake
text =SUM(Bets!J:J)
Total profit
text =SUM(Bets!M:M)
ROI
ROI is profit divided by total stake.
text =IFERROR(SUM(Bets!M:M)/SUM(Bets!J:J),0)
Format it as a percentage.
Win rate
Count wins and divide by (wins + losses). Exclude pushes and voids.
text =IFERROR( COUNTIF(Bets!L:L,”Win”) / (COUNTIF(Bets!L:L,”Win”)+COUNTIF(Bets!L:L,”Loss”)), 0)
Average odds
text =AVERAGE(Bets!H:H)
(If you have blanks, you may want AVERAGEIF, but keep it simple at first.)
Biggest win and biggest loss
text =MAX(Bets!M:M)
text =MIN(Bets!M:M)
That’s enough to give you a live snapshot of where you stand.
Step 8: The part that makes it useful: filters and pivot tables
Your sheet becomes powerful when you can answer questions fast.
Like:
- ROI by sport
- Profit by market type
- Which book performs best (or worst)
- Do parlays ruin everything (they often do)
Quick win: Create a pivot table
In Google Sheets:
Insert -> Pivot table
Select your Bets range.
Then try these setups:
Pivot 1: Profit by Sport
- Rows: Sport
- Values: SUM of Profit
Add another value:
- Values: SUM of Stake
Then manually calculate ROI per sport (or add a calculated field depending on platform).
Pivot 2: Win rate by Market
- Rows: Market
- Values: COUNTA of Result
- Values: COUNTIF Result = Win (some pivot configs make this tricky, alternative is add a helper column)
If COUNTIF is annoying in pivot tables, do this instead.
Add a helper column in Bets called Win Flag:
text =IF(L2=”Win”,1,0)
Add another helper called Graded Flag:
text =IF(OR(L2=”Win”,L2=”Loss”),1,0)
Then in pivot:
- Values: SUM Win Flag
- Values: SUM Graded Flag
Win rate = Win Flag / Graded Flag.
Not glamorous, but it works every time.
Step 9: Track closing line value (optional, but serious)
If you want to get more “sharp” about this, CLV is one of the best indicators that your process is good even when variance punches you in the face.
Add columns:
- Closing Odds (Decimal)
- CLV %
Simple CLV formula (one way to do it):
If your bet odds are in H2 and closing odds in N2:
text =(H2/N2)-1
Positive means you beat the close. Negative means you didn’t.
This is optional. But if you’re betting a lot, it’s worth tracking.
Step 10: Make data entry painless (or you will quit)
This is where most trackers fail. Not because the math is hard. Because logging feels annoying after a loss.
A few tips that actually help:
1) Keep dropdowns for repetitive fields
Sport, Market, Book, Result. Dropdowns speed things up and reduce typos.
2) Use one row per bet, always
Even parlays. Do not cram multiple bets into one cell.
For parlays, you have two options:
- Track the parlay as one bet (simple)
- Track each leg separately (better analysis, more work)
Most people should track the parlay as one bet, and in Notes list the legs.
3) Log immediately after placing (not after it settles)
If you wait until the game ends, you’ll “forget”. Or you’ll avoid logging losses. Human nature.
Log it when you place it, leave Result blank, then update later.
4) Add a “Pending” status if you want
You can add Result = Pending. Then Profit stays blank until graded.
If you do that, adjust your Profit formula to return blank when Pending.
A simple template layout (copy this)
Here’s a clean header set you can paste into row 1:
- Date
- Month
- Sport
- League
- Event
- Market
- Selection
- Book
- Odds (Dec)
- Stake ($)
- Units
- Result
- Profit ($)
- Notes
That’s enough for 95% of bettors.
Common mistakes (that quietly wreck your tracking)
Mixing stake and to win amounts
Pick one method. I recommend stake as the amount you risk.
If you enter “to win” sometimes and “stake” other times, profit numbers become nonsense.
Not tracking pushes and voids properly
A push is not a loss. A void is not a win. Mark them correctly, or your win rate gets distorted.
Not including fees or cashouts
If you cash out early, log the actual profit or loss from the cashout. Not what “would have happened”.
If you’re on an exchange with commission, include commission in Profit or in a separate Fees column.
Changing unit size every week
If you’re going to use units, set a unit definition and don’t touch it constantly. Otherwise the whole point disappears.
What you’ll learn after 30 days of tracking
This is the funny part.
After a month of honest logging, most people have at least one uncomfortable realisation. Like:
- Their “fun” bet type is a money pit
- They bet bigger after losses
- They are solid in one sport and awful in another
- They win at plus money but bleed on heavy favourites
- Their best results come from smaller, boring markets
And then you can actually adjust. With evidence. Not vibes.
Wrap up
Tracking bets in a spreadsheet is not exciting. It’s not supposed to be.
It’s just the simplest way to see what’s real.
Start with one sheet, one row per bet, and a Profit formula that works. Add a Summary tab so you can see totals and ROI at a glance. Then use pivot tables to answer the questions you keep arguing with yourself about.
If you want, I can also format this into a ready-to-use Google Sheets template layout (with dropdowns, summary blocks, and a couple of pivot tables) if you tell me what sports and bet types you mainly place.
FAQs (Frequently Asked Questions)
Why should I track my sports bets using a spreadsheet instead of just relying on memory or betting app history?
Tracking your sports bets with a spreadsheet is essential because your brain tends to remember big wins and forget multiple small losses, leading to biased judgment. A spreadsheet provides an accurate log, helps you spot hidden patterns like which sports or bet types you perform best in, and reveals insights such as whether late-night bets hurt your results. This objective tracking ultimately improves your betting decisions and profitability.
What are the key columns I should include in my betting tracker spreadsheet?
A comprehensive betting tracker spreadsheet should include these columns: Date, Sport, League, Event, Market (e.g., Spread, Moneyline), Selection (your pick), Book (betting site), Odds (preferably decimal), American Odds (optional), Stake in dollars, Units (optional but recommended), Result (Win, Loss, Push, etc.), Profit (auto-calculated), Notes (e.g., injury news), and Bet ID for matching sportsbook history. These fields help organise and analyse your bets effectively.
Why is it recommended to use decimal odds in the spreadsheet even if I usually bet with American odds?
Decimal odds simplify calculations for profit and ROI compared to American odds. Even if you prefer American odds for placing bets, converting them to decimal in your spreadsheet makes math cleaner and automates profit calculations seamlessly. You can store both formats but do calculations using decimal odds for accuracy and ease.
How do I convert American odds to decimal odds for my betting tracker?
To convert American odds to decimal: if the American odds are positive (e.g., +150), use Decimal = 1 + (American/100). If negative (e.g., -120), use Decimal = 1 + (100 / absolute value of American odds). For example, +150 converts to 2.5 decimal odds; -120 converts to approximately 1.83 decimal odds. This conversion ensures consistent calculation in your spreadsheet.
What does ‘1 unit’ mean in sports betting tracking, and how do I decide its value?
‘1 unit’ is a standardised bet size used to compare performance over time regardless of varying stake amounts. You define what 1 unit equals—commonly a fixed dollar amount like $10 or $25, or a percentage of your bankroll for advanced tracking. Setting this value in your spreadsheet allows automatic calculation of units per bet, helping you assess risk and return consistently across different bets.
What is the main goal of creating a sports betting tracker spreadsheet?
The primary goal of a betting tracker spreadsheet is to provide a simple yet structured way to log every bet uniformly; automatically calculate key metrics like profit, ROI, win rate, and units; enable easy filtering by sport, market type, bookie, or time period; and offer quick summaries that update themselves. This setup helps bettors uncover truths about their performance without complexity or unnecessary features.
Other useful guides:
Bankroll Management Guide: Step-by-Step Guide for Profitable Sports Betting
Best Horse Racing Tipsters UK: Top Verified Services 2026
Best Football Tipsters: My Top 10 Most Profitable Services for 2026
