FAQ
How is VAT calculated? Horizontally or vertically?
How is VAT calculated? Horizontally or vertically?
Short answer
In the TYPO3 Shop, VAT is calculated horizontally. That means: all line items that share the same tax class are first summed net, and VAT is then applied once to the subtotal of that class. This yields precise tax amounts and a clean, accounting‑friendly result.
Horizontal vs. vertical calculation
- Horizontal (used here): Sum all net amounts per tax class → apply the tax rate once to the subtotal → round at subtotal level.
- Vertical: Calculate and round VAT per line item and then sum up those rounded results.
Why we favor horizontal calculation:
- It avoids rounding noise across many items
- Totals match accounting expectations for aggregated invoices
- Stable, reproducible results even with many micro amounts
How it works in detail
- Group all basket positions by tax class (e.g., 19%, 7%).
- Sum the net for each group (subtotal per tax class).
- Compute VAT for the group once: subtotal × tax rate.
- Round at subtotal level according to your currency precision.
- Sum the gross totals of all groups for the invoice total.
Rounding behavior
- Rounding occurs on the aggregated tax‑class subtotal level (not per line item).
- Currency precision is respected (typically 2 decimals).
- This prevents cumulative rounding differences you often see with vertical calculations.
Example
- Items A, B, C (all 19%): Net 10.01 + 10.01 + 10.01 = 30.03
- VAT (19%) horizontally: 30.03 × 0.19 = 5.7057 → 5.71
- Gross for this class: 35.74
Vertical would calculate tax per line (1.9019 → 1.90 each) and sum 5.70 — a difference due solely to rounding per line. Horizontal keeps the mathematically precise total.
What this means for you
- Clear and audit‑ready totals on invoices
- Less ambiguity in reconciliations with finance systems
- Predictable behavior for promotions and micro‑pricing
Conclusion
VAT is calculated horizontally in the TYPO3 Shop. Identical tax‑class positions are aggregated net, VAT is applied once to the subtotal, and rounding occurs at the subtotal level to provide exact, accounting‑friendly results.
More frequently asked questions
- Wie löse ich den Fehler „FPDF error: All fonts must be embedded in PDF/A“ bei der PDF-Erstellung?
- How is VAT calculated? Horizontally or vertically?
- How can I adjust the sorting of variants in the variant filter?
- How does the session behave for logged‑in and non‑logged‑in frontend users?
- Why can products not be added to the shopping basket?
- Why are images missing in the product list?
- Why does the product click counter not work?
- Which PDF files can the shop create?
- Why does my PayPal redirect not work?
- Can I use the TYPO3 Shop as a jeweler and automatically import my jewelry — e.g., from the Opal ERP system?
- Can I run multiple fully separated shops for different clients in a single TYPO3 instance?
- Can I use BMEcat 2005 to import and synchronize my products with the TYPO3 Shop?
- Was ist der Unterschied zwischen Storno und Retoure (Return)?
- Beim Klick auf den Warenkorb wird nichts angezeigt obwohl das Plugin richtig platziert wurde, woran kann es liegen?
- Bei mir werden im Produkt im Backend einige Felder nicht angezeigt, woran liegt es?
- Beim Aufruf von AJAX-Requests via JSON-API kommt nur ein 200 zurück, aber keine JSON-Daten – woran kann das liegen?
- The checkout view doesn't have any country items to select - why?
