Threshold tracking
How the threshold works
Under the EU One Stop Shop scheme, you can keep charging your home-country VAT on cross-border B2C sales to other EU member states until those sales pass EUR 10,000 in a calendar year. Once you cross that line, destination-country VAT applies, and you can report it through a single OSS return instead of registering for VAT in every country you sell to.
The plugin tracks one running total per calendar year, aggregated per destination country, and updates it live as orders come in.
What counts
Only cross-border B2C sales to other EU member states count. Domestic sales, sales outside the EU, and B2B sales (orders with a usable VAT number or marked VAT-exempt) are excluded automatically — see Order classification for the exact rules.
For each qualifying order, the tracked amount is the order total minus tax — so shipping is included, VAT is not — converted to EUR. On EUR stores no conversion is needed; on non-EUR stores conversion uses ECB rates and requires the Pro multi-currency module (without it, tracking is paused).
Orders are counted when they reach the Processing or Completed status.
Status changes and reversals
The total always reflects reality, not gross sales:
- An order moved to Cancelled, Refunded, Failed, On hold, or Pending payment, or moved to the trash, is reversed out of the total.
- If the order later returns to Processing or Completed, it is counted again.
Refunds
Refunds reduce the tracked total automatically. The plugin keeps a per-order refund ledger, so partial refunds are subtracted at their net amount and a sequence like partial refund → cancelled → back to processing never double-counts or loses a sale. Fully refunding an order removes its remaining net amount from the year’s total.
Once crossed, it stays crossed
EU rules say that once your sales cross EUR 10,000 in a year, destination-country VAT applies for the rest of that calendar year — even if refunds later pull the running total back under the line. The plugin latches the “threshold crossed” state per year accordingly: the dashboard keeps reporting the year as exceeded after a crossing, and the year after a crossing is also treated as obligated (“Destination VAT required”) from the start.
Where you see it
- WooCommerce → One Stop Shop — the dashboard with the progress bar, status card, and per-country breakdown.
- The EU VAT OSS — Threshold widget on the wp-admin Dashboard — current-year progress at a glance.
- Admin notices — when the current year is approaching (70%+) or has exceeded the threshold, a notice appears on WooCommerce screens with a link to the dashboard. Each notice can be dismissed and stays dismissed for that user, year, and level.
- Email alerts — see Email notifications.
Off-platform sales
If you also sell through Amazon, eBay, or in person, those sales count toward the same legal threshold. Record them as manual adjustments on the dashboard so your tracking reflects your total EU B2C activity — see Manual adjustments.
Calendar year
The threshold is per calendar year. The dashboard’s year selector lets you review previous years; historical totals are kept.
Accuracy notes
- The plugin relies on the address data stored on each WooCommerce order.
- It tracks against the standard VAT rate data for each member state; reduced and zero rates are not handled automatically.
- If your numbers ever look off (after an import, a bulk status change, or a plugin update), run Recalculate from the dashboard to rebuild the year from your actual orders — see Dashboard.