Calculadora

Calculadora

Calculadora

Flujo de calculo ETR

La calculadora recorre cada jurisdiccion declarada y aplica el siguiente proceso, definido en los articulos 5.1 a 5.5 de las OECD Model Rules (Pilar Dos) y en la Guidance para primeras declaraciones (Junio 2026).

1. Determinacion del ano fiscal

El ano fiscal se obtiene de FilingInfo.Period.Start. Las tasas de transicion SBIE solo estan definidas para 2023-2033. Si el ano queda fuera de ese rango, se usa el valor del extremo mas cercano. (Art 9.2)

2. Safe Harbour (previos al calculo)

Antes de calcular el ETR, se evaluan tres safe harbours. Si alguno se cumple, el impuesto complementario se considera cero y se omite el resto del calculo:

De Minimis (Art 5.5)
Si ETRException.Basis = GIR2901 y el promedio de 3 anos de ingresos GloBE es inferior a 10M€ y el de ingresos netos inferior a 1M€, el impuesto es cero. Los promedios se calculan automaticamente desde los datos financieros si estan vacios.

Transitional CbCR (Art 8.2)
Si hay datos CbCR (Revenue, Profit, IncomeTax) y Profit <= 0, o el ETR simplificado IncomeTax/Profit supera la tasa minima (15% hasta 2024, 16% en 2025, 17% desde 2026), el impuesto es cero.

UTPR (Art 9.3 + Guidance Issue 12)
Si el tipo nominal del impuesto sobre sociedades es >= 15%, la regla UTPR no se aplica.

3. Agregacion de datos por CE

Por cada Entidad Constitutiva (CE) en la jurisdiccion, se recalculan los totales desde sus sub-tablas y se acumulan a nivel jurisdiccional:

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)

Los totales jurisdiccionales se obtienen sumando los valores de todas las CE:

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

(Art 5.1.1, 5.1.2)

4. Elecciones del contribuyente

Cuatro elecciones afectan al calculo. Si estan activas, la calculadora respeta los valores manuales introducidos por el usuario: (Arts 3.2.5, 3.2.6, 4.5, 4.6.1)

  • Art3.2.5 (Realisation): el usuario ajusta NetGlobeIncome manualmente
  • Art3.2.6 (Asset gain): el usuario ajusta NetGlobeIncome manualmente
  • Art4.5 (GloBE loss): el usuario ajusta AdjCovTax manualmente
  • Art4.6.1 (Post-filing): suma ajustes post-declaracion a CoveredTaxes

5. SBIE (Substance-Based Income Exclusion)

La exclusion por ingresos sustanciales reduce la base imponible. Se calcula con los costes de nomina y activos tangibles introducidos por el usuario, multiplicados por las tasas de transicion del Art 9.2: (Art 5.3.2 + 9.2)

SBIE = PayrollCost x TasaNomina[anno] + TangibleAssets x TasaActivos[anno]
Ano 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033+
Nomina 10.0% 9.8% 9.6% 9.4% 9.2% 9.0% 8.2% 7.4% 6.6% 5.8% 5.0%
Activos 8.0% 7.8% 7.6% 7.4% 7.2% 7.0% 6.6% 6.2% 5.8% 5.4% 5.0%

Si el usuario ha activado la eleccion Art5.3.1 (SBIE opt-out), SBIE se considera cero.

6. Calculo del ETR y TopUpTax

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)

El impuesto complementario adicional (Art 4.1.5) se calcula cuando NetGloBE es negativo:

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

7. Escritura de resultados

Los resultados del calculo se escriben en OverallComputation de la jurisdiccion: FANIL, AdjustedFANIL, NetGlobeInc, IncomeTaxExpense, AdjCovTax, ETRRate, TopUpTaxPercentage, ExcessProfits, TopUpTax y SubstanceExcl_Total. Los valores se escriben en modo Edit si la tabla ya existe, o Append si es la primera vez.

Validacion de coherencia

La funcion ValidarCoherenciaETR ejecuta el mismo calculo en modo solo lectura y compara los resultados con los valores almacenados. Si la diferencia supera el 1%, se registra un aviso en tValidationError. El usuario puede acceder a ella desde el menu Utilidades > Validar coherencia ETR.