Reverse calculations

Determination has these reverse calculation types:
  • Reverse from tax
  • Reverse from total

Reverse from tax calculations

Reverse from tax calculations use the tax amount and, optionally, the gross amount provided in the transaction data.
Determination computes a calculated gross amount and determines how the tax is distributed across the authorities. Due to the reverse from tax calculation algorithm, transactions may result in calculated gross amounts that don't match the gross amounts from the XML input.
The primary purpose of reverse from tax calculations is to give the correct tax allocation across authorities rather than give accurate gross amounts.
A reverse from tax calculation is indicated with the value of R in the <CALCULATION_DIRECTIONS> XML input element. This element can be set by your business source system or a TransEditor.

Reasons for using reverse from tax calculations

  • You only know the tax for a transaction and you want Determination to calculate the gross amount.
  • You know both the gross amount and the tax amount, but you need Determination to distribute the tax amount among the authorities.
  • You need to push a particular tax value to your business source system.
note
For reverse from tax transactions that use tiered rates and have no gross amount, the calculated gross amount may not approximate the gross amount. This occurs because Determination must use a seeded gross amount, which may not reflect your original gross amount, in reverse from tax calculations. To avoid this, supply a gross amount for these transactions.

Reverse from total calculations

Typically, the gross amount and the tax amount aren't provided in the transaction data for reverse from total calculations. Rather, the line gross and tax amounts (gross plus tax) are provided, and Determination separates the total into a gross amount and a tax amount.
note
Due to the reverse from total calculation algorithm, transactions may results in calculated gross amounts that don't match the gross amounts from the XML input. The primary purpose of reverse from total calculations is to provide the correct tax allocation across authorities rather than provide accurate gross amounts.
A reverse from total calculation's indicated with the value of T in the <CALCULATION_DIRECTION> XML input element. This element can be set by your business source system connected to Determination or in a TransEditor.

Audit database

Determination records transactions with tax liabilities in your audit database for reporting and return preparation purposes. Transaction tax results that are audited can't be changed. For transactions with a reverse from tax or reverse from total calculation type, your audit database's updated as follows:
  • Reverse from tax transactions
    - If you provide a gross amount, Determination records the amount in the GROSS_AMOUNT column of the TB_INVOICE_LINES audit table. If you don't provide a gross amount, the value remains NULL in the GROSS_AMOUNT column. Since Determination computes the calculated gross amount for reverse from tax transactions, the unrounded value's recorded in the CALCULATED_GROSS_AMOUNT column of TB_INVOICE_LINES audit table.
  • Reverse from total transactions
    - Since you provide the combined gross plus tax amount, there's (typically) no separate gross amount. After computing the calculated gross amount, Determination records this unrounded amount in the CALCULATED_GROSS_AMOUNT column of the TB_INVOICE_LINES audit table. The GROSS_AMOUNT column's populated with the gross amount provided in the XML input. No value's populated in the GROSS_AMOUNT column if there was no gross amount included in the XML input.

XML output

There are 2 reversal requests that can be submitted to Determination:
  • Explicit reversal requests - Occur when you send the reversal request by including Is Reversal = True (or Y) in your tax call.
  • Implicit reversal requests - Occur when you submit the same invoice transaction, which triggers the reversal of an existing record with the same invoice.
Regardless of the reversal request submitted, the tax calculation service creates a reverse entry in your audit database. For implicit reversal requests and explicit reversal requests with an existing original invoice, the tax calculation service returns the reverse entry to your business source system. The data included in the XML output includes the following:
  • Reverse from tax transactions
    - By default, the XML output includes the gross amount provided in the XML input. If a gross amount wasn't provided in the XML input, the gross amount element's excluded from the XML output. Regardless of whether the gross amount's included in the XML input, you can always return the unrounded calculated gross amount value in the gross amount XML output element. To do this, set the USE_CALC_GROSS_AMT_AS_GROSS_AMT_CALC_DIR_R configuration parameter to Y. This configuration parameter's set to N by default.
  • Reverse from total transactions
    - By default, the XML output includes the gross amount provided in the XML input. If a gross amount wasn't provided in the XML input, the gross amount element's excluded from the XML output. Regardless of whether the gross amount's included in the XML input, you can always return the unrounded calculated gross amount value in the gross amount XML output element. To do this set the USE_CALC_GROSS_AMT_AS_GROSS_AMT_CALC_DIR_T configuration parameter to Y. This configuration parameter's set to N by default.
For explicit reversal requests where the original invoice doesn't exist, the tax calculation service doesn't return the reverse entry to your business source system. Rather, an acknowledgement's returned and the reversal's reflected asynchronously in the reporting database. The following's an example acknowledgement:
<MESSAGE> <LOCATION>AuditData.save</LOCATION> <CATEGORY>CALCULATION</CATEGORY> <CODE>AUDIT_SUCCESS</CODE> <MESSAGE_TEXT>Audit data saved successfully.</MESSAGE_TEXT> <SEVERITY>0</SEVERITY> </MESSAGE>
You can validate explicit reversals in Reports & Analytics by using the following reports:
  • A custom report. To use a custom report to validate explicit reversals, create the custom report, add the Reversal column to the template then select Reversal = Y to filter the dataset.
  • The US Document Details standard report. To use this report to validate explicit reversals, run the report then select Yes in the Reversal column to filter the dataset.