Learn how to complete a series of steps to allow an SAP system to accept four-decimal entries in tax tables. This helps you deal with situations in which the tax authorities introduce new tax rates that have four decimal places or more. The extra decimal place may not be significant if the rate is calculated on small amounts, but it could become significant when dealing with purchases (or sales) in the millions (in monetary terms).
Key Concept
A condition type is used for different functions, such as differentiating between different kinds of discounts, different output types, or different strategy types in batch determination. In this example, it is used to distinguish different tax types and bases that are used for calculating sales taxes.
The standard tax tables (accessed via transaction code FTXP) are used to store the tax rates for various tax codes that are applicable for different countries as well as for different tax jurisdictions in countries such as Brazil, Canada, India, and the United States. However, this table does not allow you to enter a tax rate with more than three decimal places.
In most cases, this is sufficient, because a three-decimal place percentage means that the rate calculates at five decimal places (e.g., 3.685 percent is the equivalent of .03685). However, there are some cases for which a four-decimal place percentage is required (e.g., California’s new resale of capitalizable items tax). This setting cannot be altered in the standard system without a major restructuring of the tables. Even SAP’s key tax software partner, Vertex, allows only three decimal places. Therefore, a workaround is required. I describe this workaround using California’s resale of capitalizable items tax (3.8125 percent) as an example.
The steps that are needed to implement this workaround are as follows:
- Create new condition types
- Create a new transaction key
- Change the tax procedure
- Configure a tax account
- Create a new calculation formula
- Insert the formula in the tax procedure
- Enter the tax rate
Note
The example that is used in this article is based on the US tax procedure. Note that this is a slightly more complicated structure than most other countries because the US uses tax jurisdiction structures (i.e., different tax rates for different jurisdictions within the same country). The idea is that if you can implement this solution in the US, you should be able to set it up for other countries.
Step 1. Create New Condition Types
You need to create a new condition type for this new tax rate. The condition type is a field that allows you to differentiate between different types of tax rates and calculations in the tax procedure. It is not advisable to use an existing standard condition type because you will be making a slight modification to the program code to which this condition is assigned. In my example, you create two condition types, as it relates to use tax (or self-assessment tax).
A use tax is a self-assessment. It means that the tax is levied on a purchase in another US state as if the purchase were made in your own state. One condition represents the tax rate and the other represents the self-assessment percentage (i.e., the percentage of the sales tax that you want to accrue). If you are only changing a sales tax rate that has no self-assessment element, then you only need to create one new condition type.
To create a new condition type, follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Tax on Sales/Purchases > Basic Settings > Check Calculation Procedure. In the pop-up screen (Figure 1) double-click Define Condition Types.

Figure 1
Check the calculation procedure
The new condition types can be copied from existing ones. For example, you can copy the condition types JP1I and JP1U by highlighting the condition type as shown in Figure 2.

Figure 2
Highlight the condition type
Click the copy icon
and in the next screen (Figure 3), change the condition type name (Condit. type) and enter a description. Click the save icon
to save your settings. Everything else should be left the same.

Figure 3
Create condition type ZP1I
You can then follow the same approach for condition type JP1U by copying it to ZP1U and changing the condition name and description as shown in Figure 4.

Figure 4
Create condition type ZP1U
Step 2. Create a New Transaction Key
You need to create a new transaction key if you want the new tax rate to be directed to a different general ledger account. This transaction key is used to determine the accounts and posting keys for the tax line items that the system creates automatically.
To do this, follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Tax on Sales/Purchases > Basic Settings > Check and Change Settings for Tax Processing. In the screen that appears (Figure 5), highlight transaction key MW1 and click the copy icon.

Figure 5
Highlight transaction key MW1
Alternatively, you can create the transaction key from scratch by clicking the New Entries button. This action takes you to the same screen as when you click the copy icon. Enter the details as shown in Figure 6.

Figure 6
Define a transaction key
Step 3. Change the Tax Procedure
You need to insert the condition types and transaction key that you created into the tax procedure. The tax procedure specifies the conditions that are allowed for entering tax rates and the sequence in which they are used.
To complete this step, follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Tax on Sales/Purchases > Basic Settings > Check Calculation Procedure. This path brings you back to the screen shown in Figure 1. Double-click Define Procedures to see the list of existing tax procedures in the system. Scroll down to the procedure TAXUSJ (Figure 7).

Figure 7
Highlight the tax procedure
Highlight the tax procedure TAXUSJ and double-click the Control Data folder. This action inserts the new condition type (ZP1I in my example) in the Reference Step Overview screen (Figure 8).

