Manual of GeneraGIR

Manual of GeneraGIR

Manual of GeneraGIR

GeneraGIR Manual, program to comply with GIR (GloBE Information Return) - model 241 in Spain

Calculator

Calculator

ETR Calculation Flow

The calculator processes each declared jurisdiction following the rules defined in Articles 5.1 to 5.5 of the OECD Model Rules (Pillar Two) and the Guidance for First Filings (June 2026).

1. Fiscal year determination

The fiscal year is taken from FilingInfo.Period.Start. Transitional SBIE rates are only defined for 2023-2033. If the year is outside this range, the nearest endpoint is used. (Art 9.2)

2. Safe Harbour (pre-calculation checks)

Three safe harbours are evaluated before computing the ETR. If any applies, the top-up tax is set to zero and the remaining calculation is skipped:

De Minimis (Art 5.5)
If ETRException.Basis = GIR2901 and the 3-year average GloBE revenue is below 10M EUR and net income below 1M EUR, the top-up tax is zero. Averages are auto-calculated from financial data if empty.

Transitional CbCR (Art 8.2)
If CbCR data exists (Revenue, Profit, IncomeTax) and Profit <= 0, or the simplified ETR IncomeTax/Profit exceeds the minimum rate (15% until 2024, 16% in 2025, 17% from 2026), the top-up tax is zero.

UTPR (Art 9.3 + Guidance Issue 12)
If the nominal corporate tax rate is >= 15%, the UTPR rule does not apply.

3. CE data aggregation

For each Constituent Entity (CE) in the jurisdiction, totals are recalculated from sub-tables and accumulated at jurisdictional level:

AdjustedFANIL = FANIL + Sum(MainEntity.Additions - Reductions) + Sum(CrossBorder) + Sum(UPE)

CEComputation -> AdjFANIL_Total (Art 3.2, 7.1, 7.2)

NetGlobeIncome = AdjustedFANIL + Sum(NetGlobeAdj) + IntShippingIncome

CEComputation -> NetGlobeInc_Total (Art 3.2, 3.3)

AdjCoveredTax = IncomeTax + CrossAllocation + Sum(AdjCoveredTaxAdj) + DeferTotal

CEComputation -> AdjCoveredTax_Total (Art 4.1.2, 4.3, 4.4)

Jurisdictional totals are obtained by summing all CEs:

SumNetGlobe = Sum(CE.NetGlobeInc_Total)
SumCovTax = Sum(CE.AdjCoveredTax_Total)

(Art 5.1.1, 5.1.2)

4. Taxpayer elections

Four elections affect the calculation. When active, the calculator respects manual values entered by the user: (Arts 3.2.5, 3.2.6, 4.5, 4.6.1)

  • Art3.2.5 (Realisation): user adjusts NetGlobeIncome manually
  • Art3.2.6 (Asset gain): user adjusts NetGlobeIncome manually
  • Art4.5 (GloBE loss): user adjusts AdjCovTax manually
  • Art4.6.1 (Post-filing): adds post-filing adjustments to CoveredTaxes

5. SBIE (Substance-Based Income Exclusion)

The substance-based income exclusion reduces the taxable base. It is calculated from payroll costs and tangible assets entered by the user, multiplied by the transitional rates in Art 9.2: (Art 5.3.2 + 9.2)

SBIE = PayrollCost x PayrollRate[year] + TangibleAssets x AssetRate[year]
Year 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033+
Payroll 10.0% 9.8% 9.6% 9.4% 9.2% 9.0% 8.2% 7.4% 6.6% 5.8% 5.0%
Assets 8.0% 7.8% 7.6% 7.4% 7.2% 7.0% 6.6% 6.2% 5.8% 5.4% 5.0%

If the user has activated Art5.3.1 (SBIE opt-out), SBIE is set to zero.

6. ETR and TopUpTax calculation

ETRRate = SumCovTax / SumNetGlobe (clamp [0,1])

OverallComputation -> ETRRate (Art 5.1.1 + Guidance Issue 14)

TopUpPct = Max(0, 0.15 - ETRRate)

OverallComputation -> TopUpTaxPercentage (Art 5.2.1)

ExcessProfits = Max(0, SumNetGlobe - SBIE)

OverallComputation -> ExcessProfits (Art 5.2.2)

TopUp = Round(TopUpPct x ExcessProfits) + AdditionalTopUpTax - QDMTT

OverallComputation -> TopUpTax (Art 5.2.3)

Additional top-up tax (Art 4.1.5) is calculated when NetGloBE is negative:

AdditionalTopUpTax = Max(0, Round(NetGloBE x 15%) - SumCovTax)

7. Writing results

Calculation results are written to OverallComputation: FANIL, AdjustedFANIL, NetGlobeInc, IncomeTaxExpense, AdjCovTax, ETRRate, TopUpTaxPercentage, ExcessProfits, TopUpTax and SubstanceExcl_Total. Values are written in Edit mode if the table already exists, or Append mode if this is the first calculation.

Coherence validation

The ValidarCoherenciaETR function runs the same calculation in read-only mode and compares results against stored values. If the difference exceeds 1%, a warning is recorded in tValidationError. It is available from the Utilities > Validate ETR coherence menu.

Validations

Validations

Catalog of validation rules ordered by code.

 

60004 - Do not mix OECD1/OECD11 with OECD2/OECD3/OECD12/OECD13

Message Do not mix OECD1/OECD11 with OECD2/OECD3/OECD12/OECD13
XSD path Todas las secciones -> DocTypeIndic
Category CO - Semantic rule
Severity ER - Error

What to check: You cannot mix new declarations (OECD1) with corrections (OECD2/OECD3) in the same submission.

 

60008 - CorrDocRefId cannot reference itself

Message CorrDocRefId cannot reference itself
XSD path CorrDocRefId
Category CO - Semantic rule
Severity ER - Error

