# Building Fair and Compliant Insurance Models
A mid-size auto insurer builds a slick new pricing model. It never uses race. It never uses ethnicity. It passes internal review. Then a state regulator rejects it, because the model leans heavily on zip code, and in that state zip code correlates tightly with race. The insurer accidentally built a discrimination engine.
This is called proxy discrimination: using a neutral-looking variable that stands in for a protected class. It is one of the fastest ways to get an AI pricing model killed in 2026, and one of the easiest traps to fall into.
Let's learn how to spot it, test for it, and build models that survive regulatory review.
Most industries can price however they want. Insurance cannot.
Insurance is regulated at the state level in the US (there is no single federal insurance regulator). Each of the 50 states has its own insurance department, and rates for many lines (auto, home, health) must be filed and sometimes pre-approved. The governing principle: rates cannot be "unfairly discriminatory."
That phrase is old, but the meaning is sharp. You are allowed to charge a risky driver more. You are not allowed to charge someone more because of a protected characteristic (race, religion, national origin, and in many states sex, and increasingly credit-based proxies).
The tension: AI models are extremely good at finding patterns, including patterns that trace back to protected classes through the back door.
Regulators care about two distinct concepts. Do not confuse them.
Disparate impact is a neutral rule that produces unequal outcomes across protected groups. This is the hard one. Your model never sees race, but its predictions still fall harder on one group.
The zip code example is classic disparate impact. No intent. Real harm.
Consider variables an auto model might use:
None mention a protected class. Together they can reconstruct one with surprising accuracy. Machine learning models are especially prone to this because they exploit every correlation available.
You cannot fix what you do not measure. Here is the practical workflow.
Step 1: Get the protected attribute. You often are not allowed to use race in pricing, but you may need to estimate it to test for bias. A common method is BISG (Bayesian Improved Surname Geocoding), which estimates race probability from surname and location. The CFPB published its BISG methodology publicly.
Step 2: Compare outcomes across groups. Look at average premium, approval rate, or predicted risk by estimated group.
Step 3: Run a formal test. The most cited is the four-fifths rule (from employment law, borrowed widely): if the selection or favorable rate for one group is less than 80% of the rate for the most favored group, that is a red flag.
Here is a stripped-down disparate-impact check in Python:
import pandas as pd
# df has columns: predicted_premium, estimated_group
group_means = df.groupby("estimated_group")["predicted_premium"].mean()
baseline = group_means.min() # lowest-premium group = most favored
impact_ratio = baseline / group_means
print(impact_ratio)
# Any group with ratio < 0.80 signals potential disparate impactStep 4: If you find impact, find the cause. Which features drive the gap? This is where explainability tools come in.
Regulators increasingly require that you can explain why a model charged a specific person a specific price. A black box that says "trust me" will not pass a rate filing.
Two ideas you should know:
Adverse action notices. Under the Fair Credit Reporting Act (FCRA), when you take an adverse action (deny coverage, charge more) based partly on a consumer report, you must tell the consumer the main reasons. "Our AI decided" is not a legal reason.
SHAP values. SHAP (SHapley Additive exPlanations) is a widely used technique that attributes a prediction to each input feature. For one customer, SHAP might show: base rate plus $120 for prior claims, plus $60 for vehicle type, plus $200 for zip code. That last line is exactly what a regulator will circle.
In 2023 the NAIC (National Association of Insurance Commissioners, the body that coordinates state regulators) adopted a Model Bulletin on the use of AI by insurers. Many states have since adopted versions of it. The core expectations:
You can read the NAIC Model Bulletin on AI directly. It is short and readable, and it is the closest thing to a national standard right now.
Colorado went further with a specific regulation on life insurers' use of external data and algorithms, requiring quantitative bias testing. Expect more states to follow this template through 2026 and beyond.
Knowledge check
1. An insurer builds a pricing model that never uses race or ethnicity, yet a regulator rejects it because it relies on zip code, which correlates tightly with race in that state. What concept does this illustrate?
2. What is the key distinction between disparate treatment and disparate impact?
3. Why is insurance considered a special case regarding AI pricing models compared to most other industries?
4. Select ALL correct answers about proxy discrimination and disparate impact in insurance models.
Select all the correct answers.
5. Select ALL correct answers about the US insurance regulatory environment described.
Select all the correct answers.
You found disparate impact. Now what? You have several levers, from crude to sophisticated.
Option 1: Drop the offending feature. Remove zip code. Simple, but you often lose real predictive value, and other features may still proxy for the same thing. Rarely enough on its own.
Option 2: Find a fairer substitute. Instead of raw zip code, use variables with a clearer causal link to risk: local traffic density, weather-related claim frequency, road quality. These explain *why* geography matters without smuggling in race.
Option 3: Constrain the model during training. Add a fairness constraint so the optimizer is penalized when outcomes diverge across groups. This trades a little accuracy for a lot of defensibility.
Option 4: Adjust outputs. Post-process predictions to equalize a chosen fairness metric. Effective, but be careful: deliberately adjusting price by group can itself look like disparate treatment. Get legal review first.
There is no universal "fair" setting. Fairness definitions can conflict mathematically. You cannot always equalize both error rates and selection rates at once. This is a known impossibility result, so you must choose the definition that fits the regulation you face and document why.
A home insurer's wildfire model used zip code as a top feature. Bias testing showed a gap correlated with a protected group. The fix: replace zip code with parcel-level inputs (distance to vegetation, roof material, defensible space, historical fire perimeters). The new model was actually *more* accurate on wildfire risk and passed review, because every feature had a clear physical link to loss.
This is the pattern to internalize: causal features beat correlational proxies, for both fairness and accuracy.
Model fairness is not a one-time test. It is a program. A defensible setup includes:
The insurers who thrive under AI regulation treat compliance as an engineering discipline, not a legal afterthought.