Insurance Pricing

#  What if the actuarial model could see  
beyond the ZIP code?

The ZIP code is a good starting point — but within the same ZIP code there are census tracts with completely different socioeconomic profiles. Surrounding income, community proximity, and housing density add the granularity layer the pricing model needs to separate risks that are currently treated as equal. Via API, no personal data. 

R$ 207,6 bi

sector revenue  
insurance in 2024 ¹

–4,1%

decline in net profit  
despite rising premiums ¹

~450 mil

census tracts in  
Brasil (Censo 2022) ²

The problem

## Within the same ZIP code, there are socioeconomic realities the actuarial model doesn't differentiate

The ZIP code is an established variable in insurance pricing — and will remain so. But a ZIP code can cover an extensive area, grouping census tracts with completely different income, density, and socioeconomic profiles. The result is that heterogeneous risks enter the same pricing band: customers in high-income tracts subsidize those in low-income tracts, and vice-versa. Census tract granularity (300–800 households) enables separating what the ZIP code groups together — not replacing it, but adding a finer resolution layer to the model.

1 CEP

can contain 5–30 census tracts with completely different socioeconomic profiles

Census tract: 300–800 households. ZIP code: thousands. The granularity difference is 10× or more.

R$ 207,6 bi

insurance sector revenue in 2024 — but net profit fell 4.1% (claims grew faster than premiums)

Source: IRB+Mercado / SUSEP, March 2025. More granular pricing is one of the levers to rebalance the equation. ¹

0

territorial context variables with census tract granularity in typical actuarial models

Most operate with ZIP code + policyholder profile. No surrounding income, no community proximity, no housing density.

The scenario

## Same ZIP code. Same car model.  
Opposite socioeconomic context.

Two policyholders from the same ZIP code in São Paulo's North Zone take out comprehensive insurance for the same vehicle. Without census tract data, both receive the same premium. With PrismaData data, the actuarial model can differentiate the territorial context of each.

Policyholder A

### High-income census tract

**CEP:** 02110-000 (North Zone — São Paulo/SP)

**Vehicle:** HB20 1.0 — 2023

**Tract median income:** R$ 6.840

**Z-score renda:** +0.72 (above municipal average)

**CDF:** 0.77 (percentil 77)

**Community distance:** 1.800m

→ High-income surroundings, far from communities. Socioeconomic context that historically correlates with lower claims frequency.

Policyholder B

### Low-income census tract

**CEP:** 02110-000 (North Zone — São Paulo/SP)

**Vehicle:** HB20 1.0 — 2023

**Tract median income:** R$ 1.920

**Z-score renda:** -1.14 (well below municipal average) ⚠

**CDF:** 0.13 (percentil 13)

**Community distance:** 120m

→ Same ZIP code, same car. But surrounding median income is 3.6× lower, community proximity is 15× closer. These are variables the insurer can correlate with its own claims databases to calibrate the premium.

Without PrismaData, the insurer charges the same premium to both. With census tract data, the actuarial model gains territorial context variables to differentiate risks that the ZIP code treats as homogeneous.

The solution

## Territorial socioeconomic context as an actuarial feature.  
One coordinate. No CPF.

Send latitude and longitude of the policyholder's address. Receive surrounding income, socioeconomic z-score, community proximity, prison proximity, and housing density indicators. Each variable is a ready-to-use feature for the actuarial pricing model — census tract granularity, not ZIP code.

GET /v1/location/personal_income_pdf

GET /v1/location/slum

GET /v1/location/prison

