Tax Basics.
How InvoiceScript handles tax rates, the difference between inclusive and exclusive pricing, rounding rules, and how tax is calculated on an invoice.
Tax Basics
For: business owners and bookkeepers who need to understand how InvoiceScript handles tax on invoices.
Tax-exclusive pricing
InvoiceScript uses tax-exclusive (net) pricing. You enter unit prices without tax. Tax is calculated on top of each line item based on the selected tax rate.
This matches how most B2B invoicing works in Europe, North America, and Australia.
Tax rates in basis points
Tax rates are stored as integers in basis points. One basis point is 0.01%. So 21% VAT is stored as 2100, 9% is 900, and 0% is 0.
You do not need to think in basis points. The UI shows percentages. But if you are a developer looking at the database, 2100 means 21.00%.
Why basis points? Floating-point math and money do not mix. Storing 21.00% as the integer 2100 avoids rounding errors in rate storage.
Per-line tax rates
Each line item on an invoice has its own tax rate. This matters when you sell a mix of products or services with different rates.
Example: Northwind Studio invoices Globex GmbH for design work (21% VAT) and a printed annual report (9% VAT) on the same invoice. Each line uses its own rate, and the invoice shows a tax breakdown by rate:
| Tax rate | Subtotal | Tax |
|---|---|---|
| BTW 21% | €2,000.00 | €420.00 |
| BTW 9% | €1,140.00 | €102.60 |
| Total | €3,140.00 | €522.60 |
Grand total: €3,662.60.
How a line is calculated
For a line with quantity 16, unit price €125.00, and tax rate 21%:
- Gross = 16 × €125.00 = €2,000.00
- Discount = 0 (no discount on this line)
- Subtotal = €2,000.00
- Tax = €2,000.00 × 21% = €420.00
- Line total = €2,000.00 + €420.00 = €2,420.00
All money is stored as integer cents. €125.00 is stored as 12500. Multiplication happens in cents, and rounding to the nearest cent uses the standard half-up rule.
Discounts
Discounts are applied before tax. A 10% discount on a €2,000.00 line reduces the subtotal to €1,800.00, and tax is calculated on €1,800.00.
InvoiceScript supports two discount types per line:
- Percentage: entered as a percentage (10 for 10%)
- Fixed amount: entered as a currency amount (€200.00)
Zero-rate and exemptions
A 0% tax rate is valid and common. Use it for:
- Export sales outside your tax jurisdiction
- Intra-EU sales where reverse charge applies (use the AE tax category)
- Tax-exempt goods or services
The invoice shows a 0% line in the tax breakdown, which documents that you considered the tax treatment.
What InvoiceScript does not do
InvoiceScript calculates tax based on the rates you assign. It does not determine which rate applies to a specific product or service. It does not validate VAT numbers. It does not file tax returns.
Your accountant handles tax compliance. InvoiceScript gives them clean, structured invoices to work with.
Related pages
Ready to build?
One-time purchase. Self-hosted. Own every file forever.