Etsy sellers ask "what do I actually keep from a sale?" all the time. The answer is a stack of fees, and some are charged on more than the item price. I built an Excel + Google Sheets workbook that answers it. Here is the formula logic, so you can copy it into your own sheet.
These are US fee rates I checked against Etsy's fee pages on Oct 13, 2026. Fees change, so put them in cells, not in formulas. None of this is tax or financial advice.
1. Put every rate in a Settings tab
Each rate gets its own cell:
| Cell | Setting | US default |
|---|---|---|
| B3 | Listing fee | $0.20 |
| B4 | Transaction fee | 6.5% |
| B5 | Payment processing % | 3% |
| B6 | Processing fixed fee | $0.25 |
| B7 | Offsite Ads fee | 15% (12% for shops over $10k/yr) |
| B10 | Avg sales tax rate | 0% |
| B11 | Regulatory operating fee | 0% in US |
| B12 | Offsite Ads cap per order | $100 |
If Etsy changes a fee, you edit one cell and every formula updates.
2. Order revenue
Etsy charges the transaction fee on item price plus shipping, so the base needs both:
Order revenue = price * qty + shipping
=B3*B5+B4
3. Each fee
Listing fee =Settings!$B$3*B5
Transaction fee =ROUND(B12*(Settings!$B$4+Settings!$B$11),2)
Payment processing =ROUND(B12*(1+Settings!$B$10)*Settings!$B$5+Settings!$B$6,2)
Offsite Ads =IF(UPPER(B9)="Y",MIN(Settings!$B$12,ROUND(B12*Settings!$B$7,2)),0)
Some things I learned along the way:
-
Processing is charged on sales tax too. The buyer pays tax, but Etsy's 3% applies to the full total. The
(1+B10)factor handles that. Leave it at 0% if you don't know your average. -
Offsite Ads has a cap.
MIN()stops the fee at $100 per order. -
Round each fee on its own with
ROUND(...,2), the way a statement does. Otherwise your totals drift a few cents from what Etsy shows. -
UPPER()on the Y/N cell means "y" works as well as "Y".
4. Net profit and margin
Total fees =SUM(B13:B16)
Costs =B6*B5+B7+B8 (materials*qty + packaging + postage)
Net profit =B12-B17-B18
Margin =IFERROR(B19/B12,0)
Example: a $24 item with $4.99 shipping, $5.50 materials, $0.80 packaging and $4.50 postage, not from Offsite Ads. Fees come to $3.20: $0.20 listing, $1.88 transaction, $1.12 processing. Net profit is $14.99.
5. Working backwards: break-even and target price
This was the most useful part. Profit is zero when:
price*q + ship = costs + listing + fixed + (price*q + ship) * pct_fees
pct_fees is everything charged as a percentage: transaction, regulatory, processing (adjusted for tax) and Offsite Ads if it applies. Solve for price:
=ROUND(((B18+B13+Settings!$B$6)
/(1-Settings!$B$4-Settings!$B$11-Settings!$B$5*(1+Settings!$B$10)
-IF(UPPER(B9)="Y",Settings!$B$7,0))
-B4)/B5,2)
For a target margin m, take m away from the denominator too (...-B10 in the sheet, where B10 is the target margin). Same example: break-even item price is $7.44, and a 35% margin needs $15.28.
One caveat: the closed form ignores the Offsite Ads cap. It only matters on orders over about $667, so I left it out.
6. Roll it up with SUMIFS (no dynamic arrays)
I wanted it to work in Excel 2010 as well as Google Sheets, so I skipped FILTER/LET. The Sales Log has a helper column Q holding YYYY-MM. The dashboard then uses:
Orders =COUNTIFS('Sales Log'!$Q:$Q,A5)
Revenue =SUMIFS('Sales Log'!$I:$I,'Sales Log'!$Q:$Q,A5)
Fees =SUMIFS('Sales Log'!$N:$N,'Sales Log'!$Q:$Q,A5)
The Products tab works out each SKU's margin after fees and flags anything under 30%:
=IF(E2="","",IF(E2<0.3,"REVIEW PRICING","OK"))
7. Test the formulas outside Excel
I recalculated the workbook headless in LibreOffice (soffice --headless --convert-to xlsx), read the cached values back with Python's openpyxl (data_only=True), and checked them against a separate Python version of the same math. That caught a few real bugs before anyone bought anything. (Tip: on complex sheets, turn off LibreOffice's threaded calculation. It gave me wrong results once.)
Grab it
- The finished workbook (Sales Log, Products, Dashboard, Fee Calculator) on Etsy: https://www.etsy.com/listing/4596086754/etsy-seller-profit-tracker-spreadsheet
- My other templates (landlord, debt payoff, wedding, inventory, freelancer, job search): https://boxcarkits.gumroad.com
Or just copy the formulas above. That's why they're here.
Top comments (0)