Map tax breakdowns by tracing each confirmed line treatment into the target’s required grouping and amount relationships. Category, rate, reason and taxable base have distinct meanings. A sum of line tax values is useful arithmetic, but it is not automatically the complete breakdown a formal profile requires.
The mapping preparation workflow separates determination from representation. The creator calculates manual line tax and sums rounded contributions within its own model. It does not determine the treatment or implement every formal category-level breakdown and coded reason.
Start with confirmed line decisions
For each supply, preserve the determined category, rate where relevant and supporting explanation. Keep the source and scope of the decision. Similar descriptions or equal tax amounts do not establish that lines share the same treatment.
Do not ask the mapper to infer an exemption or reverse-charge decision from country, customer name or a zero amount. Those require the appropriate facts and review. Mapping expresses the decision accurately; it does not create the legal basis.
If a line’s treatment is unresolved, keep it as an explicit data gap. A convenient default can produce an apparently balanced file while representing the wrong transaction. Resolve the decision before final export.
Identify group membership
Check the target’s category and rate grouping requirements under the exact profile and version. Several commercial lines may contribute to one group, while equal zero-tax results may belong to different categories. Preserve the semantic distinctions.
Use a working table connecting source line references to intended tax groups. Review it in both directions: every line should be accounted for, and every group should trace to its contributing facts. This exposes stale groups after a row is removed.
OpenPeppol’s category structure illustrates separate category identification, percentage and reason roles. Apply the actual required specification rather than assuming all profiles group or validate those facts identically.
Preserve the right bases
Determine the net amounts after the applicable supported adjustments. A breakdown based on undiscounted amounts can differ before rounding is considered. Keep the accepted adjustment scope and the target’s calculation model visible in the mapping record.
Document-level allowances or charges may affect category-level relationships beyond the current app’s line-percentage model. Do not silently allocate them to whichever group is easiest to reconcile. Use a system that implements the required model and appropriate determination.
Use the allowance and charge mapping guide to identify these dependencies. A correct-looking tax sum does not prove that every adjustment and base was represented at the right level.
Map reasons and identifiers separately
A reason text and a formal code can be different target fields. Preserve the confirmed value, applicable list and meaning where required. A phrase in the creator’s reason box does not establish a verified code mapping.
Keep seller and buyer identifiers attached to their party roles. They may be relevant to the broader determination, but they are not substitutes for a category reason. A complete party group does not make every tax breakdown valid automatically.
If the final workflow requires a separate tax accounting currency, record that model requirement explicitly. The creator has no second-currency calculation or conversion. A note naming another currency does not populate the required amounts.
Compare calculations without changing treatment
Check the target’s rounding and grouping policy against the source. The creator sums rounded line tax; another formal model may require specified group relationships. A cent difference needs an arithmetic investigation rather than an arbitrary category change.
Identify the first differing intermediate value using exact source inputs. Lost price precision, changed line grouping and different rounding stages are distinct causes. Preserve that evidence so the resolution is explainable.
Do not alter a rate or category solely to force agreement. The treatment should remain anchored to its determination, while an implemented final system produces the required representation and calculations.
Test and retain the final mapping
Use fictional lines with distinct treatments, an adjustment and a required reason. Trace each into the actual exported groups. Include a missing conditional field and verify that the final workflow reports it clearly rather than inventing a value.
Compare the readable representation with the same confirmed source facts. A correct visible total cannot establish that the structured reasons and group membership are right. Inspect both meanings and amounts.
Retain the exact source, mapping configuration, output and required validation report. The current application JSON, CSV and printable output remain preparation outputs. Formal tax-breakdown conformance, legal treatment, submission and acceptance require the appropriate implemented workflow and evidence beyond a completed form.
A useful review sheet gives every fictional line a working reference, confirmed category, rate, net base and intended tax group. After generating the target, work backwards from each group to its source rows. Then remove one row and verify that both the group base and related evidence update. This exposes stale aggregation that a test using an unchanged line set may miss. Keep the treatment decision fixed during the exercise so an arithmetic repair cannot be concealed by moving a line to a different category.
Record the reviewed group membership.