How to Map and Unify Event Names Across Bookmaker Feeds
Before any matching rule is written, inspect several raw events from every feed—not just a…

A doubled balance can look like a ruined tracker; it is usually a fixable import mistake.
A tracker that showed 40 bets yesterday may suddenly show 80, with stake and profit/loss totals inflated to match. That is alarming, especially when ROI has flipped from a believable figure to something absurd. In most cases, the original records are still present and the imported copy can be identified and removed.
Do not delete every repeated-looking row. Two wagers can legitimately share the same event, market, odds, stake, and even timestamp—particularly when a bettor placed the same selection more than once or recorded each-way parts separately. The safe job is to isolate records created by the import, then check likely duplicates against the original entries before removing anything.
Before editing any bets, pause scheduled CSV uploads, sync rules, or formula-driven append jobs. Otherwise, the same records can return while the tracker is being checked.
Save the original CSV in a clearly named folder and make a duplicate of the tracker for the cleanup. Keep the original file untouched; perform all filtering and deletions in the working copy.
Note the details of the suspected import in a simple text note or spreadsheet:
If the tracker supports it, filter the suspected rows and record their count separately. These figures provide a checkpoint: after duplicates are removed, totals should move by a believable amount, and the row count should align with the source file. If anything goes wrong, the untouched copy and original CSV make it possible to start again.
For now, avoid permanently deleting the suspect rows. A later step can move or tag them first, then confirm totals before final removal.
Are two bets on the same match automatically duplicates?
No. A bettor may place a pre-match wager and a later in-play wager, or back different markets on the same fixture. Same teams and fixture date are only starting clues, not proof.
Which fields should be compared together?
Match the event, market, selection, odds, stake, placed time, and result or status. A row that agrees across nearly all of these fields is far more likely to be an imported copy than two rows sharing a team name.
How much difference is enough to keep both rows?
A different stake, price, market, or placement timestamp can indicate separate wagers. Check the original CSV before deleting: some trackers round times or odds, making genuinely distinct bets look closer than they are.
What if the only difference is an internal ID?
An ID can change during import or be generated by the tracker, so it should not decide the case alone. Treat rows with different IDs but matching betting details as suspected duplicates and verify them against the source file.
Do not delete rows merely because the teams and date match. A safer rule is to flag records only when event, market, selection, odds, stake, and placed time all match or differ only through known CSV rounding.
When one field disagrees, keep both rows in a review list until the original export confirms whether they were separate bets.
A duplicate problem is usually tied to one event: a CSV uploaded twice, an export re-downloaded after a timeout, or a file whose rows overlapped an earlier import. Treat the suspected batch as a separate slice of history first.
Filter the tracker, spreadsheet, or CSV by the details most likely to be shared by the bad rows:
Count the filtered records and total their stakes or profit/loss. Then compare those figures with the CSV's row count and totals. If the suspected range contains exactly one extra copy of the file—or a clearly overlapping portion—there is a defensible target for cleanup. If the count is unclear, stop there: deleting across the full history can remove legitimate repeat bets.
Event names are unreliable on their own. One export may say Arsenal v Chelsea, while another uses Chelsea @ Arsenal or adds (Live); these become missed matches. The reverse problem is worse: two separate wagers on the same fixture can look identical by name but differ in market, selection, odds, or stake.
First, map event names before deduplication in helper columns rather than overwriting the source text. A practical normalized-event formula should:
Then create a temporary key from fields expected to agree for an exact copied row, for example:
=NormalizedEvent&"|"&INT(BetDate)&"|"&Market&"|"&Selection&"|"&Odds&"|"&Stake
Use a fixed date format and consistent decimal formatting first; otherwise 2.5 and 2.50 produce different keys. Flag repeated keys, then inspect each group against the original rows. The key is a sorting aid, not proof: two genuine wagers can still share every included field.
Leave imported text untouched. Helper columns make the process reversible and expose normalization mistakes before any rows are removed.
Export the tracker or duplicate the sheet before changing anything. Add a temporary note, tag, or filter for records from the suspect import so the cleanup remains reversible.
Use the tracker’s duplicate finder when it shows the fields it matched and lets each result be inspected. Use spreadsheet filtering or a helper match key for a larger, consistent batch. Reserve manual review for small sets, edited bets, or near-matches.
For each confirmed pair, retain the earliest created or imported entry when its details match the source record. If timestamps are unavailable, keep the row with the clearer notes, settled result, attachment, or established tracker ID.
Compare the full match key and any useful metadata before deletion. A changed stake, odds, selection, settlement, or cash-out status means the records should not be merged automatically.
Remove only the entries linked to the later import. If the tracker supports archiving, use it first; otherwise keep a short list of deleted IDs, dates, and stakes until totals have been checked.
Compare bet count, total stake, and profit or loss with the pre-import figures and the source file. Open several retained records to confirm that notes, outcomes, and links still belong to the surviving entry.
Do not rely on a tool’s “remove all duplicates” command unless its match fields and deletion preview have been checked.
Two bets can share the same event, market, selection, odds, and stake because they were genuinely placed twice. When the import date, bet ID, notes, or settlement history cannot show which entry came later, leave both records in place and flag them for later review.
A small unresolved list is safer than deleting a legitimate wager and distorting the tracker in the opposite direction.
A cleaned list can still hide a bad repair. Compare the tracker’s post-cleanup figures with the snapshot taken before deletion and with the retained import file.
Check these values separately:
Then open a small, varied sample: one winner, one loser, one void or cash-out if present, and a fixture near the import boundary. Each retained entry should agree with the source on date, selection, odds, stake, and result. The deleted counterpart should no longer affect summary totals.
If counts reconcile but money does not, stop and review removed rows before editing anything else. Small differences often come from rounded returns, voided wagers, or a row that was not a true duplicate. Future imports are less likely to create this confusion when records are cleaned to reduce false matches before they enter the tracker.
Keep automated imports and dashboard refreshes paused until the reconciled totals match the saved baseline. Then restore one connection and run a single controlled sync—preferably with a small date range or one known source file.
Check the tracker immediately after it finishes. The deleted copies should not reappear, while legitimate same-event wagers with different stakes, odds, or timestamps must remain. Compare row count and financial totals again, then refresh any dashboard only after the tracker stays unchanged.
If duplicates return, pause the connection again and review its identifier or “last imported” marker. The settings used to keep tracker sync working after import repairs can prevent the next run from treating old rows as new.
A full historical refresh can reintroduce the same batch. Test one sync, verify the result, then return to the normal schedule.
Save the original CSV in a dated folder before editing or uploading it.
Include the export date or batch name in the filename, and note the first and last row or record ID.
Where possible, export from the last confirmed record onward. Stable bet IDs are safer than matching on fixture text alone.
Compare the proposed row count, total stake, and expected return with the source file before confirming.
After import, review record count and financial totals while the batch is still easy to reverse.
A small log of file name, date range, row count, and stake total makes the next investigation much faster.
Duplicate bets are easiest to fix before later imports, edits, and syncs blur their origin. A preserved file, clear batch markers, a new-rows-only export, and a quick count-and-total check provide a practical early warning.
Those few checks help keep staking, profit, and performance decisions based on the actual betting record rather than an inflated tracker.