gcubed.projections.real_interest_parity
Calendar profiles and combined calibration residuals for real interest parity.
@dataclass(frozen=True)
class
PreparedRealInterestParity:
Resolved parity rows and schedules, retained on the baseline calendar.
PreparedRealInterestParity( regions: tuple[str, ...], jump_indices: tuple[int, ...], interest_indices: tuple[int, ...], reference_interest_index: int, schedules: tuple[gcubed.model_configuration.RealInterestParityDecaySchedule | None, ...], first_projection_year: int, last_projection_year: int, specification: tuple)
schedules: tuple[gcubed.model_configuration.RealInterestParityDecaySchedule | None, ...]
def
factors( self, first_year: int, count: int) -> numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]:
Return exact endpoint-normalized logistic factors or a constant hold.
def
amplitudes( self, jump_constants: numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]], static_constants: numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]) -> numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]:
Combine exchange and regional/reference interest reconciliation per candidate.
def
prepare_real_interest_parity( configuration: gcubed.model_configuration.ModelConfiguration, sym_data: gcubed.sym_data.SymData) -> PreparedRealInterestParity | None:
Resolve configured schedules and verify the supported structural parity rows.
def
prepare_parity_forcing( parameters: gcubed.projections.gcubed_parameters.GCubedParameters, count: int, jump_constants: numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]], static_constants: numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]) -> tuple[tuple[int, ...], numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]], numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]]] | None:
Prepare only parity-row amplitudes and calendar factors for this route.
def
apply_parity_forcing( legacy_forcing: numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]], prepared: tuple[tuple[int, ...], numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]], numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]]] | None, geometric_factor: float, year_index: int) -> numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]:
Replace geometric decay on effective parity, retaining every other row.
G-Cubed