Der Regelabschnitt "Sub Calculate" stellt das Kernstück der Steuerberechnungen dar. Der Abschnitt besteht aus vielen Subroutinen zum Ausführen verschiedener Berechnungen. Beispiel: Das System ruft zuerst Daten aus den Vorjahressalden als Anfangssalden für das laufende Jahr ab. Die Saldenbilanzdaten und die Buchdaten werden automatisch abgestimmt, um sicherzustellen, dass die angepasste Saldenbilanz (gesamt) der richtige Ausgangspunkt für die Steuerrückstellung ist. Dann wird der Steuerautomationsvorgang ausgeführt, um die Daten in den Konten für Dauerabweichungen und in den Konten für vorübergehende Abweichungen sowie andere Steuerkonten einzurichten. Das System berechnet Steuerverluste und Steuergutschriften für die nationale Rückstellung. Außerdem werden Anpassungen ans Vorjahr und sonstige Anpassungen berechnet. Auf jedes Konto wird der entsprechende Steuersatz angewendet, um den Steueraufwand für die Periode zu berechnen.
Steuerberechnungen werden nur auf der übergeordneten Entityebene durchgeführt, wenn die benutzerdefinierte TaxCalc-Eigenschaft für die Entity auf "Ja" festgelegt ist. Anderenfalls werden Steuerberechnungen nicht durchgeführt.
Die folgenden Berechnungen werden für alle Entitys durchgeführt, wenn die Konten für die Dateneingabe gültig sind.
Anfangssalden berechnen
Anpassung ans Vorjahr für Konten für vorübergehende Abweichungen berechnen
Automatische Anpassungen berechnen
Automatisierungswerte berechnen
Steuerverluste und -gutschriften (nach Jahr des Ablaufs) berechnen
Die folgenden Berechnungen werden für alle Entitys durchgeführt, für die die Steuerberechnung für die übergeordnete Entity und die Basisentity aktiviert ist.
Kernsteuerberechnungen
TARF-Berechnungen
Validierungen
FIN18-Berechnungen
In der folgenden Tabelle werden gültige Konten für Entitys angezeigt. Wenn das Konto gültig ist, wird es für Berechnungen berücksichtigt.
| Konto | Übergeordnete Entity | Basisentity |
|---|---|---|
| Konto wurde eine Gruppe zugewiesen | Entity wurden keine Gruppen zugewiesen – Nein
Entity wurde Gruppe zugewiesen:
|
Entity wurden keine Gruppen zugewiesen – Gültig Entity wurde Gruppe zugewiesen:
|
| Konto wurde keine Gruppe zugewiesen | Nein | Ja |
Jede Subroutine führt im Rahmen des Steuerrückstellungsvorgangs bestimmte Berechnungen aus.
Die folgenden Subroutinen werden innerhalb von "Sub Calculate" aufgerufen.
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