What to check: The CorrDocRefId does not match any existing DocRefId in the declaration.

 

60010 - FilingInfo OECD3/OECD13 requires all sections with same DocTypeIndic

Message FilingInfo OECD3/OECD13 requires all sections with same DocTypeIndic
XSD path FilingInfo + secciones -> DocTypeIndic
Category CO - Semantic rule
Severity ER - Error

What to check: If FilingInfo is deleted (OECD3), all other sections must be deleted too.

 

60011 - DocRefId only allows letters and numbers (no accents, ñ, spaces)

Message DocRefId only allows letters and numbers (no accents, ñ, spaces)
XSD path DocSpec -> DocRefId
Category FO - Format
Severity ER - Error

What to check: DocRefId format: [CountryCode][Year][UniqueID]. Alphanumeric only, min 7 chars, starting with 2 letters + 4 digits.

 

60015 - OECD2/OECD3 require CorrDocRefId

Message OECD2/OECD3 require CorrDocRefId
XSD path DocTypeIndic + CorrDocRefId
Category CO - Semantic rule
Severity ER - Error

What to check: OECD2/OECD3 require CorrDocRefId to identify the record being corrected or deleted.

 

60016 - GeneralSection cannot be OECD1/OECD11 with FilingInfo OECD0/OECD10

Message GeneralSection cannot be OECD1/OECD11 with FilingInfo OECD0/OECD10
XSD path FilingInfo + GeneralSection -> DocTypeIndic
Category CO - Semantic rule
Severity ER - Error

What to check: If FilingInfo DocTypeIndic is OECD0, GeneralSection DocTypeIndic cannot be OECD1.

 

60017 - FilingInfo OECD1/OECD11 requires GeneralSection

Message FilingInfo OECD1/OECD11 requires GeneralSection
XSD path FilingInfo + GeneralSection -> DocTypeIndic
Category CO - Semantic rule
Severity ER - Error

What to check: If FilingInfo DocTypeIndic is OECD1, GeneralSection must be provided.

 

60020 - Period.Start must not be later than Period.End

Message Period.Start must not be later than Period.End
XSD path FilingInfo -> Period
Category FO - Format
Severity ER - Error

What to check: Period.Start must not be later than Period.End.

 

60021 - Period.End year must not be later than ReportingPeriod

Message Period.End year must not be later than ReportingPeriod
XSD path Period + ReportingPeriod
Category FO - Format
Severity ER - Error

What to check: Period.End year must not be later than the ReportingPeriod year.

 

60022 - FilingCE.TIN must match a UPE TIN

Message FilingCE.TIN must match a UPE TIN
XSD path FilingCE.TIN + UPE.TIN
Category ES - Structure
Severity ER - Error

What to check: If FilingCE role is GIR401 (UPE filing), its TIN must match one of the UPE TINs.

 

60023 - FilingCE.ResCountryCode must match TransmittingCountry

Message FilingCE.ResCountryCode must match TransmittingCountry
XSD path ResCountryCode + TransmittingCountry
Category ES - Structure
Severity ER - Error

What to check: FilingCE ResCountryCode must match TransmittingCountry.

 

60024 - SafeHarbour/ETRRange/SBIE/QDMTTut/GLoBETut require JurWithTaxingRights

Message SafeHarbour/ETRRange/SBIE/QDMTTut/GLoBETut require JurWithTaxingRights
XSD path Summary -> JurWithTR / SafeHarbour / ETRRange / SBIE / QDMTTut / GLoBETut
Category CO - Semantic rule
Severity ER - Error

What to check: If Summary has SafeHarbour, ETRRange, SBIE, QDMTTut or GLoBETut, JurWithTaxingRights is required.

 

60025 - ETRRate must be AdjustedCoveredTax/Total / NetGlobeIncome/Total

Message ETRRate must be AdjustedCoveredTax/Total / NetGlobeIncome/Total
XSD path OverallComputation -> ETRRate
Category CO - Semantic rule
Severity WA - Warning

What to check: ETRRate must equal AdjustedCoveredTax/Total divided by NetGlobeIncome/Total. Warning only (does not block).

 

60026 - TopUpTax= (TopUpTaxPct×ExcessProfits)+AddTuT-QDMTT/Amount

Message TopUpTax= (TopUpTaxPct×ExcessProfits)+AddTuT-QDMTT/Amount
XSD path OverallComputation -> TopUpTax
Category CO - Semantic rule
Severity WA - Warning

What to check: TopUpTax must equal (Percentage x ExcessProfits) + AdditionalTopUpTax - QDMTT. Warning only.

 

60027 - IIRTopUpTax must be TopUpTaxShare - IIROffSet

Message IIRTopUpTax must be TopUpTaxShare - IIROffSet
XSD path IIR -> ParentEntity -> TopUpTax
Category CO - Semantic rule
Severity ER - Error

What to check: IIRTopUpTax must be TopUpTaxShare - IIROffSet.

 

60028 - AdjustedFANIL/Total must be FANIL + Sum(Additions) - Sum(Reductions)

Message AdjustedFANIL/Total must be FANIL + Sum(Additions) - Sum(Reductions)
XSD path CEComputation -> AdjustedFANIL
Category CO - Semantic rule
Severity ER - Error

What to check: Verify that AdjustedFANIL, NetGlobeInc and AdjCoveredTax totals are the correct sum of their components.

 

70001 - TypeOfTIN=GIR3004 requires TIN=NOTIN

Message TypeOfTIN=GIR3004 requires TIN=NOTIN
XSD path Cualquier TIN -> TypeOfTIN
Category CO - Semantic rule
Severity ER - Error

What to check: If TypeOfTIN is GIR3004, TIN must be NOTIN, Unknown must be TRUE, IssuedBy must be empty.

 

70002 - TIN=NOTIN requires TypeOfTIN=GIR3004

