Aplicações
O dado de aglomerações comerciais mapeia os polígonos de tecido comercial denso do Brasil e retorna, para cada aglomeração, sua vocação (moda, alimentação, varejo…), porte, faixa de renda, quantidade de PDVs, densidade por km² e score ponderado — sinais essenciais para expansão de rede, escolha de ponto, dimensionamento de catchment e enriquecimento de carteira.
Expansão e Escolha de Ponto
Classifique candidatos a novos PDVs pelo porte, vocação e score da aglomeração em que estão inseridos ou pela distância à aglomeração mais próxima.
Catchment Area
Delimite áreas de influência com base no polígono da aglomeração e nos rankings municipal, estadual e nacional por PDVs, score e densidade.
Enriquecimento de Carteira
Marque cada PDV da sua base com o hash da aglomeração, vocação, faixa de renda e percentil nacional para segmentação e modelagem.
Vocação e Mix Territorial
Analise o mix de segmentos (moda, alimentação, saúde, eletrônicos…) por região para decisões de sortimento, preço e comunicação.
Conceito
Uma aglomeração comercial é um polígono derivado da concentração de pontos de venda (PDVs) em uma área contínua. Cada polígono agrega métricas territoriais (área, densidade de PDVs por km², renda mediana, percentil nacional de renda) e classificações discretas — porte (Pequena, Media, Grande), concentracao (Esparsa, Distribuida, Densa) e faixa_renda (Popular, Econômica, Intermediária, Premium, Luxo).
A cada aglomeração são atribuídos rankings nacional, estadual e municipal por três critérios (PDVs, score ponderado e densidade), além de um perfil de vocação composto pelos percentuais de cada segmento (alimentação, moda, supermercado, saúde, construção, eletrônicos, móveis, combustíveis, automotivo, entretenimento, alojamento e varejo geral). O consumo se dá por proximidade (lat/lng), por endereço/trecho de rua, por busca com filtros ou por lookup direto pelo hash da aglomeração.
Convenção de Sinais
O campo booleano dentro_de_aglomeracao indica se o ponto consultado está contido em algum polígono. O campo numérico densidade_pdvs_km2 quantifica a intensidade do tecido comercial da aglomeração retornada.
aglomeracao_hash_contendo aponta para essa aglomeração.
distancia_m em metros.
porte e concentracao para interpretar.
Parâmetros de Entrada
A família de endpoints de Aglomerações Comerciais oferece cinco formas de consumo, cobrindo desde consultas por ponto geográfico até rankings agregados.
GET /location/commercial_cluster — por lat/lng
Retorna a aglomeração mais próxima (ou top-N) de um ponto geográfico, opcionalmente com o trecho de rua mais próximo e o polígono da geometria.
lat
float · obrigatório
Latitude WGS84 do ponto (-90 < lat < 90).
lng
float · obrigatório
Longitude WGS84 do ponto (-180 < lng < 180).
top_n
int · default 1
Quantidade de aglomerações a retornar (1 a 10). Quando >1, cada aglomeração vem prefixada com 1_, 2_…
raio_km
float · default 5.0
Raio de busca em quilômetros (máx. 50).
incluir_trecho_mais_proximo
bool · default true
Retorna também o trecho de rua mais próximo do ponto consultado.
incluir_trechos_da_aglomeracao
bool · default false
Retorna todos os trechos de rua da aglomeração contendo o ponto.
incluir_geometria
bool · default false
Retorna o polígono da aglomeração. Requer role admin ou viewer:commercial_cluster no JWT.
wkt
bool · default false
Quando incluir_geometria=true, devolve a geometria em WKT em vez de GeoJSON.
vocacao
array<string> · opcional
Filtra por vocações específicas (ex.: Moda, Alimentacao, Diversificada).
porte_minimo
string · opcional
Porte mínimo aceito: Pequena, Media ou Grande.
faixa_renda
array<string> · opcional
Uma ou mais faixas: Popular, Econômica, Intermediária, Premium, Luxo.
versao_dados
string · opcional
Congela o retorno em uma versão específica da base (default: última disponível).
GET /location/commercial_cluster/street — por trecho de rua
Retorna o(s) trecho(s) de rua mais próximo(s) de um ponto, com atributos da aglomeração-mãe opcionalmente incluídos.
lat
float · obrigatório
Latitude WGS84 do ponto.
lng
float · obrigatório
Longitude WGS84 do ponto.
top_n
int · default 1
Quantidade de trechos a retornar (1 a 10).
raio_m
float · default 200
Raio de busca em metros (máx. 5.000).
incluir_aglomeracao
bool · default true
Inclui campos da aglomeração-mãe (nome, vocação, porte, faixa de renda…) no top-level.
versao_dados
string · opcional
Versão da base a consultar.
POST /location/commercial_cluster/search — busca por filtros
Busca aglomerações sem ponto geográfico, aplicando filtros por UF, município, vocação, porte, faixa de renda, quantidade de PDVs, score e bbox.
filtros.uf
array<string>
Uma ou mais UFs (siglas de 2 caracteres).
filtros.municipio
array<string>
Uma ou mais cidades (maiúsculas, sem acento).
filtros.vocacao
array/string
Filtra por vocação (ex.: Moda, Diversificada, Alimentacao).
filtros.porte
array<string>
Um ou mais portes: Pequena, Media, Grande.
filtros.faixa_renda
array<string>
Uma ou mais faixas de renda.
filtros.qtd_pdvs_min / qtd_pdvs_max
int
Intervalo de PDVs por aglomeração.
filtros.score_min / score_max
float
Intervalo do score ponderado.
filtros.bbox
objeto
Bounding box com min_lat, min_lng, max_lat, max_lng.
ordenar_por
string · default score_ponderado
Campo de ordenação do resultado.
ordem
string · default desc
asc ou desc.
limite
int · default 50
Máximo de itens por página (1 a 200).
offset
int · default 0
Deslocamento para paginação.
GET /location/commercial_cluster/ranking — top-N por critério e escopo
Retorna as top-N aglomerações classificadas por score, quantidade de PDVs ou densidade — em escopo nacional, estadual ou municipal.
criterio
string · default score
Critério de ordenação: score, pdvs ou densidade.
escopo
string · default nacional
Universo do ranking: nacional, uf ou municipio.
top_n
int · default 50
Quantidade de aglomerações no ranking (1 a 500).
uf
string · opcional
Obrigatório quando escopo=uf ou escopo=municipio.
municipio
string · opcional
Obrigatório quando escopo=municipio.
vocacao
string · opcional
Restringe o ranking a uma vocação específica.
GET /location/commercial_cluster/{aglomeracao_hash} — lookup direto pelo hash
Retorna todos os atributos de uma aglomeração conhecida e, opcionalmente, seus trechos de rua e a geometria do polígono.
aglomeracao_hash
string · path · obrigatório
Identificador global da aglomeração (retornado pelos demais endpoints).
incluir_trechos
bool · default true
Inclui todos os trechos de rua pertencentes à aglomeração.
incluir_geometria
bool · default false
Requer role admin ou viewer:commercial_cluster.
wkt
bool · default false
Formato WKT em vez de GeoJSON quando incluir_geometria=true.
POST /location/commercial_cluster/batch — em lote
Processa até 1.024 pontos em uma única chamada, cada um identificado por id_externo. Aceita os mesmos parâmetros do endpoint por lat/lng (exceto incluir_trechos_da_aglomeracao). O campo geometria não é suportado em /batch.
pontos[].id_externo
string · obrigatório
Identificador do ponto no seu sistema (retornado no output para correlação).
pontos[].latitude / longitude
float · obrigatório
Coordenadas WGS84 do ponto.
top_n_por_ponto
int · default 1
Aglomerações por ponto (1 a 10).
raio_km
float · default 2.0
Raio de busca em quilômetros (máx. 50).
incluir_trecho_mais_proximo
bool · default true
Retorna também o trecho de rua mais próximo de cada ponto.
Exemplos
Dois cenários em São Paulo ilustram o retorno do endpoint /location/commercial_cluster: um ponto dentro da Avenida Paulista e outro fora, em zona residencial.
{
"prismadata__commercial_cluster__latitude": -23.5613,
"prismadata__commercial_cluster__longitude": -46.6558,
"prismadata__commercial_cluster__dentro_de_aglomeracao": true,
"prismadata__commercial_cluster__aglomeracao_hash_contendo": "5ebd0eb4f6b4",
"prismadata__commercial_cluster__aglomeracao_hash": "5ebd0eb4f6b4",
"prismadata__commercial_cluster__nome_aglomeracao": "Avenida Paulista / Alameda Ministro Rocha Azevedo - SAO PAULO/SP",
"prismadata__commercial_cluster__municipio": "SAO PAULO",
"prismadata__commercial_cluster__uf": "SP",
"prismadata__commercial_cluster__qtd_pdvs": 5117,
"prismadata__commercial_cluster__score_ponderado": 6402.5,
"prismadata__commercial_cluster__area_ha": 10.11,
"prismadata__commercial_cluster__densidade_pdvs_km2": 50625.8,
"prismadata__commercial_cluster__centroide_lat": -23.561411,
"prismadata__commercial_cluster__centroide_lng": -46.656262,
"prismadata__commercial_cluster__porte": "Grande",
"prismadata__commercial_cluster__concentracao": "Densa",
"prismadata__commercial_cluster__faixa_renda": "Luxo",
"prismadata__commercial_cluster__vocacao": "Diversificada",
"prismadata__commercial_cluster__nome_segmento": "Grande, Densa, Luxo de Diversificada",
"prismadata__commercial_cluster__pct_alimentacao": 8.8,
"prismadata__commercial_cluster__pct_moda": 10.9,
"prismadata__commercial_cluster__pct_eletronicos": 16.4,
"prismadata__commercial_cluster__pct_varejo_geral": 12.6,
"prismadata__commercial_cluster__renda_mediana": 8503.98,
"prismadata__commercial_cluster__percentil_br_renda": 99.3,
"prismadata__commercial_cluster__rank_nacional_score": 1,
"prismadata__commercial_cluster__rank_nacional_pdvs": 1,
"prismadata__commercial_cluster__rank_uf_score": 1,
"prismadata__commercial_cluster__rank_municipal_score": 1,
"prismadata__commercial_cluster__distancia_m": 0.0,
"prismadata__commercial_cluster__distancia_borda_m": 57.99,
"prismadata__commercial_cluster__contido": true
}
O ponto está dentro da aglomeração (dentro_de_aglomeracao: true). Trata-se do polígono nº 1 do Brasil por score e PDVs — Grande porte, Densa, faixa de renda Luxo, com 5.117 PDVs e densidade de ~50.625 PDVs/km². O mix é Diversificado, com destaque para Eletrônicos (16,4%) e Varejo Geral (12,6%).
{
"prismadata__commercial_cluster__latitude": -23.6100,
"prismadata__commercial_cluster__longitude": -46.7200,
"prismadata__commercial_cluster__dentro_de_aglomeracao": false,
"prismadata__commercial_cluster__aglomeracao_hash_contendo": null,
"prismadata__commercial_cluster__aglomeracao_hash": "a91c3f7b8e02",
"prismadata__commercial_cluster__nome_aglomeracao": "Avenida Giovanni Gronchi - SAO PAULO/SP",
"prismadata__commercial_cluster__municipio": "SAO PAULO",
"prismadata__commercial_cluster__uf": "SP",
"prismadata__commercial_cluster__qtd_pdvs": 312,
"prismadata__commercial_cluster__score_ponderado": 418.7,
"prismadata__commercial_cluster__area_ha": 4.82,
"prismadata__commercial_cluster__densidade_pdvs_km2": 6473.0,
"prismadata__commercial_cluster__porte": "Media",
"prismadata__commercial_cluster__concentracao": "Distribuida",
"prismadata__commercial_cluster__faixa_renda": "Premium",
"prismadata__commercial_cluster__vocacao": "Alimentacao",
"prismadata__commercial_cluster__renda_mediana": 5210.44,
"prismadata__commercial_cluster__percentil_br_renda": 94.1,
"prismadata__commercial_cluster__rank_nacional_score": 812,
"prismadata__commercial_cluster__rank_uf_score": 187,
"prismadata__commercial_cluster__rank_municipal_score": 96,
"prismadata__commercial_cluster__distancia_m": 742.8,
"prismadata__commercial_cluster__distancia_borda_m": 742.8,
"prismadata__commercial_cluster__contido": false
}
O ponto está fora de qualquer aglomeração (dentro_de_aglomeracao: false, aglomeracao_hash_contendo: null). A aglomeração mais próxima dentro do raio de 5 km está a 742 m — um polígono de porte Média, vocação Alimentação e faixa de renda Premium.
Atributos Retornados
Todos os campos são retornados com o prefixo prismadata__commercial_cluster__ (omitido nas tabelas abaixo por brevidade). Para top_n > 1, cada aglomeração vem prefixada com 1_, 2_, etc.
null quando o ponto está fora de qualquer polígono.true quando o ponto está dentro de algum polígono da base.Pequena, Media ou Grande.Esparsa, Distribuida ou Densa.Popular, Econômica, Intermediária, Premium ou Luxo.null).wkt=true). SRID 4326, sem simplificação. Requer role admin ou viewer:commercial_cluster. Não suportado no endpoint /batch.Detalhes Técnicos
Fontes
- Base proprietária PrismaData de PDVs (CNPJ ativos com CNAE de varejo/serviço)
- Malha viária OpenStreetMap para segmentação de trechos
- Dados sociodemográficos do IBGE para renda mediana e percentis
Metodologia
Detecção de concentração comercial por clusterização espacial de PDVs, com classificação em vocação, porte e faixa de renda. Score ponderado combina densidade e volume; rankings recalculados a cada versão.
Frequência de Atualização
Base versionada — atualizações incrementais podem ser fixadas via parâmetro versao_dados. Sem esse parâmetro, retorna sempre a versão mais recente.
Cobertura
Aproximadamente 11 mil aglomerações mapeadas em todo o território nacional, com maior densidade em regiões metropolitanas. Pontos fora do raio_km configurado não retornam aglomeração.
Limitações
Considere ao utilizar
- O retorno da geometria requer role
adminouviewer:commercial_cluster. Sem essa role, requisições comincluir_geometria=trueretornam403 GEOMETRIA_NAO_AUTORIZADA. - O endpoint
/batchaceita no máximo 1.024 pontos por chamada e não suporta o retorno de geometria. - Pontos fora do
raio_km(default 5 km, máx. 50 km) não retornam aglomeração — mesmo que exista uma em uma distância maior. - O ranking
rank_*_densidadepode ser dominado por aglomerações pequenas e ultra-densas — combine sempre comporteeqtd_pdvspara evitar viés.
Pronto para testar?
Abra o playground interativo de Aglomerações Comerciais e teste com suas próprias coordenadas, filtros e rankings.
Abrir Playground