Weitere Details für jede Subroutine:
Sub Calculate ActiveRegion
Ermitteln, ob die Region aktiv ist, wenn mindestens einer der drei regionalen Steuersätze eingegeben wird
Sub Calculate_AssetLiab
Ermitteln, ob sich die latenten Steuern auf Vermögenswerte oder Verbindlichkeiten beziehen
Ermitteln, ob die latenten Steuern aktiv oder passiv sind
Sub Calculate_AutoAdjustments
Automatische Anpassungen zum Abstimmen der Buch- und Saldenbilanzdaten berechnen
Sub Calculate_BlendedTaxApportionment
Kombinierte Steueraufteilung für die kombinierte Region berechnen
Legen Sie die kombinierte Steueraufteilung auf 100 % fest, wenn keine regionale Steueraufteilung eingegeben wird.
Sub Calculate_BVTCoreTax
Steuerberechnungen für BVT-Konten ausführen
Fluss der BVT-Kernsteuerberechnungen:
Wenn für das BVT-Konto kein verknüpftes Konto angegeben ist, werden Steuerberechnungen nicht durchgeführt.
Das aktuelle BVT-Konto muss für das AllBVTTax-DataCategory- und das BVTTaxCalc-RollForward-Element gültig sein.
Wenn für das verknüpfte Konto die Steuer gezahlt wurde, wird kein Steuersatz angewendet.
Wenn für das verknüpfte Konto kein Überschreibungssteuersatz angegeben ist, wird der Current/NonCurrent-Endsteuersatz (auf Basis des verknüpften Kontos) angewendet. Wird kein Endsatz angegeben, wird er übersprungen.
Der NBR wird auf Basis der Eigenschaft für das verknüpfte Konto berechnet. Wenn das verknüpfte Konto einen NBR aufweist – Ja, dann wird der NBR berechnet. Anderenfalls wird der NBR übersprungen.
Berechnungen werden zum Endsatz umgerechnet.
Sub Calculate_ExchangeRates
Eröffnungskurse aus den Schlusskursen des Vorjahres abrufen
Richten Sie die für die Umrechnung zu verwendenden Wechselkurse ein.
"Sub Calculate_ExchangeRates" wird über "Sub Calculate" ausgeführt.
Sub Calculate_ETR
Effektiven Regelsteuersatz regional und konsolidierten effektiven Steuersatz berechnen
Legen Sie die kombinierte Steueraufteilung auf 100 % fest, wenn keine regionale Steueraufteilung eingegeben wird.
Sub Calculate_OpeningBalances
Anfangssalden für Saldenbilanz-, Buch- und Steuerdaten berechnen
Die Anfangssalden werden aus den Endsalden des Vorjahres abgerufen.
Anfangssalden für die aktuellen Endsalden für Szenario / Jahr / Periode werden aus den unterschiedlichen Elementen für Szenario, Jahr und Periode abgerufen, indem die nachstehenden Bedingungen erfüllt werden.
Wenn kein dynamisches Szenarioelement über das benutzerdefinierte Fenster "Anfangssalden" angegeben wurde, wird das in der benutzerdefinierten Eigenschaft ("SrcSc") angegebene Szenarioelement verwendet. Wenn in der benutzerdefinierten Eigenschaft kein Element angegeben ist, dann wird das aktuelle Szenarioelement verwendet.
Wenn in der benutzerdefinierten Eigenschaft ("SrcYr") kein Element für das Quelljahr angegeben ist, dann wird das Element für das Vorjahr verwendet.
Wenn in der benutzerdefinierten Eigenschaft ("SrcP") kein Element für die Quellperiode angegeben ist, dann wird das Element für die letzte Periode (P12) verwendet.
Nachdem die Anfangssalden für das aktuelle Szenario aufgefüllt wurden, hat dies Auswirkungen auf den Status der entsprechenden abhängigen künftigen Szenarios.
"Sub Calculate_OpenBalances" wird über "Sub Calculate" ausgeführt.
Sub Calculate_NatRegCoreTax
Nationalen Steueraufwand berechnen
Satzänderungen von Anfang berechnen
Satzänderungen von aktueller Periode berechnen
Eigenkapitalrückbuchung ausführen
Neueinstufungen für Eigenkapitalbewegungen ausführen
Regionale Steuern berechnen
NBR-Berechnung (Nettoüberschuss Region)
Anfangssatzänderung von Nettoüberschuss Region berechnen
Regionale Steuern als Abzüge für die nationale Rückstellung berechnen
Sub Calculate_Reclass
RollForward-Neueinstufung für Vermögenswerte und Verbindlichkeiten berechnen
Sub Calculate_TaxAutomation
Steuerautomatisierung berechnen
Sub Calculate_TARF
Buchungskonten müssen in nationalen Jurisdiction-Elementen erfasst werden, aber in Bezug auf die TARF-Regel werden die Daten aus "National" gelesen und in "Regional US_Blended" geschrieben.
TARF-Berechnungen (Tax Account RollForward) ausführen
Sub Calculate_TaxCreditsNational
Steuergutschriften für die nationale Rückstellung berechnen
Sub Calculate_TaxLossesNational
Steuerverluste für die nationale Rückstellung berechnen
Sub Calculate_TempEquity
Vorübergehende Eigenkapitalkonten in TBBS berechnen
Sub Calculate_VAAllocation
Wertberichtigungsumlage berechnen
Sub Calculate_Validations
Die folgenden Validierungen können berechnet werden:
Validieren, ob TaxLossCFS (CYAdj) ein positiver Wert ist
Validieren, ob TaxLossesTotal (Abschluss) gleich TaxLosses/CreditTotal (TaxLossCreditTotal)
Validieren, ob CurrentTaxExpense (CY) minus NDefTaxTotal (CYTotal) gleich SETRTaxEffect
Validieren, ob RCurrentTaxExpense (CY) minus RDefTaxTotal (CYTotal) gleich RETRTotal (RETRTaxEffect)
Validieren, ob CurrentTaxExpense (CY) minus NDefTaxTotal (CYTotal) plus RCurrentTaxExpense (CY) plus RDefTaxTotal (CYTotal) gleich CETRTotal (CETRTaxEffect)
Sub Clear_ValidationCellText
Alle aus dem vorherigen Validierungsvorgang geschriebenen Validierungszellentext-Einträge löschen
Sub Clear_FXApport
Generierte FXCY-Aufteilung (Fremdwährung laufendes Jahr) löschen
Sub Clear_Zeros
Alle Einträge mit Nulldaten löschen
Sub Set_ImpactStatus
Legen Sie für zukünftige Perioden den Status für die Auswirkungen über Jahre fest, wenn Änderungen an der letzten Periode des Vorjahres vorgenommen wurden.
Platzhalter für Vor- und Nachverarbeitung des benutzerdefinierten Codes
Die folgenden Subroutinen können verwendet werden, um eine Logik für die Vor- und Nachverarbeitung während spezifischer Steuerberechnungen zu schreiben.
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()
Platzhalter für Nachverarbeitung des benutzerdefinierten Codes
Die folgende Subroutine kann verwendet werden, um eine Logik für die Nachverarbeitung während Währungsumrechnungen zu schreiben.
Translate_Custom ()
Sie können den benutzerdefinierten Code in den vordefinierten Subroutinen für die Vor- und Nachverarbeitung von Daten vor dem angegebenen Berechnungssegment hinzufügen.