Message TIN=NOTIN requires TypeOfTIN=GIR3004
XSD path Cualquier TIN -> valor
Category CO - Semantic rule
Severity ER - Error

What to check: If TIN is NOTIN, TypeOfTIN must be GIR3004, Unknown must be TRUE, IssuedBy must be empty.

 

70003 - Unknown=True requires TIN=NOTIN

Message Unknown=True requires TIN=NOTIN
XSD path Cualquier TIN -> unknown
Category CO - Semantic rule
Severity ER - Error

What to check: If Unknown is TRUE, TIN must be NOTIN, TypeOfTIN must be GIR3004, IssuedBy must be empty.

 

70005 - TypeOfTIN is required

Message TypeOfTIN is required
XSD path Cualquier TIN -> atributos
Category OB - Required
Severity ER - Error

What to check: Attributes issuedBy and TypeOfTIN must always be present, except for GIR3003/GIR3004.

 

70006 - TypeOfTIN=GIR3004 not allowed in QIIR Exception TIN

Message TypeOfTIN=GIR3004 not allowed in QIIR Exception TIN
XSD path UPE/CE -> ID -> TIN
Category CO - Semantic rule
Severity ER - Error

What to check: UPE, CE, QIIR Exception and AggregatedReporting TINs cannot use GIR3004 or Unknown. A real TIN is required.

 

70010 - UPE ResCountryCode must be unique

XSD path UPE -> ResCountryCode
Status Inherent to the relational model. No validation needed.

Inherent: The OECD rule requires that no second ResCountryCode element exists within the same UPE ID. In our flat relational model (one scalar field per row), this is satisfied by construction: it is physically impossible for a single tUPE row to have two ResCountryCode values. No validation surface exists.

 

70011 - CE ResCountryCode must be unique

XSD path CE -> ResCountryCode
Status Inherent to the relational model. No validation needed.

Inherent: Same rule as 70010 but applied to CE. The XSD maxOccurs=1 cardinality is reflected in a single scalar field, impossible to duplicate at the row level.

 

70012 - UPEs in same jurisdiction must have same Rules (except GIR204)

Message UPEs in same jurisdiction must have same Rules (except GIR204)
XSD path UPE/CE -> Rules
Category CO - Semantic rule
Severity ER - Error

What to check: All entities in the same jurisdiction must have the same Rules (except GIR204).

 

70013 - GIR313 and GIR314 cannot coexist

Message GIR313 and GIR314 cannot coexist
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR313 (JV) and GIR314 (JV Subsidiary) cannot coexist in the same CE.

 

70014 - GIR307 and GIR308 cannot coexist

Message GIR307 and GIR308 cannot coexist
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR307 (MOP) and GIR308 (MOS) cannot coexist in the same CE.

 

70015 - GIR308 requires another CE with GIR307

Message GIR308 requires another CE with GIR307
XSD path CE -> GlobeStatus
Category ES - Structure
Severity ER - Error

What to check: If a CE has GIR308, there must be another CE with GIR307.

 

70016 - GIR307 also requires GIR309

Message GIR307 also requires GIR309
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR307 also requires GIR309 in the same CE.

 

70017 - GIR308 also requires GIR309

Message GIR308 also requires GIR309
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR308 also requires GIR309 in the same CE.

 

70018 - GIR305 and GIR306 cannot coexist

Message GIR305 and GIR306 cannot coexist
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR305 (PE) and GIR306 (Owner CE) cannot coexist in the same CE.

 

70019 - GIR305 requires another CE with GIR306

Message GIR305 requires another CE with GIR306
XSD path CE -> GlobeStatus
Category ES - Structure
Severity ER - Error

What to check: If there is a CE with GIR305, there must be another CE with GIR306.

 

70020 - GIR316/GIR318 must not have another GlobeStatus

Message GIR316/GIR318 must not have another GlobeStatus
XSD path CE -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: GIR316/GIR318 must not have another GlobeStatus value.

 

70021 - GIR316/GIR318 require OwnershipChange

Message GIR316/GIR318 require OwnershipChange
XSD path CE -> GlobeStatus + OwnershipChange
Category ES - Structure
Severity ER - Error

What to check: CE with GIR316/GIR318 requires OwnershipChange to be completed.

 

70022 - ChangeDate must not be earlier than Period.Start

Message ChangeDate must not be earlier than Period.Start
XSD path OwnershipChange -> ChangeDate
Category FO - Format
Severity ER - Error

What to check: ChangeDate must not be earlier than Period.Start.

 

70023 - ChangeDate must not be later than Period.End

Message ChangeDate must not be later than Period.End
XSD path OwnershipChange -> ChangeDate
Category FO - Format
Severity ER - Error

What to check: ChangeDate must not be later than Period.End.

 

70024 - GIR719 does not allow PreOwnership

Message GIR719 does not allow PreOwnership
XSD path OwnershipChange -> PreGlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: If PreGlobeStatus is GIR719, PreOwnership must not be completed.

 

70026 - PE requires OwnershipPercentage=100%

Message PE requires OwnershipPercentage=100%
XSD path CE -> Ownership
Category CO - Semantic rule
Severity ER - Error

What to check: PE (GIR305) requires OwnershipPercentage=100%.

 

70027 - GIR318 requires OwnershipPercentage=0%

Message GIR318 requires OwnershipPercentage=0%
XSD path CE -> Ownership
Category CO - Semantic rule
Severity ER - Error

What to check: GIR318 requires OwnershipPercentage=0%, TIN=NOTIN, OwnershipType=GIR806, Unknown=TRUE, IssuedBy empty.

 

70029 - Ownership GIR801 TIN must match TIN de UPE

Message Ownership GIR801 TIN must match TIN de UPE
XSD path Ownership.TIN + UPE.TIN
Category ES - Structure
Severity ER - Error

