1. Price a listing
2. What it means
Same order on each marketplace
| Marketplace | Fee | Payout | Profit |
|---|
Profit at different list prices
| List / ticket | Payout | Profit if sold | ROI |
|---|
3. Audit your past sales
4. Which marketplace pays you
| Marketplace | Sales | Fees | Profit | ROI |
|---|
Sales that lost money
Prefer a CLI?
node cli.mjs price --cost 120 --qty 2 --list 150 --p-sell 0.8 node cli.mjs price --cost 120 --qty 2 --target-profit 100 --fee 15 node cli.mjs log sales.csv --min-roi 10
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. log exits 1 when your overall ROI is under --min-roi. More: How to price resale tickets so you do not lose money on the unsold ones.
What's recognised in a sales log
| Input | Handling |
|---|
Common questions
What fees does this include?
The seller-side fee you set (presets of about 10% for StubHub, SeatGeek and Vivid Seats and 15% for Ticketmaster resale, which you can overwrite), an optional flat fee per ticket, and an optional delivery cost per order. Buyer fees are paid by the buyer on top of your list price and are not in the maths.
Are the fee presets exact?
No. Marketplaces change seller fees, vary them by country, event and account, and sometimes show the buyer an all-in price. Check the payout shown on the real listing screen and type that percentage in; the tool is arithmetic on whatever you enter.
Why does a 12% margin lose money?
Because unsold tickets are a total loss for the order. If a listing only sells 8 times in 10, a 12% margin on the sales that happen does not cover the 100% loss on the two that do not. The expected-profit line shows the sale chance you need to break even.
Is this tax advice?
No. Resale profit can be taxable income and marketplaces may report it. The tool does not model tax; keep your own records.
Is my data uploaded anywhere?
No. The page runs in your browser on what you type or paste and never sends it anywhere. The CLI reads a local file or stdin and makes no network call.