src.projection_entities.products.annuity.riders.gmdb.rop.GmdbRop¶
- class src.projection_entities.products.annuity.riders.gmdb.rop.GmdbRop(time_steps: TimeSteps, data_sources: AnnuityDataSources, gmdb_data_source: Gmdb)¶
GMDB Return of Premium rider.
Inheritance Diagram

Variables & Properties
Methods
__init__(time_steps, data_sources, ...)Constructor method.
process_charge(base_contract)Every month, charges the base contract for the GMDB fee.
process_premiums(base_contract)Adds premiums paid from the base contract into the
benefit base.update_benefit_base(base_contract)Sets benefit base to
cumulative premium.update_net_amount_at_risk(base_contract)Calculates and updates the Net Amount At Risk (NAAR):
write_projection_values(output_file_path)Writes all
ProjectionValueattributes in this projection entity to a CSV file.Convenience method that writes
ProjectionValueattributes for itself, as well as any nestedProjectionEntityattributes.Details
- __init__(time_steps: TimeSteps, data_sources: AnnuityDataSources, gmdb_data_source: Gmdb)¶
Constructor method.
- Parameters:
time_steps – Projection-wide timekeeping object.
data_sources – Annuity data sources.
gmdb_data_source – GMDB rider data source.
- benefit_base: ProjectionValue¶
Benefit base, used to calculate death benefit payout.
- charge_amount: ProjectionValue¶
Charge amount, assessed against the account value.
- charge_rate: ProjectionValue¶
Charge rate, used to calculate the charge amount.
- data_sources: AnnuityDataSources¶
Data sources to initialize projection values.
- init_t: date¶
Initial time step. Marks when this entity first came into existence.
- net_amount_at_risk: ProjectionValue¶
Net Amount At Risk (NAAR).
- process_charge(base_contract: BaseContract) None¶
Every month, charges the base contract for the GMDB fee.
\[GMDB \, charge = account \, value \times \frac{GMDB \, charge \, rate}{12}\]\(GMDB \, charge \, rate\) is read from
charge_rate().Applies charge to the base contract using
assess_charge().- Parameters:
base_contract – Base contract.
- Returns:
Nothing.
Adds premiums paid from the base contract into the
benefit base.- Parameters:
base_contract – Base contract.
- Returns:
Nothing.
- update_benefit_base(base_contract: BaseContract) None¶
Sets benefit base to
cumulative premium.- Parameters:
base_contract – Base contract.
- Returns:
Nothing.
- update_net_amount_at_risk(base_contract: BaseContract) None¶
Calculates and updates the Net Amount At Risk (NAAR):
\[NAAR = max(benefit\, base - account\, value, 0)\]- Parameters:
base_contract – Base contract.
- Returns:
Nothing.
- write_projection_values(output_file_path: str) None¶
Writes all
ProjectionValueattributes in this projection entity to a CSV file. Existing file will be overwritten.- Parameters:
output_file_path – Output file path.
- Returns:
Nothing.
- write_projection_values_recursively(output_file_path: str) None¶
Convenience method that writes
ProjectionValueattributes for itself, as well as any nestedProjectionEntityattributes.This function behaves recursively, writing output for all nested projection entities no matter how deeply they are nested.
- Parameters:
output_file_path – Output file path
- Returns:
Nothing.