What to check: OwnershipType GIR801 (UPE owner): TIN must match a UPE TIN.

 

70030 - Ownership GIR802/803/804 TIN must match TIN de CE

Message Ownership GIR802/803/804 TIN must match TIN de CE
XSD path Ownership.TIN + CE.TIN
Category ES - Structure
Severity ER - Error

What to check: OwnershipType GIR802/803/804: TIN must match a CE TIN.

 

70031 - Ownership GIR305 TIN must match TIN de entidad GIR306

Message Ownership GIR305 TIN must match TIN de entidad GIR306
XSD path Ownership.TIN + CE(GIR306).TIN
Category ES - Structure
Severity ER - Error

What to check: PE (GIR305): Ownership TIN must match the TIN of the related GIR306 entity.

 

70032 - QIIR requires Rules with GIR201 or GIR202

Message QIIR requires Rules with GIR201 or GIR202
XSD path CE -> QIIR + Rules
Category ES - Structure
Severity ER - Error

What to check: If QIIR data is present (POPE_IPE filled), Rules must contain GIR201 or GIR202.

 

70033 - QIIR Exception TIN does not match any CE TIN

Message QIIR Exception TIN does not match any CE TIN
XSD path QIIR.Exception.TIN + CE.TIN
Category CO - Semantic rule
Severity ER - Error

What to check: QIIR Exception TIN must match a CE TIN in the same CorporateStructure.

 

70034 - POPE_IPE=GIR902 requires Art2.1.3=True

Message POPE_IPE=GIR902 requires Art2.1.3=True
XSD path CE -> QIIR -> ExceptionRule
Category CO - Semantic rule
Severity ER - Error

What to check: Art2.1.3 and Art2.1.5 are mutually exclusive (XSD choice). Only one can be true. Use Art2.1.3 with POPE_IPE=GIR902.

 

70035 - POPE_IPE=GIR901 requires Art2.1.5=True

Message POPE_IPE=GIR901 requires Art2.1.5=True
XSD path CE -> QIIR -> ExceptionRule
Category CO - Semantic rule
Severity ER - Error

What to check: Art2.1.3 and Art2.1.5 are mutually exclusive (XSD choice). Use Art2.1.5 with POPE_IPE=GIR901.

 

70037 - SummarySubgroup TIN not found in JurWithTRSubgroup

Message SummarySubgroup TIN not found in JurWithTRSubgroup
XSD path Summary.Subgroup.TIN + Jurisdiction.Subgroup.TIN
Category CO - Semantic rule
Severity ER - Error

What to check: Subgroup TINs in Summary must match Subgroup TINs in JurisdictionSection.

 

70039 - SafeHarbour GIR1206 not valid if Period.End > 31/12/2026

Message SafeHarbour GIR1206 not valid if Period.End > 31/12/2026
XSD path Summary -> SafeHarbour + Period.End
Category FO - Format
Severity ER - Error

What to check: SafeHarbour GIR1206 not valid if Period.End is after 31/12/2026.

 

70040 - SafeHarbour GIR1206 only valid in UPE jurisdiction

Message SafeHarbour GIR1206 only valid in UPE jurisdiction
XSD path Summary -> SafeHarbour + UPE.ResCountryCode
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1206 is only valid in the UPE jurisdiction.

 

70042 - JurWithTR present requires ETRRange, SBIE, QDMTTut and GLoBETut

Message JurWithTR present requires ETRRange, SBIE, QDMTTut and GLoBETut
XSD path Summary -> JurWithTR / ETRRange / SBIE / QDMTTut / GLoBETut
Category CO - Semantic rule
Severity ER - Error

What to check: If JurWithTR is present and SafeHarbour is empty or GIR1206, then ETRRange, SBIE, QDMTTut and GLoBETut are required.

 

70043 - SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut

Message SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut
XSD path Summary -> SafeHarbour + ETRRange / SBIE / QDMTTut
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut.

 

70044 - ETR requires ETRException or CEComputation

Message ETR requires ETRException or CEComputation
XSD path JurisdictionSection -> ETR -> ETRStatus
Category OB - Required
Severity ER - Error

What to check: ETRStatus must contain ETRException or CEComputation. If missing, the declaration is incomplete for this jurisdiction.

 

70046 - TransitionalCbCRSafeHarbour requires TypeofSubGroup GIR1607 or GIR1608

Message TransitionalCbCRSafeHarbour requires TypeofSubGroup GIR1607 or GIR1608
XSD path ETR -> ETRSubGroup -> TypeofSubGroup
Category CO - Semantic rule
Severity ER - Error

What to check: TransitionalCbCRSafeHarbour requires Subgroup Type GIR1607 or GIR1608.

 

70047 - SafeHarbour GIR1203 requires TransitionalRevenue

Message SafeHarbour GIR1203 requires TransitionalRevenue
XSD path ETR.ETRException + Summary.SafeHarbour
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1203 requires TransitionalRevenue.

 

70048 - SafeHarbour GIR1204 requires TransitionalIncomeTax

Message SafeHarbour GIR1204 requires TransitionalIncomeTax
XSD path ETR.ETRException + Summary.SafeHarbour
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1204 requires TransitionalIncomeTax.

 

70049 - SafeHarbour GIR1206 requires UTPRSafeCITRate

Message SafeHarbour GIR1206 requires UTPRSafeCITRate
XSD path ETR.ETRException + Summary.SafeHarbour
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1206 requires UTPRSafeCITRate.

 

70051 - SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE

Message SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE
XSD path Summary.SafeHarbour + NonMaterialCE
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE.

 

70052 - SafeHarbour GIR1209 requires SubstanceExclusion

Message SafeHarbour GIR1209 requires SubstanceExclusion
XSD path Summary.SafeHarbour + SubstanceExclusion
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1209 requires SubstanceExclusion.

 

