From Records to a Prediction Dataset
A policy administration system and a claims system do not automatically form a usable prediction dataset. Policy records may describe coverage intervals, while claims records may contain multiple transactions for one event, dates recorded for different purposes, or information unavailable when a prediction would have been made. The design must specify what one row represents and exactly how its target is constructed.
This tutorial develops a hypothetical insurance claim-frequency dataset. The goal is to predict the number of claims occurring during a defined future coverage period, using information available at the start of that period. It is aligned with the SOA Exam PA (Predictive Analytics) syllabus.
For a policy-period dataset, a typical row represents one policy and one defined coverage period. Its target is the count of distinct eligible claim events occurring during that period. The row should also include its covered exposure, even when the claim count is zero. A policy with no observed claim is not the same as a policy with no coverage, and a period with incomplete outcome reporting is not automatically a zero-claim period.
Specify the Unit, Population, and Time Windows
Start by stating which policies could enter the dataset. Describe the target population in operational terms: for example, eligible personal property policies with coverage in a specified product and jurisdiction during a defined calendar period. Apply the eligibility and exclusion rules consistently, and record how they affect the population. Rules based on coverage, availability of records, or outcome status can change which risks are represented.
Next, define the time structure. A practical specification names the index date, predictor lookback period, outcome window, and data cutoff. The index date must precede the outcomes being predicted. Predictors must reflect information available by that date, not information later entered into a system with an earlier effective date. Claim occurrence date generally determines whether an event falls in the outcome window; report and transaction dates help establish what was known by the data cutoff.
- Prediction unit: for example, one policy-period rather than one claim record.
- Population: the policies eligible to be represented, including product, geography, and coverage rules.
- Index and outcome windows: when predictors are frozen and when future events are counted.
- Exposure convention: the time unit and day-count rule used for full or partial coverage.
- Data cutoff and maturity rule: how much time is allowed for eligible events to be reported and captured.
Exposure and the Pooled Frequency
For a policy covered throughout a 365-day outcome window, exposure is one policy-year under an actual-days-over-365 convention. For a partial period, exposure is covered days divided by 365. State the convention, including how boundary dates are treated, and apply it consistently. If the period crosses a leap year, a different denominator convention may be appropriate; the dataset specification must make the choice explicit rather than mixing conventions.
Here \(e_j\) is exposure in policy-years and \(N_j\) is the eligible claim count for unit \(j\). The pooled frequency is claims per policy-year. A unit with zero exposure contributes neither claim count nor exposure to this calculation; it should not be treated as an exposed zero-claim observation.
The identity below explains why the pooled rate is not generally the unweighted average of policy-level rates. For each positive-exposure unit, \(N_j=e_j(N_j/e_j)\). Summing both sides and dividing by total exposure gives:
Thus the pooled frequency is an exposure-weighted average of unit-level frequencies. This is the appropriate descriptive rate per unit of covered time. Treating it as one common underlying rate for all policies requires an additional assumption that their underlying rates are sufficiently comparable; the arithmetic identity alone does not establish that assumption.
Worked Example: A Part-Year Policy With Claims Near the Boundaries
A hypothetical policy is in force from April 1 through September 30, 2025, inclusive. The prospective outcome window is that coverage interval, and predictors are frozen on April 1. The claims extract contains events occurring March 15, May 12, September 28, and October 3. The first three events were reported by March 31, 2026; the October event was also reported by then. Use a 365-day exposure denominator. Find the exposure, eligible claim count, and policy-level frequency.
Method and boundary check. Count only events with occurrence dates in the covered outcome window. April 1 through September 30 contains \(30+31+30+31+31+30=183\) days. Therefore exposure is \(183/365=0.5014\) policy-years, to four decimal places.
The March 15 event occurred before coverage began, and the October 3 event occurred after the outcome window ended. Neither belongs in this target. The May 12 and September 28 events are within the window and were reported by the stated cutoff, so \(N=2\).
The frequency is \(2/(183/365)=730/183=3.9891\) claims per policy-year, to four decimal places. Check: multiplying \(3.9891\) by approximately \(0.5014\) gives approximately two claims.
Common mistake avoided: Counting every claim record reported by the cutoff would include events outside the target window. The target is defined by occurrence during covered time, not simply by presence in a claims extract.
Claim Counts, Maturity, and Record Structure
A claims database may have one row per payment, reserve change, reopening, or administrative transaction rather than one row per claim event. If the target is a count of claim events, define how event identity is established and count distinct eligible events, not transaction rows. Check whether one event can have multiple identifiers, whether duplicate records exist, and how reversals or reopened claims are handled. The rule should follow the intended meaning of a claim count and be applied uniformly.
Maturity is a separate issue. A claim may occur within the outcome window but be reported after the extract cutoff. If the reporting delay is still unfolding, a period that appears to have few claims may simply be less completely observed. One safeguard is to require a fixed development interval after the outcome window before accepting its count. Another is to use an explicit method for incomplete follow-up; that requires a different target construction. Do not silently regard unreported events as nonexistent.
Worked Example: Checking Whether Outcome Periods Are Mature
A hypothetical portfolio uses calendar-year 2025 as the outcome window for each eligible policy. The claims extract is frozen on June 30, 2026, and the design requires six full months after the outcome window for reporting. Policy A had coverage for all of 2025 and one eligible claim reported on February 10, 2026. Policy B was covered January 1 through June 30, 2025 and had no claim reported by the cutoff. Policy C had coverage through December 31, 2025; its claim system shows no claim by the cutoff. Decide which periods meet the stated maturity rule, and calculate the frequency for the usable periods if Policy A has one policy-year of exposure and Policy B has \(181/365\) policy-years.
Method. The calendar-year outcome window ends December 31, 2025. Six full months of reporting development end June 30, 2026. The extract is frozen on that date, so a complete 2025 outcome period meets the stated maturity rule. Policy A is mature, with one observed eligible claim. Policy C is also mature under this rule; its target count is zero, provided its coverage and claims records are otherwise complete.
Policy B's coverage ends June 30, 2025, but the specified target is the calendar-year 2025 window. A half-year of policy exposure does not by itself redefine the outcome window. Under this design, Policy B does not have the same complete outcome window, so it cannot be included as though it were a fully observed calendar-year row. The specification would need a consistent partial-window rule to include it.
For the two usable full-year periods, total claims are \(1+0=1\), and total exposure is \(1+1=2\) policy-years. The pooled frequency is \(1/2=0.5000\) claims per policy-year. Including Policy B's partial exposure without defining its target period would mix unlike observation windows.
Common mistake avoided: Calling Policy B a zero-claim annual policy because no claim was observed in its partial coverage interval confuses a partial outcome window with a complete calendar-year outcome.
Leakage, Selection, and Join Safeguards
For prospective prediction, every predictor must be available at the index date under the information process being modeled. A policy feature updated after the index date can leak future information even if its database row appears in a historical extract. A claims-derived predictor also requires a defined historical lookback ending no later than the index date. Keep future claim outcomes, later settlements, and post-index administrative updates out of predictors. Verify availability dates where backfilled records may make old information appear newly available.
Selection can enter through eligibility, extraction, and labeling. For example, retaining only policies with claims records drops policies with zero claims if those policies have no claims rows. Requiring complete follow-up can also exclude recent periods, so the population represented is the mature-period population, not necessarily every currently insured policy. Document these restrictions and check whether exclusions are concentrated in particular time periods or groups. Do not sample only claim-positive policies if the intended dataset is meant to represent the full policy population and its frequency.
A reliable join starts from the policy-period table, which contains one intended row per prediction unit. Attach claim events only after defining coverage dates and the outcome window. Aggregate eligible events to the policy-period key before joining them to predictors. Then check row counts, unmatched records, duplicate keys, and the distribution of zero and positive counts. Joining raw payment transactions directly can multiply policy rows and inflate counts or exposure.
Worked Example: Deduplicating Claim Transactions Before Aggregation
A hypothetical 2025 portfolio has three policy-periods. Policy P1 had full-year coverage and claim identifiers C11 and C12; C11 has two payment-transaction rows and C12 has one. Policy P2 was covered January 1 through September 30, inclusive, and had one eligible claim, C21. Policy P3 had full-year coverage and no claims. All periods are mature, and all listed claims occurred within coverage. Use a 365-day denominator to calculate the pooled frequency.
Method. Count distinct eligible claim events for each policy-period, not rows in the payment file. P1 has two events, not three, so \(N_1=2\) and \(e_1=365/365=1\). P2 has \(31+28+31+30+31+30+31+31+30=273\) covered days, so \(e_2=273/365\) and \(N_2=1\). P3 has \(e_3=1\) and \(N_3=0\).
Total claims are \(2+1+0=3\). Total exposure is \(1+273/365+1=1003/365=2.7479\) policy-years, to four decimal places. Therefore the pooled frequency is \(3/(1003/365)=1095/1003=1.0917\) claims per policy-year, to four decimal places.
Check and common mistake avoided: The computed rate multiplied by total exposure gives approximately \(1.0917\times2.7479=3.0000\) claims. Counting transaction rows would incorrectly give four claims and a rate of \(4/(1003/365)=1.4556\). The event identifier, rather than the payment-row count, defines the target here.
A Practical Design Review
Before producing the final analytical table, write the data specification in terms that another analyst could implement without guessing. The following sequence is a useful review:
State the policy-period key and ensure it identifies one prediction unit.
Name the coverage, product, geography, and dates that determine inclusion, and retain counts of exclusions.
Record the index date, predictor lookback, outcome window, coverage boundary convention, and claims-data cutoff.
Count distinct eligible events by occurrence date and calculate covered time using one stated exposure convention.
Remove post-index information from predictors, assess outcome maturity, and investigate duplicate or unmatched records.
Confirm that row counts and exposure totals are plausible and that aggregate event counts agree with the event-level source after the documented rules.
These checks matter because dataset design determines what a later analysis can mean. A correctly calculated rate cannot repair an outcome window that was never defined, a population selected using future claim status, or a target inflated by duplicate transactions. Clear unit, timing, exposure, and inclusion rules make the resulting claim-frequency data interpretable and reproducible.
Check Your Understanding
For each problem, identify the relevant design rule and compute the requested quantity.
- A hypothetical policy is covered February 1 through April 30, 2025, inclusive, with one eligible claim during that interval. Using a 365-day denominator, calculate its exposure and policy-level frequency. (Answer: \(89/365=0.2438\) policy-years; \(365/89=4.1011\) claims per policy-year.)
- A policy is covered January 1 through June 30, 2024, inclusive. It has two eligible claims in that window. Use a 366-day denominator for the leap year. Calculate exposure and frequency. (Answer: \(182/366=0.4973\) policy-years; \(732/182=4.0220\) claims per policy-year.)
- Three mature policy-periods have exposures of \(1\), \(0.5\), and \(0.75\) policy-years, and claim counts of \(0\), \(1\), and \(2\), respectively. Calculate pooled frequency. (Answer: \(3/2.25=1.3333\) claims per policy-year.)
- A design requires six months of reporting development after each outcome window. The data cutoff is September 30, 2025. One outcome window ends March 31, 2025; another ends April 30, 2025. Which window meets the maturity rule at the cutoff? (Answer: Only the window ending March 31 meets it; the April 30 window has not had six full months of development.)
- A payment extract contains four rows for one policy-period: two rows for claim A, one for claim B, and one for claim C. All three identifiers represent distinct eligible events in the outcome window. What claim count belongs in the target? (Answer: 3 claims, not 4 payment rows.)