Dynamic Pricing

#  How far can the price go  
without losing the customer?

The answer changes radically depending on the buyer's socioeconomic profile. Estimated surrounding income, z-score, and territorial cost of living as payment capacity features in the pricing model. No CPF required, via API. 

81%

cancel subscriptions  
after price increase ¹

56%

cancel due to  
high cost ²

+8,9%

revenue with  
dynamic vs. static pricing ³

The problem

## Your pricing model treats the entire base as if everyone had the same wallet

Most price increases are linear: +15% across the entire base, same date, same value. The model doesn't distinguish a customer in Leblon from one in the outskirts of Manaus — both receive the same increase, but their absorption capacity is radically different. The result is predictable: churn concentrated in the most sensitive segments and revenue left on the table in segments with higher willingness to pay.

0

territorial payment capacity variables in typical pricing models

Linear increase ignores that R$ 22.90 weighs 0.2% in Itaim and 1.3% in Ananindeua

81%

of Brazilians have canceled subscriptions due to price increases

Source: Subscription Survey 2024 — Opinion Box / Vindi ¹

–15%

churn reduction possible with proactive notification and downgrade offer before price increase

Source: McKinsey — Subscription Economy 2024–2025 ²

The scenario

## Same price increase. Same plan.  
Opposite price elasticity.

A R$ 19.90 subscription goes up to R$ 22.90 (+15%). Without territorial segmentation, the company treats this increase as homogeneous. With PrismaData data, it's possible to anticipate who absorbs it and who cancels.

Subscriber A

### Vila Olímpia — São Paulo/SP

**Current plan:** R$ 19,90 → R$ 22,90 (+15%)

**Regional median income:** R$ 11.240

**Increase weight:** 0.03% of income (irrelevant)

**Z-score:** +1.38 (high-income region)

**Incremental impact:** R$ 3.00/month

→ Increase absorbed without friction. Customer could support up to +30% without significant risk.

Subscriber B

### Outskirts — Marituba/PA

**Current plan:** R$ 19,90 → R$ 22,90 (+15%)

**Regional median income:** R$ 1.180

**Increase weight:** 1.94% of income (sensitive) ⚠

**Z-score:** -1.02 (low-income region)

**Incremental impact:** R$ 3.00/month

→ Same R$ 3.00 more. But the relative weight is 65× higher. Candidate for immediate cancellation.

Without PrismaData, both receive the same increase on the same date. With it, Subscriber B is flagged before the increase — and can receive a preventive retention strategy or an alternative plan.

Caso real

## Load-based pricing for sports tickets — the data that ages

Football clubs already use data scientists to dynamically price tickets — considering opponents, day/time, stadium section, and even census tract income of registered fans. The problem: Census 2022 is static, self-declared, and ages every day. It's a fragile foundation for a pricing model that needs to be precise.

With Census 2022

• Self-declared income — under-reporting bias

• 2022 data, no updates

• Generic income brackets (no distribution)

• Doesn't capture recent economic dynamics

• Coverage limited to respondents

→ Static snapshot. Good for baseline, fragile for real-time pricing decisions.

With PrismaData

• ML-modeled estimated income — multiple sources

• Monthly recalibration (PNAD Contínua + BACEN)

• Z-score, CDF, household vs. per capita income

• Captures inflation, migration, economic variation

• Nationwide coverage — just a coordinate or ZIP code

→ Continuous and updated estimate. Robust foundation for dynamic pricing.

The solution

## Surrounding payment capacity.  
One coordinate. No CPF.

Send latitude and longitude of the customer's address. Receive estimated regional income, comparative z-score, and probability ranges. Each variable is a ready-to-use feature for the pricing model — before the increase, as an impact simulation; after, as segmented churn monitoring.

GET /v1/location/personal_income_pdf

GET /v1/location/slum

Price increase simulation — two segments | R$ 19.90 → R$ 22.90
    
    
    {
      // — Segment A: Vila Olímpia, São Paulo/SP —
      "renda_media_regiao": 12480.30,
      "renda_mediana_regiao": 11240.00,
      "renda_comparada_z_score": 1.38,
      "renda_comparada_cdf": 0.9162,
      "qtde_pessoas": 289,
    
      // — Derived feature (calculated by client) —
      "peso_reajuste_sobre_mediana": 0.0003,
      // → 0,03% — impacto irrelevante no orçamento
    
      // — Segmento B: Marituba/PA —
      "renda_media_regiao": 1340.15,
      "renda_mediana_regiao": 1180.00,
      "renda_comparada_z_score": -1.02,
      "renda_comparada_cdf": 0.1539,
      "qtde_pessoas": 612,
    
      // — Derived feature (calculated by client) —
      "peso_reajuste_sobre_mediana": 0.0194,
      // → 1.94% — R$ 3 increase weighs 65× more
    
      // — Territorial context (slum) —
      "favela_distancia_m": 280.4,
      "favela_dompp_total": 1847
    }

Capacidade

median income + CDF

Can the customer's surroundings afford the new price? What income percentile are they in?

Sensibilidade

increase weight

How much of the local budget the increase consumes. Price elasticity proxy.

Contexto

z-score + community

How atypical is the region? Is there territorial vulnerability that amplifies sensitivity?

How it works

## Where the data enters the pricing chain

The integration doesn't replace your pricing model — it adds the territorial payment capacity variable it doesn't have today. Two moments of use:

1

#### Before the increase — impact simulation

Enrich the customer base with surrounding income. Derive `peso_reajuste = delta_preco / renda_mediana`. Segmente por faixas de sensibilidade. Simule cenários: quantos clientes têm peso > 1%? > 5%? Qual o impacto projetado no MRR?

2