70053 - SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion

Message SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion
XSD path ETR + Overall.SubstanceExclusion
Category CO - Semantic rule
Severity ER - Error

What to check: SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion.

 

70055 - QualOwnerIntentBalance is required in Art3.2.1.c

Message QualOwnerIntentBalance is required in Art3.2.1.c
XSD path ETR -> Election -> Art3.2.1.c
Category CO - Semantic rule
Severity ER - Error

What to check: Art3.2.1.c: OutstandingBalance must equal QualOwnerIntentBalance + Additions - Reductions.

 

70057 - AggregatedReporting TIN must match CE TIN

Message AggregatedReporting TIN must match CE TIN
XSD path CEComp -> AggReporting
Category CO - Semantic rule
Severity ER - Error

What to check: AggregatedReporting: TIN must match the CE TIN.

 

70058 - Art7.6 InvestmentEntityTIN cannot match CE TIN

Message Art7.6 InvestmentEntityTIN cannot match CE TIN
XSD path CEComp -> Art7.6
Category CO - Semantic rule
Severity ER - Error

What to check: Art7.6: InvestmentEntityTIN cannot match the CE TIN.

 

70060 - GIR2025 requires InternationalShippingIncome

Message GIR2025 requires InternationalShippingIncome
XSD path Overall -> NetGlobeIncome + IntShipping
Category CO - Semantic rule
Severity ER - Error

What to check: AdjustmentItem GIR2025 requires InternationalShippingIncome in Overall.

 

70061 - Art4.6.1 election requires GIR2711 with negative Amount

Message Art4.6.1 election requires GIR2711 with negative Amount
XSD path Overall + Election Art4.6.1
Category CO - Semantic rule
Severity ER - Error

What to check: Art4.6.1 election active requires GIR2711 with negative Amount.

 

70062 - GIR2720 requires AdjustedCoveredTax/Total not negative

Message GIR2720 requires AdjustedCoveredTax/Total not negative
XSD path Overall -> AdjCoveredTax -> Total
Category CO - Semantic rule
Severity ER - Error

What to check: GIR2720 requires AdjustedCoveredTax/Total to be non-negative.

 

70064 - DeferTaxAsset/Total must match sum of AmountAttributed

Message DeferTaxAsset/Total must match sum of AmountAttributed
XSD path Overall -> PostFiling -> DeferTaxAsset
Category CO - Semantic rule
Severity ER - Error

What to check: DeferTaxAsset/Total must match the sum of AmountAttributed.

 

70065 - CoveredTaxRefund/Total must match sum of AmountAttributed

Message CoveredTaxRefund/Total must match sum of AmountAttributed
XSD path Overall -> PostFiling -> CovTaxRefund
Category CO - Semantic rule
Severity ER - Error

What to check: CovTaxRefund/Total must match the sum of AmountAttributed.

 

70066 - Year is required in DeferTaxAsset/AmountAttributed

Message Year is required in DeferTaxAsset/AmountAttributed
XSD path Overall -> PostFiling -> DeferTaxAsset -> Year
Category FO - Format
Severity ER - Error

What to check: DeferTaxAsset/Year year must not be later than Period.Start year.

 

70067 - DeferTaxAsset/Year duplicate in AmountAttributed

Message DeferTaxAsset/Year duplicate in AmountAttributed
XSD path Overall -> PostFiling -> DeferTaxAsset -> Year
Category FO - Format
Severity ER - Error

What to check: No duplicate years allowed in DeferTaxAsset/AmountAttributed.

 

70068 - Year is required in CoveredTaxRefund/AmountAttributed

Message Year is required in CoveredTaxRefund/AmountAttributed
XSD path Overall -> PostFiling -> CovTaxRefund -> Year
Category FO - Format
Severity ER - Error

What to check: CovTaxRefund/Year year must not be later than Period.Start year.

 

70069 - CoveredTaxRefund/Year duplicate in AmountAttributed

Message CoveredTaxRefund/Year duplicate in AmountAttributed
XSD path Overall -> PostFiling -> CovTaxRefund -> Year
Category FO - Format
Severity ER - Error

What to check: No duplicate years allowed in CovTaxRefund/AmountAttributed.

 

70070 - Year is required in Recapture

Message Year is required in Recapture
XSD path Overall -> DeemedDistTax -> Recapture -> Year
Category FO - Format
Severity ER - Error

What to check: DeemedDistTax/Year must not be later than Period.End.

 

70071 - DeemedDistTax/Year cannot be 4 or more years before Period.End

Message DeemedDistTax/Year cannot be 4 or more years before Period.End
XSD path Overall -> DeemedDistTax -> Recapture -> Year
Category FO - Format
Severity ER - Error

What to check: DeemedDistTax/Year cannot be 4+ years before Period.End.

 

70072 - EndAmount must match StartAmount - TotalDDT

Message EndAmount must match StartAmount - TotalDDT
XSD path Overall -> DeemedDistTax -> Recapture
Category CO - Semantic rule
Severity ER - Error

What to check: EndAmount must equal StartAmount - TotalDDT.

 

70073 - EndAmount must not be negative

Message EndAmount must not be negative
XSD path Overall -> DeemedDistTax -> EndAmount
Category CO - Semantic rule
Severity ER - Error

What to check: EndAmount must not be negative.

 

70074 - TotalDDT must match sum of DDTYear-0..3

Message TotalDDT must match sum of DDTYear-0..3
XSD path Overall -> DeemedDistTax -> TotalDDT
Category CO - Semantic rule
Severity ER - Error

What to check: TotalDDT must be DDTYear0 + DDTYear1 + DDTYear2 + DDTYear3.

 

70075 - DDTYear must be 0 cuando RecaptureYear = Period.End

Message DDTYear must be 0 cuando RecaptureYear = Period.End
XSD path Overall -> DeemedDistTax -> Recapture
Category CO - Semantic rule
Severity ER - Error

