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:
CEComputation -> AdjFANIL_Total (Art 3.2, 7.1, 7.2)
CEComputation -> NetGlobeInc_Total (Art 3.2, 3.3)
CEComputation -> AdjCoveredTax_Total (Art 4.1.2, 4.3, 4.4)
Jurisdictional totals are obtained by summing all CEs:
(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)
| 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
OverallComputation -> ETRRate (Art 5.1.1 + Guidance Issue 14)
OverallComputation -> TopUpTaxPercentage (Art 5.2.1)
OverallComputation -> ExcessProfits (Art 5.2.2)
OverallComputation -> TopUpTax (Art 5.2.3)
Additional top-up tax (Art 4.1.5) is calculated when NetGloBE is negative:
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).