How to Actually Track Your Bot Checkouts
To track bot checkouts properly, you need one record per attempt with the product, site, price, profile, status, decline reason, order number, quantity and timestamp, grouped by drop. Not by day, not by month. By drop. Everything else in this post is just the reasoning behind that sentence, and the honest bit about what the data can and cannot tell you.
Where the data currently lives (and dies)
Here is how it goes on a decent drop. Your bot is posting success webhooks into one Discord channel, declines into another, and monitor pings into a third. You are mid-cop, watching tasks, maybe restocking payment on a profile that just declined. The webhooks pile up. Someone posts a W emoji. You screenshot the best one.
A week later, try to answer any of these:
- What was your hit rate on that drop?
- Which profiles actually cooked, and which have never hit once?
- Do your declines repeat, same reason, same profile, drop after drop?
- Which orders had payment issues you meant to chase and never did?
You cannot. The information passed through Discord, everyone said congrats, and it scrolled away. Discord is where checkouts go to be celebrated, not counted.
What a proper checkout record looks like
Each field below earns its place. If a field would not change a decision you make later, it does not belong.
- Product and site. These two together define the drop, which matters for the next section. A 70 percent hit rate on a shock drop and a 5 percent hit rate on a Dunk release are both fine numbers. Blended into one average they are noise.
- Price. Retail at checkout, so you can reconcile against card statements later and spot the order that charged twice or never charged at all.
- Profile. Declines cluster. When the same profile throws the same decline reason across three drops, that is a profile problem, not bad luck. You only see the cluster if the profile is on every record.
- Status: checked out or declined. An attempt that reached checkout and failed is information. An attempt that never fired is a different thing entirely, more on that below.
- Decline reason. "Card declined", "billing mismatch", whatever the site returned. Keep the exact wording. Reasons that repeat are the single most actionable thing in this whole dataset.
- Order number. This is what lets you chase things. Payment pending on a Pokemon Center order, a charge that has not settled, an email that never arrived. Without the order number you are searching your inbox by vibes.
- Quantity. Multicarts exist. Three units on one order is not the same as three orders when you count attempts against checkouts.
- Timestamp. Early checkouts and late checkouts on the same drop tell you different things about how the release went.
The drop is the unit of analysis
An overall hit rate across your whole botting career is a vanity number. It mixes sites with different difficulty, products with different stock depth, and months where you ran 20 tasks against months where you ran 200.
The unit that means something is the drop: one site, one product, one window of time. For each drop you want three numbers side by side. Attempts. Checkouts. Declines, with reasons attached.
Keep the decline reasons next to the wins, not in a separate tab you never open. The question you are actually asking after a drop is "why did the other 14 tasks not convert", and the answer is usually sitting in the decline column. Half of them the same reason. That is next drop's fix.
What the data cannot tell you
Be honest about the gaps, because this is where people talk themselves into bad decisions.
A profile with no webhook is not a decline. It is "no attempt recorded". Maybe stock ran out before the task got a cart. Maybe the monitor was late. The checkout data cannot distinguish between the possibilities, and pretending it can leads you to bin profiles that never got a fair shot.
So keep the claim modest. Checkout tracking tells you what happened to the attempts that reached checkout. It tells you which profiles convert when they get there, and which decline reasons keep coming back. It does not tell you why silent tasks were silent. Different problem, different data.
Ways to actually do it
A spreadsheet, if you are disciplined
One row per checkout, one sheet or filter per drop, columns matching the list above. It works. The catch is that nobody fills in a spreadsheet mid-drop. You are busy. So the real workflow is scrolling back through Discord channels afterwards, transcribing webhooks by hand, and the day you skip it once is the day the record stops being trustworthy. Sneaker bot spreadsheet graveyards are full of tabs that end in March.
Bot exports
Some bots can export successful checkouts to CSV. Worth using if yours does. Two limits: exports usually cover successes only, so your declines (the useful bit) are missing, and if you run more than one bot you now have differently shaped CSVs to stitch together.
The thing we built for it
This is exactly why we added the Checkouts panel to Reseller OS. It is a live panel fed by the same Discord webhooks your bots already send. Two ways to connect it: paste our relay links into your bot in place of the Discord webhook URLs, and your Discord still receives every webhook byte for byte, or add a reader bot to your server and tick which channels it should watch. Either works, or both.
Capture runs in the cloud around the clock, so a 4am restock still gets recorded with the desktop app closed. Checkouts get grouped into drops by site and product automatically, with per-drop hit rates, profile breakdowns, decline reasons and a payment-issue radar for Pokemon Center orders. It works with any bot that can post a Discord webhook, and it is read only: nothing gets added to your Orders or Inventory, it is a record, not a bookkeeping entry you have to undo.
The panel is optional and shown to eligible accounts. That is the pitch in full. If your current system works, keep it.
Want it? Join the waitlist. Free through the beta, spot in the Discord included.
The habit that matters
Whichever route you take, the rule is the same. One record per attempt, grouped by drop, declines kept next to the wins, order numbers kept at all. Do that for three drops in a row and you will know things about your own setup that no amount of scrolling Discord will surface.
Track every order, fee and flip in one place.
Reseller OS is a desktop app for resellers - your data stays on your machine. Free through the beta.
Join the waitlist