What to check: If RecaptureYear equals Period.End, all DDTYear values must be 0.

 

70076 - TransBlendCFC/Total must match Sum(AggAllocTax)

Message TransBlendCFC/Total must match Sum(AggAllocTax)
XSD path Overall -> TransBlendCFC
Category CA - Calculation
Severity ER - Error

What to check: TransBlendCFC/Total must match the sum of AggAllocTax.

 

70077 - DeferTaxAdjustAmt/Total must be PreRecast + RecastLower - RecastHigher

Message DeferTaxAdjustAmt/Total must be PreRecast + RecastLower - RecastHigher
XSD path Overall -> DeferTaxAdjustAmt
Category CA - Calculation
Severity ER - Error

What to check: DeferTaxAdjustAmt/Total must be PreRecast + RecastLower - RecastHigher.

 

70078 - BefRecastAdjust must be DefTaxAmt - DiffCarryValue + GLoBEValue

Message BefRecastAdjust must be DefTaxAmt - DiffCarryValue + GLoBEValue
XSD path Overall -> DeferTaxAdjustAmt
Category CA - Calculation
Severity ER - Error

What to check: BefRecastAdjust must be DefTaxAmt - DiffCarryValue + GLoBEValue.

 

70079 - PreRecast must be BefRecastAdjust + TotalAdjust

Message PreRecast must be BefRecastAdjust + TotalAdjust
XSD path Overall -> DeferTaxAdjustAmt
Category CA - Calculation
Severity ER - Error

What to check: PreRecast must be BefRecastAdjust + TotalAdjust.

 

70082 - Only one of AssetStart or AssetRecast may be non-zero

Message Only one of AssetStart or AssetRecast may be non-zero
XSD path Overall -> Transition -> DeferredTaxAssets
Category CO - Semantic rule
Severity ER - Error

What to check: Only one of AssetStart or AssetRecast can be non-zero.

 

70083 - ExcessNeg/Remaining must be PriorYearBalance + GeneratedInRFY - UtilizedInRFY

Message ExcessNeg/Remaining must be PriorYearBalance + GeneratedInRFY - UtilizedInRFY
XSD path Overall -> ExcessNegTaxExpense
Category CA - Calculation
Severity ER - Error

What to check: ExcessNeg/Remaining must be PriorYearBalance + GeneratedInRFY - UtilizedInRFY.

 

70084 - GIR2719 Amount must match ExcessNeg_GeneratedInRFY

Message GIR2719 Amount must match ExcessNeg_GeneratedInRFY
XSD path Overall -> AdjCoveredTax + ExcessNeg
Category CO - Semantic rule
Severity ER - Error

What to check: GIR2719: Amount must match ExcessNeg_GeneratedInRFY.

 

70085 - GIR2720 Amount must match ExcessNeg_UtilizedInRFY

Message GIR2720 Amount must match ExcessNeg_UtilizedInRFY
XSD path Overall -> AdjCoveredTax + ExcessNeg
Category CO - Semantic rule
Severity ER - Error

What to check: GIR2720: Amount must match ExcessNeg_UtilizedInRFY.

 

70086 - ExcessProfits must be Max(0, NetGlobeInc_Total - SubstanceExcl_Total)

Message ExcessProfits must be Max(0, NetGlobeInc_Total - SubstanceExcl_Total)
XSD path Overall -> ExcessProfits
Category CA - Calculation
Severity ER - Error

What to check: ExcessProfits = Max(0, NetGlobeInc_Total - SubstanceExcl_Total).

 

70087 - SubstanceExcl/Total must be PayrollCost×MarkUp + TangibleAsset×Markup

Message SubstanceExcl/Total must be PayrollCost×MarkUp + TangibleAsset×Markup
XSD path Overall -> SubstanceExclusion
Category CA - Calculation
Severity ER - Error

What to check: SubstanceExcl/Total = PayrollCost x MarkUp + TangibleAsset x Markup.

 

70088 - NetGlobeInc_Total negative requires AdditionalTopUpTax Art4.1.5

Message NetGlobeInc_Total negative requires AdditionalTopUpTax Art4.1.5
XSD path Overall + AdditionalTopUpTax -> Art4.1.5
Category ES - Structure
Severity ER - Error

What to check: Negative NetGlobeInc_Total requires AdditionalTopUpTax (Art4.1.5).

 

70089 - Art4.1.5 AdjustedCoveredTax must be negative

Message Art4.1.5 AdjustedCoveredTax must be negative
XSD path AdditionalTopUpTax -> Art4.1.5
Category CO - Semantic rule
Severity ER - Error

What to check: Art4.1.5: AdjustedCoveredTax must be negative.

 

70090 - Art4.1.5/GlobeLoss must match NetGlobeIncome/Total

Message Art4.1.5/GlobeLoss must match NetGlobeIncome/Total
XSD path AdditionalTopUpTax -> GlobeLoss
Category CA - Calculation
Severity ER - Error

What to check: Art4.1.5/GlobeLoss must match NetGlobeIncome/Total.

 

70091 - ExpectedAdjustedCoveredTax is required in Art4.1.5

Message ExpectedAdjustedCoveredTax is required in Art4.1.5
XSD path AdditionalTopUpTax -> Expected
Category CA - Calculation
Severity ER - Error

What to check: ExpectedAdjustedCoveredTax must be GlobeLoss x 15%.

 

70092 - AdditionalTopUpTax is required in Art4.1.5

Message AdditionalTopUpTax is required in Art4.1.5
XSD path AdditionalTopUpTax -> Total
Category CO - Semantic rule
Severity WA - Warning

What to check: AdditionalTopUpTax = Max(0, Expected - AdjustedCoveredTax). Warning only.

 

70093 - Year is required in NONArt4.1.5

