Fat Agent Standard / Core Objects

v1.0

PolicySnapshot

Represents the financial values, policy state, and performance information of an insurance Policy at a specific point in time.

PolicySnapshot MUST reference a Policy by policy_id. It records what the Policy was worth, its status, and how it was performing as of a date. Historical Snapshots MUST remain distinct.

Identity

One Policy MAY have unlimited PolicySnapshots. Multiple Snapshots MAY exist for the same Policy and as_of_date when they come from different sources. Historical Snapshots MUST NOT be overwritten when later values arrive.

FieldTypeRequiredDescription
policy_snapshot_idstringYes

Unique identifier for the PolicySnapshot

policy_idstringYes

Policy represented by this Snapshot

as_of_datestring (date)Yes

Date the Snapshot represents

as_of_timestring (time)No

Time represented by the Snapshot when intraday precision is available

policy_statusenumNo

Policy status as of the Snapshot. Uses the same taxonomy as Policy status.

Allowed: pending, active, pending_cancellation, cancelled, expired, non_renewed, lapsed, reinstated, suspended, terminated, matured, paid_up, claim_pending, claim_paid, other

policy_status_descriptionstringYes*

Custom value when policy_status is other. Required when policy_status is other. MUST NOT be set otherwise.

Source

Source provenance is mandatory. Calculated, estimated, imported, or manually entered values MUST remain distinguishable from carrier-reported values.

FieldTypeRequiredDescription
source_typeenumYes

Origin of the Snapshot data

Allowed: carrier, carrier_api, agent, policyholder, policy_statement, illustration, imported_data, third_party, calculated, other

source_type_descriptionstringYes*

Custom value when source_type is other. Required when source_type is other. MUST NOT be set otherwise.

source_idstringNo

ID of the originating entity or system when available

source_datestring (date)Yes

Date the source supplied or reported the data

source_referencestringNo

External reference, statement number, API transaction, or file reference

Life Values

Life Values describe applicability for life insurance products. Fields are stored at the PolicySnapshot root. Only applicable values SHOULD be supplied.

FieldTypeRequiredDescription
cash_valuenumberNo

Cash value as of the Snapshot

account_valuenumberNo

Policy account value

surrender_valuenumberNo

Amount available upon surrender

death_benefitnumberNo

Death benefit as of the Snapshot

loan_balancenumberNo

Outstanding policy loan balance

withdrawal_valuenumberNo

Amount currently available for withdrawal

premium_paid_to_datenumberNo

Cumulative premium paid through the Snapshot date

Annuity Values

Annuity Values describe applicability for annuity contracts. Shared concepts use the same root field names as Life Values: surrender_value, death_benefit, withdrawal_value, and premium_paid_to_date. Do not create life_* or annuity_* duplicates. guaranteed_lifetime_income MUST NOT be inferred from income_base unless source_type is calculated.

FieldTypeRequiredDescription
contract_valuenumberNo

Current annuity contract value

income_valuenumberNo

Current value used for income calculations when applicable

income_basenumberNo

Current income benefit base

withdrawal_availablenumberNo

Amount currently available for withdrawal without exceeding applicable contract provisions

guaranteed_lifetime_incomenumberNo

Carrier-reported guaranteed lifetime income amount as of the Snapshot

Interest / Crediting

credited_interest is interest actually credited by the carrier. External index movement and estimated policy performance MUST remain separate and MUST NOT automatically become credited_interest.

FieldTypeRequiredDescription
credited_interestnumberNo

Interest actually credited to the Policy for the applicable period

credited_interest_ratenumberNo

Rate actually credited to the Policy, as a percentage-point value

declared_ratenumberNo

Current carrier-declared interest rate when applicable, as a percentage-point value

Index Allocations

index_allocations represents indexed strategies associated with the Policy. Index values track market performance. Crediting terms and credited_interest represent carrier terms and actual crediting. estimated_current_value MAY be calculated and MUST remain distinguishable through Source. Rates and percentages use percentage-point values: 8.25 means 8.25%.

FieldTypeRequiredDescription
allocation_idstringYes

Unique identifier for this indexed allocation

index_namestringYes

Name of the index

index_identifierstringNo

External index identifier, ticker, or reference when available

strategy_namestringNo

Carrier strategy or allocation name

allocation_percentagenumberNo

Percentage of applicable policy value allocated to the strategy. 25 means 25%.

