Browse the manual
Tax basics
How Made with Pepper handles tax rates, net pricing, rounding rules, frozen rates on each line, and how Made with Pepper calculates tax on an invoice.
On this page
For: business owners and bookkeepers who need to understand how Made with Pepper handles tax on invoices.
Tax-exclusive pricing
Made with Pepper uses tax-exclusive (net) pricing. You enter unit prices without tax. Made with Pepper adds tax to each line item using the selected tax rate. There is no tax-inclusive mode: a price you type is always the net price.
This matches how most B2B invoicing works in Europe, North America, and Australia.
Tax rates in basis points
Made with Pepper stores tax rates as integers in basis points. One basis point is 0.01%. It stores 21% VAT as 2100, 9% as 900, and 0% as 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%.
Storing 21.00% as the integer 2100 avoids the rounding errors that floating-point math can introduce 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.
The totals show one row per tax group, with the rate name and percentage. Here, "BTW 21% (21%)" shows €420.00 and "BTW 9% (9%)" shows €102.60. Made with Pepper groups by rate name, rate and tax category. Lines without a tax rate show in a row named No tax. How the totals appear lists every totals row.
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
Made with Pepper stores all money as whole minor units: €125.00 becomes 12500, ¥1,500 stays 1500. It calculates each step with exact arithmetic and rounds to the nearest minor unit with the half-up rule: 0.5 rounds up. It rounds after the quantity step, after a percentage discount, and after the tax step, never on the document total. The totals you see while typing are a preview; the server calculates the stored totals with the same rules.
A line or document total cannot exceed 92,233,720,368,547,758.07 in a two-decimal currency (9,223,372,036,854,775,807 minor units in any currency). Made with Pepper refuses a larger amount before it saves anything.
Discounts
Made with Pepper applies discounts before tax. A 10% discount on a €2,000.00 line reduces the subtotal to €1,800.00. Made with Pepper calculates tax on €1,800.00.
The sheet shows €1,800.00 in the Amount column, with "Discount −€200.00" under the line's description. The document totals show Subtotal before discount, Discount as a minus amount and Net total before the tax rows. Subtotal before discount minus Discount equals Net total.
Made with Pepper supports two discount types per line:
- Percentage: entered as a percentage (10 for 10%, up to 100)
- Fixed amount: entered as a currency amount (€200.00). A fixed discount larger than the line amount before discount is refused, not reduced
Frozen rates on each line
When you save a draft, each line stores the tax rate it used: the rate's name, percentage, UBL category, exemption code and exemption reason. The invoice page, the PDF, the XML export and the tax report read that stored rate. Editing, deactivating or deleting a rate in Settings > Tax rates does not change existing lines. They keep their saved label and amounts when you save the draft again.
To apply a changed rate to a draft:
- Open the draft.
- Click Edit.
- Open Tax on the affected line.
- Select an active rate.
- Click Save draft.
Selecting the same active rate uses its current values. Made with Pepper recalculates the draft's totals when you save. An invalid line shows its reason under its total. The totals panel waits until every line is valid.
When you finalize a draft, Made with Pepper locks it and recalculates every line from its stored rate. It compares the result with the saved totals and the page you reviewed.
If anything differs, Made with Pepper refuses the issue and says the draft changed after you reviewed it. A colleague's edit can cause this. Nothing is numbered or changed. Open the draft again. Check the lines and totals. Review and issue it again.
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. The PDF tax breakdown lists every tax group, 0% groups included, with its taxable amount and tax.
What Made with Pepper does not do
Made with Pepper 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. Made with Pepper gives them structured invoices to work with.
Related pages
Need help with the product?
Contact support