Territorial enrichment — Policyholder B | ZIP 02110-000
    
    
    {
      // — Contexto socioeconômico do setor censitário —
      "renda_media_regiao": 2140.30,
      "renda_mediana_regiao": 1920.00,
      "renda_comparada_z_score": -1.14,
      "renda_comparada_cdf": 0.1273,
      "qtde_pessoas": 743,
    
      // — Proximidade de comunidade (geofence) —
      "favela_distancia_m": 120.4,
      "favela_dompp_total": 2310,
    
      // — Proximidade de presídio (geofence) —
      "presidio_distancia_m": 4200.0,
      "presidio_nome": "CDP Belém I",
    
      // — Features derivadas (calculadas pela seguradora) —
      "segmento_socioeconomico": "vulneravel",
      // → z-score < -1 + CDF < 0.15 + comunidade < 200m
    
      "fator_contexto_territorial": 1.28
      // → a seguradora correlaciona com base de sinistro própria
    }

Surrounding income

median + z-score + CDF

Socioeconomic profile of the census tract. The insurer correlates with its historical claims databases by income range.

Territorial context

community + prison

Community and prison proximity as context variables. The insurer decides how to weigh each factor in its model.

Density and profile

censo + habitantes

Census tract data: population, households, occupation type. Complements the territorial profile that the ZIP code doesn't detail.

How it works

## Where territorial data enters the actuarial model

The integration doesn't replace the actuarial pipeline — it adds territorial context variables with census tract granularity that the ZIP code doesn't offer. Three moments of use:

1

#### Quote — granular pricing

At quote time, send the policyholder's address coordinates. Receive territorial variables to feed the pricing model: tract income, community proximity, socioeconomic context. Premium calibrated by micro-region, not by ZIP code.

2

#### Renewal — risk recalibration

At each renewal, PrismaData data is recalculated with updated sources. If the tract's socioeconomic dynamics changed — income dropped, community expanded, density increased — the premium reflects the current reality, not a 12-month-old snapshot.

3

#### Backtest — actuarial validation

Enrich the historical claims database with territorial variables in batch. Evaluate whether tract income, z-score, and community proximity correlate with observed claims frequency. Validate the predictive gain before putting it in production.

Derived feature — Territorial context index

**contexto_territorial** = f(z_score_renda, renda_cdf, distancia_comunidade, densidade_setor)  
Ex: f(-1.14, 0.13, 120m, 743 hab) = **score alto** → insurer correlates with claims frequency and adjusts premium  
Ex: f(+0.72, 0.77, 1800m, 289 hab) = **score baixo** → standard premium or discount for low territorial exposure

Model features

## What goes into the actuarial model. What comes out of the API.

PrismaData returns raw census tract data and geofences. The insurer derives the actuarial features and correlates with its own claims databases. Ready-to-inject examples for the pricing model:

renda_mediana_setor

Census tract median income in BRL. Proxy for socioeconomic profile of the insured asset's surroundings. ML model recalibrated monthly with PNAD Contínua — not a static Census snapshot.

z_score_renda_setor

Returned directly by the API. Negative z-score = region poorer than municipal average. Enables positioning each tract in the municipal context and identifying atypical tracts within the same ZIP code.

renda_cdf

Cumulative percentile of tract income in the municipality. CDF 0.13 = bottom 13%. Enables classifying tracts into actuarial bands by territorial income quintile — resolution far superior to ZIP code bands.

distancia_comunidade

Community proximity in meters + total households in the nearest community. Territorial context variable the insurer can correlate with its own historical claims databases.

distancia_presidio

Proximity to the nearest prison among the 1,500+ mapped by PrismaData. Context feature that complements the territorial analysis — the insurer evaluates relevance for each line and coverage.

segmento_socioeconomico

Derived categorical feature: `alto` (CDF > 0.8 + no nearby community), `medio` (misto), `vulneravel` (CDF < 0.2 + nearby community). Direct segmentation for actuarial tables.

Applications

## Where territorial context transforms insurance pricing

Every insurance line that prices based on the insured asset's location benefits from socioeconomic variables with granularity superior to the ZIP code.

#### Auto insurance — granular pricing

Claims frequency varies between census tracts within the same ZIP code. Surrounding income and community proximity are features that enable the insurer to differentiate risks that currently enter the same premium band.

#### Home insurance e empresarial