index_start_valuenumberNo

Index value at the beginning of the applicable crediting period

index_current_valuenumberNo

Most recently observed index value

index_close_valuenumberNo

Official closing index value for the Snapshot date when available

index_changenumberNo

Numeric change from the applicable index starting value

index_change_percentagenumberNo

Percentage change from the applicable index starting value

daily_changenumberNo

Numeric index gain or loss for the Snapshot date

daily_change_percentagenumberNo

Percentage index gain or loss for the Snapshot date

participation_ratenumberNo

Participation rate applicable to the indexed strategy

cap_ratenumberNo

Maximum credited rate when applicable

spread_ratenumberNo

Spread deducted under the strategy when applicable

declared_ratenumberNo

Carrier-declared rate applicable to the allocation

floor_ratenumberNo

Minimum credited rate under the strategy when applicable

credited_ratenumberNo

Rate actually credited by the carrier

allocation_valuenumberNo

Carrier-reported current value of the indexed allocation

allocation_start_valuenumberNo

Value allocated at the beginning of the crediting period

estimated_current_valuenumberNo

Estimated current allocation value based on available performance data

credited_interestnumberNo

Interest actually credited to this allocation

crediting_methodenumNo

Carrier crediting methodology

Allowed: annual_point_to_point, multi_year_point_to_point, monthly_point_to_point, monthly_sum, monthly_average, daily_average, fixed_interest, other

crediting_method_descriptionstringYes*

Custom value when crediting_method is other. Required when crediting_method is other. MUST NOT be set otherwise.

crediting_period_startstring (date)No

Beginning of the applicable crediting period

crediting_period_endstring (date)No

End of the applicable crediting period

last_crediting_datestring (date)No

Most recent date carrier interest was actually credited

Currency

currency is required when any monetary financial value is supplied.

FieldTypeRequiredDescription
currencystringNo

ISO 4217 currency code applicable to monetary values. Required when any monetary financial value is supplied.

External References

external_references maps the Snapshot to identifiers from carriers or other systems, such as valuation IDs, API transactions, statement IDs, or market-data references.

FieldTypeRequiredDescription
systemstringYes

External system

reference_idstringYes

Identifier in the external system

reference_typestringNo

Type of reference

Source Types

source_type identifies where Snapshot values originated. Calculated estimates MUST remain distinguishable from carrier-reported values.

Line of BusinessAllowed product_type
carrierCarrier-reported
carrier_apiCarrier API valuation
agentAgent entered
policyholderPolicyholder supplied
policy_statementPolicy statement
illustrationIllustration
imported_dataImported data
third_partyThird party
calculatedCalculated estimate
otherRequires source_type_description

Validation Rules

  1. policy_snapshot_id, policy_id, as_of_date, source_type, and source_date MUST be supplied.
  2. One Policy MAY have unlimited PolicySnapshots. Every PolicySnapshot MUST reference exactly one Policy.
  3. Historical PolicySnapshots SHOULD NOT be overwritten when newer values become available.
  4. Multiple Snapshots MAY exist for the same policy_id and as_of_date when their sources differ.
  5. When an enum value is other, the companion {field}_description field is required and MUST be a non-empty string. That companion field MUST NOT be set unless the enum value is other.
  6. policy_status, when supplied, MUST use the same taxonomy as Policy status.
  7. A Snapshot MAY contain incomplete values when the source does not provide every field.
  8. Life Values and Annuity Values describe applicability. Shared financial concepts use one canonical field name.
  9. guaranteed_lifetime_income MUST NOT be inferred from income_base unless the Snapshot source identifies it as calculated.
  10. currency MUST use ISO 4217 and is required when any monetary financial value is supplied.
  11. External index performance, estimated policy performance, and actual carrier crediting are separate concepts.
  12. Daily index movement MUST NOT automatically be treated as credited_interest.
  13. credited_interest represents actual credited interest when reported as such.
  14. estimated_current_value MAY represent a calculated value and MUST remain distinguishable through Source.
  15. Rates and percentages use percentage-point values: 8.25 means 8.25%. Do not convert these to decimal fractions.
  16. as_of_date and source_date MUST use ISO 8601 date format (YYYY-MM-DD). as_of_time, when supplied, MUST use ISO 8601 time format.
  17. Health insurance and group insurance MUST NOT appear on PolicySnapshot.