aeat.domain.iva_compensation package¶
Public facade for pure IVA-compensation domain primitives.
This package owns the regulatory Modelo 303 carry-forward projection, the
Modelo 390 year-end carry partition, the wallet reconciliation decision logic,
and the wallet balance projection. The domain works with typed immutable records
such as IvaCompensationPeriodState,
IvaCompensationCarryForwardLot,
IvaCompensationCarryForwardReport,
IvaCompensationYearEndCarryPartition, and
IvaWalletBalanceReport; it does not open repositories, emit bucket
events, or resolve the active profile.
Compensation availability is derived by derive_303_compensation_available()
and then projected through
build_iva_compensation_carry_forward_report() /
enforce_iva_compensation_four_year_window(). Reconciliation records such
as IvaCompensationOverride, IvaCompensationAuthoritySource, and
IvaCompensationReconciliationDecision separate AEAT wallet evidence,
filed-history evidence, local recurrence, and taxpayer override before Modelo
303 consumes casilla 110. reconcile_iva_compensation_wallet() and
validate_wallet_matches_snapshot() apply that reconciliation policy
against a live wallet observation conforming to
IvaCompensationWalletObservationProtocol.
Repositories, secure-object custody, live wallet acquisition, and bucket event emission remain application responsibilities.
See also
application.calculations.IvaCompensationHistoryRepositoryEncrypted local period-state history consumed by carry reconstruction.
application.calculations.IvaWalletDecisionRepositoryPersisted wallet-authority decisions selected before Modelo 303 calculation consumes casilla
110.application.calculationsApplication source resolvers for previous-filing carries, IVA wallet decisions, and Modelo 390 annual carry partitioning.
application.liveRead-only AEAT wallet and filed-history capture surface that supplies external evidence without performing live writes.
application.modeloWork-unit calculation and IVA-wallet gate that apply the persisted authority decision to registry snapshots.
adapters.persistence.profile.buckets.BucketEventHistoryRepositoryBucket audit trail for persisted decisions and capture orchestration, outside this pure domain package.
Submodules¶
- aeat.domain.iva_compensation._balance module
- aeat.domain.iva_compensation._carry_forward module
IvaCompensationExpiryReviewStateIvaCompensationPeriodStateIvaCompensationPeriodState.taxpayer_nifIvaCompensationPeriodState.filing_yearIvaCompensationPeriodState.periodIvaCompensationPeriodState.expediente_idIvaCompensationPeriodState.statusIvaCompensationPeriodState.presented_atIvaCompensationPeriodState.prior_pending_amountIvaCompensationPeriodState.applied_amountIvaCompensationPeriodState.pending_for_later_amountIvaCompensationPeriodState.period_result_amountIvaCompensationPeriodState.final_result_amountIvaCompensationPeriodState.generated_amountIvaCompensationPeriodState.available_end_amountIvaCompensationPeriodState.source_observation_keyIvaCompensationPeriodState.source_artefact_sha256
IvaCompensationCarryForwardLotIvaCompensationCarryForwardLot.taxpayer_nifIvaCompensationCarryForwardLot.source_filing_yearIvaCompensationCarryForwardLot.source_periodIvaCompensationCarryForwardLot.generated_amountIvaCompensationCarryForwardLot.applied_amountIvaCompensationCarryForwardLot.remaining_amountIvaCompensationCarryForwardLot.age_yearsIvaCompensationCarryForwardLot.expiry_review_stateIvaCompensationCarryForwardLot.source_observation_key
IvaCompensationCarryForwardReportderive_303_compensation_available()build_iva_compensation_carry_forward_report()IvaCompensationYearEndCarryPartitionderive_iva_compensation_year_end_carry_partition()enforce_iva_compensation_four_year_window()iva_compensation_period_sort_key()
- aeat.domain.iva_compensation._errors module
- aeat.domain.iva_compensation._reconciliation module
IvaCompensationOverrideIvaCompensationAuthoritySourceIvaCompensationAuthoritySource.source_kindIvaCompensationAuthoritySource.amountIvaCompensationAuthoritySource.source_locatorIvaCompensationAuthoritySource.captured_atIvaCompensationAuthoritySource.source_modeloIvaCompensationAuthoritySource.source_filing_yearIvaCompensationAuthoritySource.source_periods
IvaCompensationReconciliationDecisionIvaCompensationReconciliationDecision.taxpayer_nifIvaCompensationReconciliationDecision.target_yearIvaCompensationReconciliationDecision.target_periodIvaCompensationReconciliationDecision.selected_authorityIvaCompensationReconciliationDecision.selected_amountIvaCompensationReconciliationDecision.wallet_amountIvaCompensationReconciliationDecision.local_recurrence_amountIvaCompensationReconciliationDecision.override_amountIvaCompensationReconciliationDecision.divergenceIvaCompensationReconciliationDecision.blockedIvaCompensationReconciliationDecision.stale_walletIvaCompensationReconciliationDecision.reasonIvaCompensationReconciliationDecision.wallet_captured_atIvaCompensationReconciliationDecision.authority_sourcesIvaCompensationReconciliationDecision.decided_at
IvaCompensationWalletObservationProtocolIvaCompensationWalletObservationProtocol.taxpayer_nifIvaCompensationWalletObservationProtocol.target_yearIvaCompensationWalletObservationProtocol.target_periodIvaCompensationWalletObservationProtocol.total_pendingIvaCompensationWalletObservationProtocol.source_urlIvaCompensationWalletObservationProtocol.captured_at
LocalIvaCompensationRecurrenceProtocolLocalIvaCompensationRecurrenceProtocol.amountLocalIvaCompensationRecurrenceProtocol.binding_idLocalIvaCompensationRecurrenceProtocol.source_kindLocalIvaCompensationRecurrenceProtocol.source_modeloLocalIvaCompensationRecurrenceProtocol.source_filing_yearLocalIvaCompensationRecurrenceProtocol.source_periodsLocalIvaCompensationRecurrenceProtocol.resolved_at
reconcile_iva_compensation_wallet()local_recurrence_authority_source()validate_wallet_matches_snapshot()