Figure 8
The Reference Step Overview screen for condition type ZP1I
Next, insert the second condition type ZP1U (complete the same steps that you followed for inserting condition type ZP1U) and the new transaction key ZW1 in the tax procedure as shown in Figure 9. Note that this setting is specific to the Use tax. This is because the first condition holds the tax rate, which in the US is nondeductible input tax assigned to transaction key NVV. The second condition holds the self-assessment percentage, which is assigned to the new transaction key ZW1. If you are not working with a self-assessment tax rate, then you only insert one condition type, which has the new transaction key assigned to it.

Figure 9
The Reference Step Overview screen for condition ZP1U
Step 4. Configure a Tax Account
The tax general ledger account needs to be assigned to the new transaction key. To do this, execute transaction code OB40 or follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Tax on Sales/Purchases > Posting > Define Tax Accounts.
The screen that appears (Figure 10) lists existing transaction keys. Scroll down to the new transaction key that was created (ZW1 in my example).

Figure 10
The transaction key for taxes on sales or purchases
Figure 11 
Figure 11
The Chart of Accounts screen
Press the Enter key or the green check mark and click the save icon. Click the Posting Key button (not shown) so that you can enter the posting keys in the Debit and Credit fields as shown in Figure 12.

Figure 12
Maintain posting keys
Now click the Rules button. In the next screen (Figure 13) select the Tax code check box and click the save icon.

Figure 13
Maintain tax code rules
After you define the rules, you can enter the relevant account by clicking the Accounts button. Enter the tax code (this code is used for the new tax rate) and the relevant account as shown in Figure 14.

Figure 14
Maintain the tax account
Step 5. Create a Routine Formula
You need to create a calculation formula that performs a calculation on the tax rate that is entered in the tax tables. Remember, the purpose of this workaround is to deal with the issue of the SAP system not allowing an entry with more than three decimal places. Therefore, you need to create a formula that divides the rate that is entered in the tax table (which is in three decimal places) by 10. This in effect makes it a tax rate with four decimal places. The calculation formula allows you to define an alternative way of calculating a tax rate than the method that the SAP system provides.
To complete this step, execute transaction code VOFM. In the top menu (this screen is not shown) select Formulas and > Condition Value. In the screen that appears (Figure 15) scroll down to the bottom of the list to enter new values under Routine number and Description.

Figure 15
Maintain the routine number
Now highlight this line and click the source text icon
. Press Enter twice to confirm the two information messages that show up. Now click the Insert button (not shown) and enter the following code xkwert = xkwert / 10 as shown in Figure 16.

Figure 16
Maintain the routine formula
Click the save icon, click the activate
icon, and then click the back arrow icon
. Even though you have activated the formula, you still need to go back and and highlight the Routine number and select from the top menu Edit > Activate. This action selects the Active check box as shown in Figure 17.

Figure 17
Activate the routine number
Note that once you transport your settings to the target system, you need to generate Program RV80HGEN in that system for the program to work there.
Step 6. Insert the Formula in the Tax Procedure
After creating the formula, you assign it to the appropriate condition step in the tax procedure. To do this, follow menu path Financial Accounting (New) > Financial Accounting Global Settings (New) > Tax on Sales/Purchases > Basic Settings > Check Calculation Procedure (refer back to Figure 1). Double-click Define Procedures. In the next screen, scroll down to TAXUSJ, highlight this line, and double-click the Control Data folder (refer back to Figure 7). Enter the routine number 960 in the field under the CalTy… (calculation type) column of condition ZP1I as shown in Figure 18.

Figure 18
Enter a calculation type in the tax procedure
Step 7. Enter the Tax Rate
After you make all the relevant settings, you can enter the tax rate for the appropriate country and jurisdiction (if required). To do this, execute transaction code FTXP. In the screen that appears (Figure 19), enter the relevant country and jurisdiction in the Country Key and Tax Jurisdiction fields, respectively. Go to the A/P Cap. Exp. Tax row, and in the field under the Tax Percent Rate column, enter the tax rate (38.125 represents 3.1825). Click the save icon.

Figure 19
Maintain the tax code
After you post a document, you see that the system calculates the tax amount by dividing the entered rate by 10 and thereby using a four decimal place tax rate (3.8125 × 1,000,000.00). The results of this calculation are shown in Figure 20.

Figure 20
Results of a tax calculation based on a tax rate with four decimal places
Paul Ovigele
Paul Ovigele is the founder of ERPfixers, an online micro-consulting platform (https://www.erpfixers.com). He has worked as an ERP financials consultant since 1997 in both North America and Europe, specializing in implementing the FI and CO modules along with their integrated areas for companies in industries such as consumer goods, chemicals, logistics, pharmaceuticals, apparel and entertainment. Paul has delivered numerous training sessions to finance professionals at both the functional and managerial levels, and he has presented at various SAP financials conferences around the world.
You may contact the author at paul@ovigele.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.