Dota 2 Trading Tools and a Simple Tracking Spreadsheet
Track what you paid, what you hold and what each sale returned with a simple three-tab sheet.
Project editor:GrassKnuckles

A good Dota 2 trading spreadsheet answers three questions: what did you pay, what do you still own, and what did each sale return? Keep purchase lots, holdings and sales on separate tabs. The Dota Ledger portfolio tracks what you hold, but you need your own transaction log to calculate profit you have actually made.
Give each purchase lot an identity
Record the full item name and variant, a lot ID, the purchase date, the quantity, the all-in cost per copy and the cost currency. When you add a price estimate, record its date and type separately. “Steam $3.80” is incomplete until you say whether it is a lowest listing, a buyer ask or what a seller would receive. Take estimates from the price table and note the date.
The ledger below uses a real item name with made-up prices and a made-up sale:
| Record | Copies | Cost, USD | Price estimate or proceeds |
|---|---|---|---|
| Lot A: Ghillied Gunman, Standard bundle | 2 | $3 each | Current price estimate: $3.80 each |
| Sold part of lot A | 1 | $3 allocated | Net sale proceeds: $3.40 |
| Remaining part | 1 | $3 retained | $3.80 estimate, if still current |
Partial sales expose bad formulas
Before the imaginary sale, cost is 2 × $3 = $6 and the estimate is 2 × $3.80 = $7.60, an unrealised gain of $1.60. After selling one copy for $3.40 net, the realised result is $3.40 − $3 = $0.40, and the remaining copy carries an unrealised gain of $0.80. Subtracting the full $6 from the one-copy sale creates a false loss. Adding $3.40 to the old two-copy estimate counts the sold copy twice.
In the sheet, quantity × unit cost gives the lot cost, and quantity × current unit price gives its estimate. If a unit price is missing or old, leave the estimate blank and keep a status column. A plain SUM would otherwise hide the gap. Keep EUR and USD in separate totals unless you record an exchange rate, its date and the conversion cost.
Use each tool for its job
The portfolio stores holdings in your browser, backs up to CSV or JSON and previews an import before you confirm it. Adding a holding you already have updates it and creates no separate lot, and its USD cost, value and profit can cover different items. Alerts check your price thresholds when a page loads or you refresh by hand, and they send no email. The fee calculator and the flip calculator work out the scenarios you type in.
Back up your sheet and your browser portfolio after important changes. Keep passwords out of the sheet, and think twice before adding an external price-import formula you have not read. Before you trust a total, check that sold copies have left the holdings tab and that every price has a source and a date.