Symptom
You are using your own gross pricing procedure that contains a non-statistical, tax-related condition type.
This tax-related condition type is configured as follows:
- Condition class D (Taxes)
- Calculation type H (Percentage (in Hundreds))
- Group condition indicator set to active
In business documents that are using this gross pricing procedure there are some items with only very small gross prices, for example, EUR 0.01.
In this case, it can happen that you cannot release your billing documents to financial accounting.
Instead, the system raises an error message claiming a zero or negative tax base amount.
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Environment
SAP S/4HANA Cloud Public Edition
Cause
Typically you configure the condition types for taxes as group conditions. With this configuration, the system calculates the condition value of the tax-related condition types for each document item and for the document header. The system assigns rounding differences between the sum of condition values of all document items and the document header to one of the involved document items. If the gross prices of the document items are very small, these rounding differences of the tax-related condition type can be equal to, or greater than, the gross price of an item. This can lead to a negative or zero net value since the net value is calculated as the difference between gross value and tax amount.
Later in the business process, when the billing document is released to financial accounting, calculation type H of the non-statistical tax-related condition type requires a new calculation of the tax base and subtracts the condition value from the condition basis. As a result of this calculation, the tax base can be zero or negative. This is necessary because the condition base value of the tax-related condition type holds the gross value, that is, the sum of tax amount and tax base. This is in fact the definition of calculation type H.
Example:
You have a sales order with five items, each with a gross price of and a tax rate of 19%.
For each item, the system calculates the tax amount with calculation type H as follows:
EUR 0.01 -EUR 0.01 ∙100/119 ≈ EUR 0.0016 ≈EUR 0.00. At this point, the gross price with EUR 0.01 is the same as the net value with EUR 0.01.
On header level (where the used tax-related condition type is a group condition) the system calculates the tax amount as follows:
EUR 0.05 - EUR 0.05 ∙ 100/119 ≈ EUR 0.008 ≈ EUR 0.01.
This leads to a rounding difference of between the tax calculation on item and on header level. These rounding differences are applied to one item. After the rounding differences are applied, the five items look as follows:
- Four items with a net value of and a tax amount of EUR 0.00.
- One item with a net value of and a tax amount of EUR 0.01.
Later in the business process, when the billing document is created and released to financial accounting, calculation type H of the tax-related condition type requires a recalculation of the tax base:
The system subtracts the condition value from the condition basis. In this example, for the item with the net value of EUR 0.00, the condition value and the condition basis of the tax-related condition type are both EUR 0.01, resulting in a new tax base of EUR 0.00, which raises an error message.
Resolution
To avoid a negative tax base when releasing the billing document to financial accounting, you can adapt your gross pricing procedure by using the following two condition types for taxes:
- The first tax -related condition type uses calculation type H (Percentage (in Hundreds)). This condition type is not configured as a group condition, and it must be set to statistical in the gross pricing procedure.
- The second tax-related condition type uses calculation type A (Percentage). It's configured as a group condition, and must not be set to statistical in the gross pricing procedure.
Figure 1 shows the basic elements of an example gross pricing procedure with the two tax-related condition types Tax from hundred (ZTFH) and Output Tax (TTX1). With this setup, when the billing documents are released to financial accounting, the recalculation of the tax base based on calculation type H is prevented and the tax base cannot become negative or zero.
Figure 1: Example gross pricing procedure
In this example gross pricing procedure, the statistical condition type ZTFH is NOT configured as a group condition; hence no rounding differences occur for this condition type.
Condition type ZTFH is configured as follows:
- Condition Class D (Taxes)
- Calculation Type H (Percentage (in Hundreds))
- Condition Category D (Tax)
- Item Condition
- Manual Entries D (Not possible to process manually)
- The access sequence of the standard tax condition type, in our example TTX1
- The standard tax-related condition type and application, here TTX1 and V, as reference condition type and application
Condition type ZTFH is used to calculate the price net share (ZPNS) of each item via condition value formula 12: Subtotal D – Subtotal E (that is, subtotal line Gross Total 2 – condition type ZTFH).
Condition type ZPNS is configured as follows:
- Condition Class A (Discount or Surcharge)
- Calculation Type G (Formula)
- Manual Entries D (Not possible to process manually)
- Item Condition
Based on ZPNS, the system calculates the output tax (TTX1) on item and header level. Due to rounding differences, the tax calculation can lead to a mismatch between the subtotal lines Gross Total 1 and the sum of TTX1 and ZPNS on item level. Hence, condition type Net diff. clearing (ZDCL) is needed.
Condition type ZDCL is configured as follows:
- Condition Class A (Discount or Surcharge)
- Calculation Type G (Formula)
- Manual Entries D (Not possible to process manually)
- Item Condition
In addition, condition value formula 83 ensures that the gross total is the sum of the condition values of ZPNS, TTX1, and ZDCL on item level. Condition value formula 83 works as follows:
Subtotal 2 – Subtotal G – Subtotal 3 – Subtotal 4 (that is, subtotal line Gross Total 1 - condition type TTX1 - condition type ZPNS). Subtotal 4, on the other hand, is not contained in the example gross pricing procedure.
For the previously described example of a sales order with five items with a gross price of each and an output tax rate of , condition type ZTFH leads to a condition value of ZPNS per item of because ZTFH is not configured as a group condition.
Calculation of the condition values on item level:
- Gross Total: EUR 0.01
- ZTFH (Tax from hundred): EUR 0.01 - (EUR 0.01 ∙ 100) / 119 = EUR 0.0016 ≈ EUR 0.00
- ZPNS (Price net share): Gross Total -ZTFH = EUR0.01 - 0.00 EUR = 0.01 EUR
When the output tax TTX1 (a group condition) is calculated on header level with EUR 0.05 ∙19 % ≈ EUR 0.01 , there would be a mismatch between the sum of ZPNS and TTX1 with EUR 0.06 and the Gross Total of EUR 0.05. This difference of EUR 0.01 is distributed to one item, leading to a mismatch on item level.
Condition type ZDCL clears this difference of Total of EUR 0.01 between Gross Total and the sum of ZPNS and TTX1 for each item. Figures 2 to 4 show the calculation result on header level, as well as for an item where the rounding differences are not applied, and for an item where the rounding differences are applied. In these figures, the price elements ZPNS, TTX1, and ZDCL are of special interest.
Figure 2: Header data - pricing elements
Figure 3: Item data - pricing elements if the rounding differences of TTX1 are not applied
Figure 4: Item data - pricing elements if the rounding differences of TTX1 are applied
Summary
In your business document, the result of both your own gross pricing procedure and the gross pricing procedure that is described in the solution section of this article will look the same. With the data from the abovementioned example, the document will have:
- Four items with a net value of EUR 0.01 and a tax amount of EUR 0.00
- One item with a net value of EUR 0.00 and a tax amount of EUR 0.01
The gross pricing procedure described in this article only differs in that it uses TWO condition types for the calculation of taxes:
- The statistical condition type ZTFH with calculation type H, which is not a group condition
- The non-statistical condition type TTX1 with calculation type A, which is a group condition
When billing documents are released to financial accounting, and due to the usage of two tax-related condition types, the calculation type of the non-statistical tax is not H. Therefore, the tax base is not recalculated by subtracting the condition value from the condition basis. This leads to a tax base that is greater than zero and the system does NOT raise the message regarding a zero or negative tax base.
Limitations
This approach of a gross pricing procedure only works for tax rates below 50%.
If the net value of a single item is exactly zero, the system may categorize a sales order as incomplete (this depends on the specific incompleteness procedure). In this case, please check KBA 3091512 - How-to set which fields are required for a sales document.
See Also
KBA 2945007 - Negative tax in document item in SAP S/4HANA Cloud Public Edition
KBA 3091512 - How-to set which fields are required for a sales document
Keywords
KBA , SD-BF-PR , Pricing , SD-BF-PR-2CL , Pricing (Public Cloud) , How To