The Sub Calculate rule section is the core of the tax calculations. It consists of many subroutines to perform various calculations. For example, the system starts by pulling data from prior year balances as the opening balances for the current year. The system automatically reconciles between Trial Balance data and Book data to ensure that the correct starting point for tax provisioning is the adjusted Trial Balance total. It then runs the tax automation process to set up data in the permanent and temporary difference accounts, as well as other tax accounts. The system calculates tax losses and credits for national provision. It also calculates Return to Accrual adjustments and other adjustments. The appropriate tax rate is applied to each account to calculate the tax expense for the period.
Tax calculations are performed at the parent Entity level only if the entity has the TaxCalc userdefined property set to Yes. Otherwise, tax calculations will not be performed.
The following calculations will be performed for all entities if the accounts are valid for data entry.
Calculate Opening Balances
Calculate RTA for Temporary Difference accounts
Calculate Auto Adjustments
Calculate Automation values
Calculate Tax Losses and Credits (by expiration year)
The following calculations will be performed for entities where tax calculation is enabled for both the parent and base entity.
Core tax calculations
TARF calculations
Validations
FIN18 calculations
The following table shows valid accounts for entities. When the account is valid, it is considered for calculations.
Parent Entity  Base Entity  

Account has a group assigned  No Groups assigned to entity  No Group assigned to entity:
 No Groups assigned to entity  Valid Group assigned to entity:

Account has no group assigned  No  Yes 
Each subroutine performs specific calculations as part of the tax provision process.
The following subroutines are called within Sub Calculate.
Sub Calculate
Call Calculate_ExchangeRates
Call Clear_ValidationCellText
Call Calculate_OpenBalances
Call Calculate_AutoAdjustment
Call Calculate_TaxLossesNational
Call Calculate_TaxCreditsNational
Call Calculate_RTA
Call Calculate_TaxAutomation
Call Calculate_TaxCalculations
Call Calculate_NatRegcoreTax
Call Calculate_AssetLiab
Call Calculate_VAAllocation
Call Calculate_Reclass
Call Calculate_TempEquity
Call Calculate_ETR
Call Calculate_TARF
Call Calculate_Validations
Call Clear_Zeros
Call Set_ImpactStatus
Additional details for each subroutine:
Sub Calculate ActiveRegion
Determine if region is active if at least one of the three regional tax rates is entered.
Sub Calculate_AssetLiab
Determine whether deferred tax is Asset or Liability.
Determine whether deferred tax is Current or NonCurrent.
Sub Calculate_AutoAdjustments
Calculate Auto Adjustments to reconcile between Book and Trial Balance data.
Sub Calculate_BlendedTaxApportionment
Calculate blended tax apportionment for the blended region.
Set blended tax apportionment at 100% if no regional apportionment is entered.
Sub Calculate_BVTCoreTax
Perform tax calculations for BVT accounts.
Flow of BVT core tax calculations:
If there is no linked account specified for the BVT account, then tax calculations are not performed.
Current BVT account should be valid for AllBVTTax DataCategory member and BVTTaxCalc RollForward member.
If the linked account is tax effected, no tax rate is applied.
If there is no override tax rate specified for the linked account, then the Current/NonCurrent closing tax rate (based on the linked account) is applied, and if no closing rate is specified, it is skipped.
NBR is calculated based on the linked account property. If the linked account has NBR  Yes, then NBR is calculated; otherwise, NBR is skipped.
Calculations are translated at the closing rate.
Sub Calculate_ExchangeRates
Obtain Opening Exchange Rates from prior year's closing rates.
Set up the Exchange Rates to use for translation.
Sub Calculate_Exchange Rates runs from Sub Calculate.
Sub Calculate_ETR
Compute the Statutory, Regional, and Consolidated Effective Tax Rate.
Set blended tax apportionment at 100% if no regional apportionment is entered.
Sub Calculate_OpeningBalances
Calculate Opening Balances for Trial Balance/Book/Tax data.
Opening balances are retrieved from prior year's closing balances.
Opening balances for the current Scenario / Year / Period Closing balances are pulled from different Scenario, Year and Period by satisfying the below conditions.
If there is no dynamic Scenario specified using the Opening Balances custom screen, then the Scenario member specified in the UD property("SrcSc") will be considered. If there is no member specified in the UD property, then the current Scenario member will be used.
If there is no source Year specified in the UD property("SrcYr"), then the prior Year will be used.
If there is no source Period specified in the UD property ("SrcP"), then the last Period(P12) will be used.
After populating the Opening Balances for the current scenario, the appropriate dependent future scenarios status will be impacted.
Sub Calculate_OpenBalances runs from Sub Calculate.
Sub Calculate_NatRegCoreTax
Calculate National tax expense.
Calculate rate changes from opening.
Calculate rate changes from current period.
Perform equity reversal.
Perform reclass to equity movement.
Calculate regional tax.
NBR calculation.
Calculate Opening rate change on NBR.
Calculate regional taxes as deduction for national provision.
Sub Calculate_Reclass
Calculate RollForward reclassification for assets and liabilities.
Sub Calculate_TaxAutomation
Calculate Tax Automation.
Sub Calculate_TARF
Book accounts have to enter into National Jurisdiction, but for TARF rule, read from National and write to Regional US_Blended.
Perform Tax Account RollForward calculations.
Sub Calculate_TaxCreditsNational
Calculate Tax Credits for National provision.
Sub Calculate_TaxLossesNational
Calculate Tax Losses for National provision.
Sub Calculate_TempEquity
Calculate temp equity accounts in TBBS.
Sub Calculate_VAAllocation
Calculate Valuation Allowance allocation.
Sub Calculate_Validations
Calculate following validations:
Validate that TaxLossCFS at CYAdj is positive.
Validate that TaxLossesTotal at Closing equals TaxLosses/CreditTotal at TaxLossCreditTotal.
Validate that CurrentTaxExpense at CY minus NDefTaxTotal at CYTotal equals to SETRTaxEffect.
Validate that RCurrentTaxExpense at CY minus RDefTaxTotal at CYTotal equals to RETRTotal at RETRTaxEffec.
Validate that CurrentTaxExpense at CY minus NDefTaxTotal at CYTotal plus RCurrentTaxExpense at CY plus RDefTaxTotal at CYTotal equals CETRTotal at CETRTaxEffect.
Sub Clear_ValidationCellText
Clear all validation cell text entries written from the previous validation process.
Sub Clear_FXApport
Clear generated FXCY of Apportionment.
Sub Clear_Zeros
Clear all zero data entries.
Sub Set_ImpactStatus
Set Impact status for future periods across years when changes are made in the last period prior year.
Placeholders for Pre and Post Custom Code Execution
The following subroutines can be used to write pre and post logic during specific tax calculations.
Pre_OpenBalances()
Calculate_OpenBalances
Post_OpenBalances()
Pre_RTA()
Calculate_RTA
Post_RTA()
Pre_Taxautomation()
Calculate_TaxAutomation(False,False)
Post_Taxautomation()
Pre_TaxCalculations()
Calculate_TaxCalculations(False,False)
Post_TaxCalculations()
Pre_TARF()
Calculate_TARF
Post_TARF()
Pre_FIN18()
Calculate_Fin18
Post_FIN18()
Pre_Validations()
Calculate_Validations
Post_Validations()
Placeholder for Post Custom Code Execution
The following subroutine can be used to write post logic during currency translations.
Translate_Custom ()
You can add the custom code in the predefined subroutines for pre/post processing data before the specified calculation segment.