The tract's socioeconomic context correlates with property security standards, claims frequency, and occupation type. Census data adds depth that the ZIP code doesn't offer.

#### Portfolio management and provisions

Enrich the active portfolio with territorial variables in batch. Identify socioeconomic risk concentrations — how many policies are in tracts with z-score < -1? Adjust provisions with data, not estimates.

#### Underwriting and risk acceptance

Before accepting a policy, know the risk's territorial context. In tracts with high socioeconomic vulnerability, the decision may be to adjust the premium, add a specific deductible, or decline — with evidence.

#### Reinsurance

Reinsurers receiving portfolios for analysis can enrich each risk with territorial context — identifying concentrations of socioeconomic exposure that the cedent didn't map.

#### Life insurance and credit life

Census tract income as a proxy for the policyholder's socioeconomic profile. Complements risk assessment in life and credit life products where address is a relevant variable.

Integration

## Plug and play. Batch ou real-time.

Integration via REST API. Send coordinates or ZIP code — in batch to enrich the active portfolio, or in real-time in the quote pipeline to price each policy with territorial context.

Quote pipeline Policyholder address lat + lng ou CEP API PrismaData income + slum + prison Features territoriais Renda, comunidade, prison, z-score Actuarial model Premium with census tract granularity

REST

Standard API

< 200ms

Typical latency

1.024

Pontos/chamada batch

SDK

Python available

OpenAPI

Spec + Sandbox

AI-ready

Claude Code, Copilot, Cursor

Diferencial

## Updated census tract data. Not a static Census snapshot.

Census 2022 is a rich but static base. Income is self-declared and ages every day. PrismaData's models combine Census with PNAD Contínua, BACEN indicators, and other official sources — recalibrated monthly via ML. For actuarial models that need updated territorial claims data, the difference is structural.

Monthly

Recalibration of income models with PNAD Contínua, BACEN, and complementary sources

450 mil+

Census tracts with socioeconomic data — granularity of 300 to 800 households per tract

Multi-layer

Income, community, prison, census data — multiple layers of territorial context in one call

Reference data: PNAD Contínua (IBGE), Demographic Census 2022, Central Bank indicators, community and prison mapping. Proprietary models with ML inference, recalibrated monthly.

Governance

## Territorial data, not personal. LGPD-compliant. Auditable.

#### Sem dado pessoal

The query key is the geographic coordinate — not CPF, name, or any personal identifier. The returned data describes a **region** , not an individual. No additional consent required.

#### Not individual profiling

The returned income is the regional median, not the policyholder's. The actuarial model uses territorial context as a risk factor — the same way it already uses ZIP code, but with 10× higher resolution.

#### Auditable and explainable

Every variable is traceable — income comes from a model based on PNAD Contínua, communities and prisons from official cartographic data. If the regulator asks why the premium varied, you have the basis.

Results

## Fairer premium. Less cross-subsidization. More explainable model.

Pricing

Premium calibrated by census tract — customers in low-risk tracts pay less, high-risk ones pay the appropriate premium

Backtest

Enrich the historical claims database and validate whether territorial variables improve the current model's predictive capacity

0 CPFs

required — 100% enrichment by coordinate, no personal data, LGPD-compliant

**References:**  
¹ IRB+Mercado / SUSEP, _IRB+Mercado Bulletin — 50th edition_ , March 2025. Insurance sector revenue of R$ 207.6 billion in 2024 (+10.2%). Auto claims ratio of 59.4% (+1.4 p.p.). Net profit fell 4.1%.  
² IBGE, _Census Tract Network — Demographic Census 2022_. Aproximadamente 450 mil setores censitários com cobertura nacional, granularidade de 300 a 800 domicílios por setor. 

## Ready to price with census tract granularity?

Talk to PrismaData. We can enrich a sample of your portfolio with territorial data and demonstrate the impact on the actuarial model — in minutes.

[Talk to PrismaData](<https://prismadata.io/contato/>) [Explore the API →](<https://prismadata.io/documentacao-tecnica/>)