Message Year is required in NONArt4.1.5
XSD path NONArt4.1.5 -> Year
Category FO - Format
Severity ER - Error

What to check: NONArt4.1.5/Year must not be later than Period.End.

 

70094 - GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End

Message GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End
XSD path NONArt4.1.5 -> Year
Category FO - Format
Severity ER - Error

What to check: GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End.

 

70095 - GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End

Message GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End
XSD path NONArt4.1.5 -> Year
Category FO - Format
Severity ER - Error

What to check: GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End.

 

70096 - AdditionalTopUpTax is required in NONArt4.1.5

Message AdditionalTopUpTax is required in NONArt4.1.5
XSD path NONArt4.1.5
Category CO - Semantic rule
Severity ER - Error

What to check: AdditionalTopUpTax in NONArt4.1.5 must be Recalculated/TopUpTax - Previous/TopUpTax.

 

70097 - InclusionRatio incorrect

Message InclusionRatio incorrect
XSD path IIR -> ParentEntity -> InclusionRatio
Category CO - Semantic rule
Severity ER - Error

What to check: InclusionRatio = (NetGlobeIncome - OtherOwnershipAllocation) / NetGlobeIncome.

 

70098 - TopUpTaxShare must be TopUpTax x InclusionRatio

Message TopUpTaxShare must be TopUpTax x InclusionRatio
XSD path IIR -> ParentEntity -> TopUpTaxShare
Category CO - Semantic rule
Severity ER - Error

What to check: TopUpTaxShare = TopUpTax x InclusionRatio.

 

70099 - Sum(UTPRTopUpTaxAttributed) must match Sum(TotalUTPRTopUpTax)

Message Sum(UTPRTopUpTaxAttributed) must match Sum(TotalUTPRTopUpTax)
XSD path UTPRAttribution <-> UTPRCalculation
Category CA - Calculation
Severity ER - Error

What to check: Sum of UTPRTopUpTaxAttributed must match the sum of TotalUTPRTopUpTax.

 

70100 - TotalUTPRTopUpTax > 0 requires UTPRAttribution

Message TotalUTPRTopUpTax > 0 requires UTPRAttribution
XSD path Jurisdiction.UTPR + UTPRAttribution
Category OB - Required
Severity ER - Error

What to check: If TotalUTPRTopUpTax > 0 in any jurisdiction, UTPRAttribution is required.

 

70101 - UTPRTopUpTaxCarryForward requires Employees

Message UTPRTopUpTaxCarryForward requires Employees
XSD path UTPRAttribution -> Employees
Category CO - Semantic rule
Severity ER - Error

What to check: UTPRTopUpTaxCarryForward > 0 requires Employees.

 

70102 - UTPRTopUpTaxCarryForward requires TangibleAssetValue

Message UTPRTopUpTaxCarryForward requires TangibleAssetValue
XSD path UTPRAttribution -> TangibleAssetValue
Category CO - Semantic rule
Severity ER - Error

What to check: UTPRTopUpTaxCarryForward > 0 requires TangibleAssetValue.

 

70103 - UTPRPercentage must be 0% cuando UTPRTopUpTaxCarryForward > 0

Message UTPRPercentage must be 0% cuando UTPRTopUpTaxCarryForward > 0
XSD path UTPRAttribution -> UTPRPercentage
Category CO - Semantic rule
Severity ER - Error

What to check: If CarryForward > 0, UTPRPercentage must be 0%.

 

70104 - UTPRTopUpTaxCarriedForward must not be negative

Message UTPRTopUpTaxCarriedForward must not be negative
XSD path UTPRAttribution -> CarriedForward
Category CO - Semantic rule
Severity ER - Error

What to check: UTPRTopUpTaxCarriedForward must not be negative.

 

70105 - UTPRTopUpTaxCarriedForward must be CarryForward + Attributed - AddCashTaxExpense

Message UTPRTopUpTaxCarriedForward must be CarryForward + Attributed - AddCashTaxExpense
XSD path UTPRAttribution -> CarriedForward
Category CA - Calculation
Severity ER - Error

What to check: UTPRTopUpTaxCarriedForward = CarryForward + Attributed - AddCashTaxExpense.

 

70106 - CrossBorderAdjustments/OtherTIN cannot match CE TIN

Message CrossBorderAdjustments/OtherTIN cannot match CE TIN
XSD path CEComp -> CrossBorder -> OtherTIN
Category CO - Semantic rule
Severity ER - Error

What to check: CrossBorderAdjustments: OtherTIN cannot match the CE TIN.

 

70107 - UPEAdjustments/Reductions/Exception does not allow CrossBorderAdjustments

Message UPEAdjustments/Reductions/Exception does not allow CrossBorderAdjustments
XSD path CEComp -> UPEAdjustments
Category CO - Semantic rule
Severity ER - Error

What to check: UPEAdjustments: if ReductionsException is TRUE, CrossBorderAdjustments must not exist.

 

70109 - Basis GIR1907 requires IndResCountryCode in UPE Owner

Message Basis GIR1907 requires IndResCountryCode in UPE Owner
XSD path CEComp -> UPEAdjustments -> Owner
Category CO - Semantic rule
Severity ER - Error

What to check: Basis GIR1907 requires IndResCountryCode in UPE Owner.

 

70112 - Basis GIR1904 does not allow ExTypeOfEntity=GIR2805

Message Basis GIR1904 does not allow ExTypeOfEntity=GIR2805
XSD path CEComp -> UPEAdjustments -> Owner
Category CO - Semantic rule
Severity ER - Error

What to check: Basis GIR1904: ExTypeOfEntity cannot be GIR2805.

 

70113 - Basis GIR1909 does not allow ExTypeOfEntity=GIR2804

Message Basis GIR1909 does not allow ExTypeOfEntity=GIR2804
XSD path CEComp -> UPEAdjustments -> Owner
Category CO - Semantic rule
Severity ER - Error