#### After the increase — segmented monitoring

Monitor churn and conversion by territorial income range. Compare cancellation rates between high and low capacity segments. Calibrate the next pricing rounds with real segmented data.

Derived feature — Increase weight

**peso_reajuste** = (preco_novo - preco_atual) / renda_mediana_regiao  
Ex: (R$ 22,90 - R$ 19,90) / R$ 11.240 = **0,0003** (0.03% — no risk)  
Ex: (R$ 22,90 - R$ 19,90) / R$ 1.180 = **0,0254** (2.5% — high risk)

Integration

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

Integration via REST API. Send coordinates or ZIP code — in batch to simulate impact on the base before the increase, or in real-time during onboarding to capture the sensitivity profile.

Customer base Address, ZIP code or coordinate API PrismaData /v1/location/income lat + lng Enriched response Income, z-score, CDF, context Pricing model Payment capacity as a model feature

REST

Standard API

< 200ms

Typical latency

1.024

Pontos/chamada batch

SDK

Python available

OpenAPI

Spec + Sandbox

AI-ready

Claude Code, Copilot, Cursor

Applications

## Who prices without knowing the customer's payment capacity?

Every business with recurring models, dynamic pricing, or periodic increases that captures the customer's address.

#### Digital subscriptions and SaaS

A price increase from R$ 19.90 → R$ 22.90 is irrelevant for someone in Itaim and can be the cancellation trigger in the outskirts of Belém. Simulate first, segment the increase.

#### Entertainment and tickets

Football clubs, festivals, shows. Load-based pricing with updated audience income — not with Census 2022 static snapshot.

#### Telecom and internet

Plan from R$ 119 → R$ 139. In a region with median income of R$ 1,400, the increase consumes an additional 1.4% of the budget. Number portability becomes more attractive.

#### Insurance and health plans

Annual premium increase. Knowing the new value represents 28% of local income enables anticipating delinquency and offering alternatives before automatic cancellation.

#### Education

Schools, prep courses, private universities. Tuition increases with neighborhood-level impact simulation — identifying families that will need scholarships or staggered discounts.

#### Real estate

Rent pricing and adjustments. Census tract income as a proxy for willingness to pay — unlike price/m² which reflects supply, not capacity.

Model features

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

PrismaData returns raw regional data. You derive the pricing features. Ready-to-inject examples:

peso_reajuste

`delta_preco / renda_mediana` — How much of the typical surrounding budget the increase consumes. Continuous. Ideal for cancellation risk threshold.

peso_plano_total

`preco_novo / renda_mediana` — Total post-increase commitment. Customer with weight > 10% is a downgrade candidate. With weight < 2%, supports upsell.

z_score_renda_regiao

Returned directly by the API. Negative z-score = region poorer than the municipal average. Segments with z-score < -1 have naturally higher price elasticity.

renda_cdf

Cumulative percentile of regional income. CDF 0.15 = bottom 15% of the municipality. Enables segmenting increases by economic capacity quintile.

elasticidade_proxy

`1 / renda_mediana` — Simplified proxy for price sensitivity. The lower the income, the higher the elasticity. Use as weight in the model.

segmento_pricing

Derived categorical feature: `premium` (CDF > 0.8), `standard` (0.4–0.8), `sensivel` (< 0.4). Useful for segmenting differentiated pricing strategies.

Diferencial

## Income updated monthly. Not a Census 2022 snapshot.

Os modelos de renda da PrismaData são recalibrados mensalmente com microdados da PNAD Contínua, indicadores do BACEN e outras fontes oficiais. A inferência é feita por algoritmos de ML — o que significa que os dados de capacidade de pagamento acompanham a dinâmica real da economia.

Monthly

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

Continuous

Income in BRL, z-score, CDF. No generic brackets. Ideal for gradient boosting and fine segmentation.

Sem cadastro

Doesn't depend on declared income. Just a coordinate or ZIP code. Democratizes intelligent pricing.

Reference data: PNAD Contínua (IBGE), Demographic Census 2022, Central Bank indicators, and official public sources. 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.

#### Not individual profiling

The returned income is the regional median, not the customer's. The pricing model uses territorial context as a payment capacity proxy, not as personal data. Simplifies compliance.

#### Auditable and explainable

Every variable is traceable — income comes from a model based on PNAD Contínua and BACEN, community data from IBGE cartographic data. If the regulator asks, you have the answer.

Results

## Smart pricing. Fewer cancellations. More retained revenue.

Antes

Simulate increase impact by territorial segment before executing

Depois

Monitor churn and conversion segmented by payment capacity

0 CPFs

required — 100% enrichment by coordinate, no personal data

**References:**  
¹ Opinion Box / Vindi, _Subscription Survey 2024_. 81% dos brasileiros já cancelaram assinaturas após aumento de preço.  
² McKinsey / Club Martech, _Subscription Economy 2024–2025_. 56% cancel due tos elevados. Notificações proativas com 30 dias de antecedência reduzem churn em até 15%.  
³ Yılmaz & Yakıcı, _A Dynamic Ticket Pricing Approach for Soccer Games_ , Axioms, 2017. Dynamic pricing model generates up to +8.95% revenue vs. static strategy.  
⁴ Shapiro & Drayer, _Dynamic Ticket Pricing in Sport_ , Sport Marketing Quarterly, 2012. Dynamic pricing in sports increases revenue by up to 24% in the secondary market.  
⁵ Recurly Research, _Churn Rate Benchmarks_. Taxa de churn mensal de 5% considerada média em negócios de assinatura. 

## Ready to price with territorial context?

Talk to PrismaData. We can simulate the impact of a price increase on your base in minutes — with real payment capacity data.

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