aeat.domain.renta package

Public facade for the Renta (IRPF / Modelo 100) substrate.

This package re-exports closed IRPF classifiers such as EstimacionDirectaModalidad and RentaIncomeType, the first-slice Modelo 100 ledger-expense observation surface, and the maritime worker exemption selectors used by application calculation previews.

The first-slice expense path evaluates RentaDeductibleExpenseFact values with RentaDeductibilityContext and category-profile evidence into RentaDeductibilityResult values, then materialises binding-ready RentaDeductibleExpenseObservation records through evaluate_renta_deductibility() and build_renta_deductible_expense_observation(). The context carries resolved usage-ratio, statutory-cap, and exclusive-use facts; profile proportionality rules and citations remain in domain.categories, while persisted operator overrides remain in domain.usage_ratios. The RENTA_100_FIRST_SLICE_EXPENSE_CASILLAS table is the single Renta-domain mapping from domain.categories.SpendingCategory to registry casilla ids for the supported first slice; the registry validates those targets through a cross-domain snapshot check registered at package import time.

The maritime surface exposes MaritimeWorkerFacts, Art. 7.p and REBECA eligibility/calculation helpers, the inactive DA 41 guard, and the RETMAR mandatory-filing completeness gate. Exemption calculations route to RENTA_EXENTA_CASILLA and return domain.calculations.registry.CasillaObservation records with legal and source provenance. This domain surface is pure substrate logic: repositories, active-profile reads, CLI transport, and live AEAT access belong outside domain.renta.

See also

domain.categories

Declares the spending-category taxonomy, proportionality rules, and legal citations that drive Renta deductibility decisions.

domain.usage_ratios

Persists operator business-use ratios before application aggregation passes them into RentaDeductibilityContext.

application.aggregation

Loads active ledger and invoice evidence, builds Renta observations, and returns registry-ready source resolutions.

domain.calculations.registry

Owns binding declarations, casilla formulas, and the snapshot check contract that validates this domain’s first-slice routing table.

Submodules