What to check: Basis GIR1909: ExTypeOfEntity cannot be GIR2804.

 

70114 - Amounts in CE NetGlobeIncome must have opposite signs

Message Amounts in CE NetGlobeIncome must have opposite signs
XSD path CEComp -> NetGlobeIncome -> Amount
Category CO - Semantic rule
Severity ER - Error

What to check: If two Amounts exist in CE NetGlobeIncome, they must have opposite signs.

 

70116 - AdjustmentItem GIR2025 requires IntShippingIncome

Message AdjustmentItem GIR2025 requires IntShippingIncome
XSD path CEComp -> NetGlobeIncome + IntShippingIncome
Category CO - Semantic rule
Severity ER - Error

What to check: AdjustmentItem GIR2025 requires IntShippingIncome.

 

70117 - AdjustmentItem GIR2024 requires Art7.6 election

Message AdjustmentItem GIR2024 requires Art7.6 election
XSD path CEComp + Art7.6
Category CO - Semantic rule
Severity ER - Error

What to check: AdjustmentItem GIR2024 requires Art7.6 election.

 

70120 - CE DeferTaxAdjustAmt/Total must be DeferTaxExpense + ΣAmount + ΣRecastHigher + Σ

Message CE DeferTaxAdjustAmt/Total must be DeferTaxExpense + ΣAmount + ΣRecastHigher + ΣRecastLower
XSD path CEComp -> DeferTaxAdjustAmt -> Total
Category CO - Semantic rule
Severity ER - Error

What to check: DeferTaxAdjustAmt/Total must be DeferTaxExpense + Sum(Amount) + Recast.

 

70122 - Amounts in CE DeferTaxAdjustAmt must have opposite signs

Message Amounts in CE DeferTaxAdjustAmt must have opposite signs
XSD path CEComp -> DeferTaxAdjustAmt -> Amount
Category CO - Semantic rule
Severity ER - Error

What to check: If two Amounts exist in CE DeferTaxAdjustAmt, they must have opposite signs.

 

70123 - CE CrossAllocation/Additions must not be negative

Message CE CrossAllocation/Additions must not be negative
XSD path CEComp -> CrossAllocation -> Additions
Category CO - Semantic rule
Severity ER - Error

What to check: CrossAllocation: Additions must not be negative.

 

70124 - CE CrossAllocation/Reductions must not be positive

Message CE CrossAllocation/Reductions must not be positive
XSD path CEComp -> CrossAllocation -> Reductions
Category CO - Semantic rule
Severity ER - Error

What to check: CrossAllocation: Reductions must not be positive.

 

GVAL001 - CodigoPresentacion must be ES{AAAA}241{NIF9}{id} (uppercase letters and numbers

Message CodigoPresentacion must be ES{AAAA}241{NIF9}{id} (uppercase letters and numbers only)
XSD path Declaration -> CodigoPresentacion
Category FO - Format
Severity ER - Error

What to check: CodigoPresentacion must be ES{AAAA}241{NIF}{id}. Uppercase letters and numbers only.

 

GVAL003 - FYTriggerEvent is required in Art6.3.4

Message FYTriggerEvent is required in Art6.3.4
XSD path CEComp -> Art6.3.4 -> Inclusion
Category CO - Semantic rule
Severity ER - Error

What to check: Art6.3.4: FYTriggerEvent is required. Only one of Inclusion_c_i or Inclusion_c_ii can be true.

 

GVAL004 - ElectionYear is required in CurrencyElection

Message ElectionYear is required in CurrencyElection
XSD path Overall -> QDMTT -> CurrencyElection
Category OB - Required
Severity ER - Error

What to check: CurrencyElection: ElectionYear and Currency are required.

 

GXSD001 - UPE requires at least 1 TIN

Message UPE requires at least 1 TIN
XSD path UPE/CE -> ID -> TIN
Category CO - Semantic rule
Severity ER - Error

What to check: Every UPE and CE must have at least one TIN.

 

GXSD002 - OtherUPE requires at least 1 Rules

Message OtherUPE requires at least 1 Rules
XSD path UPE/CE -> ID -> Rules
Category CO - Semantic rule
Severity ER - Error

What to check: Every UPE (except ExcludedUPE) and CE must have at least one Rules entry.

 

GXSD003 - UPE requires at least 1 GlobeStatus

Message UPE requires at least 1 GlobeStatus
XSD path UPE/CE -> ID -> GlobeStatus
Category CO - Semantic rule
Severity ER - Error

What to check: Every UPE and CE must have at least one GlobeStatus.

 

GXSD004 - Summary requires at least 1 RecJurCode

Message Summary requires at least 1 RecJurCode
XSD path Summary -> RecJurCode
Category CO - Semantic rule
Severity ER - Error

What to check: Each Summary must have at least one RecJurCode.

 

GXSD005 - Summary requires JurisdictionName

Message Summary requires JurisdictionName
XSD path Summary -> JurisdictionName
Category CO - Semantic rule
Severity ER - Error

What to check: Each Summary must have a JurisdictionName.

 

GXSD006 - InitialIntActivity requires at least one OtherJurisdiction

Message InitialIntActivity requires at least one OtherJurisdiction
XSD path JurisdictionSection -> InitialIntActivity -> OtherJurisdiction
Category CO - Semantic rule
Severity ER - Error

What to check: If InitialIntActivity has data, at least one OtherJurisdiction is required.

 

GXSD008 - No more than 3 FinancialData records allowed (XSD maxOccurs=3)

Message No more than 3 FinancialData records allowed (XSD maxOccurs=3)
XSD path ETRException -> DeminimisFinancialData
Category CO - Semantic rule
Severity ER - Error

What to check: Maximum 3 FinancialData records per ETRException (XSD maxOccurs=3).