aeat.application.aggregation._retencion_rate_advisory module¶
Statutory-rate advisory for administrador/consejero retención observations.
Modelo 111 aggregates operator-supplied per-perceptor retención rows: each
RetencionObservation carries both the taxable_base
and the withheld retencion_amount. For ordinary empleados
(WORK_INCOME) the withholding is a
personalised progressive computation (LIRPF art. 101.1), so no single rate can be
asserted. For administradores y miembros de consejos de administración
(WORK_INCOME_DIRECTOR) the law
fixes the rate: LIRPF art. 101.2 (Ley 35/2006, BOE-A-2006-20764), developed by
RIRPF art. 80.1.3.º (RD 439/2007), sets a general 35 % that drops to 19 % when the
paying entity’s importe neto de la cifra de negocios is below 100.000 euros.
The engine does not compute the withheld amount (the operator enters it from their
payroll), so the fixed rate could previously go unverified: an administrador row
carrying, say, the ordinary empleado rate would fold into the trabajo block and
file silently. This module surfaces that as a non-blocking
CalculationSourceDiagnostic on the calculate path,
grounded in the statutory WorkIncomeRetencionTreatment
descriptor (no-silent-under-declaration). Because the engine cannot always
know the paying entity’s INCN, a row whose effective rate matches EITHER statutory
figure (35 % or 19 %) is treated as conforming; only a row consistent with neither
raises the advisory, so a legitimate reduced-rate filing never false-fires.
- ADMINISTRADOR_RETENCION_RATE_SOURCE_KIND¶
Diagnostic
source_kindfor an administrador/consejero retención whose withheld amount matches neither statutory art. 101.2 fixed rate.
- administrador_retencion_rate_advisory_observations(observations)[source]¶
Return advisories for administrador rows inconsistent with art. 101.2.
A
CalculationSourceDiagnostic(reasonadministrador_retencion_rate_mismatch) is emitted for eachWORK_INCOME_DIRECTORobservation with a strictly-positivetaxable_basewhose withheldretencion_amountmatches neither the general 35 % nor the reduced 19 % fixed rate of LIRPF art. 101.2. Rows on any other scheme (empleados follow the progressive art. 101.1 procedure, so no single rate applies; actividades, premios, capital, and arrendamiento are not art. 101 trabajo), and administrador rows with a non-positive base, are out of scope and never fire.- Parameters:
observations (
Iterable[RetencionObservation]) – The per-perceptor retención rows feeding the calculation.- Return type:
- Returns:
A tuple of non-blocking rate-mismatch diagnostics, in input order.