Saltar para o conteúdo
População sintética
Dados · versão 1.0.3

Posso usar estes dados?

Os microdados completos estão publicados, com a licença CC BY-NC 4.0. Esta página diz o que contêm, para que servem e para que não servem, como verificar os ficheiros e como citar.

pt-synthpop-v1.0.3.zip · 181,7 MB · GitHub

Que versão é esta?

Versão
pt-synthpop 1.0.3, datada de 5 de outubro de 2026 (publicada no GitHub a 6 de outubro de 2026)
Ano de referência
2021: gerada a partir dos Censos 2021 do INE.
Modelo
Motor v10, uma única execução. sha256 062e2ad784886b7287536233f853db151c57615d2b1a952fb2e12368581e76d3
Código
Commit 4bf0819 do código de empacotamento; o repositório ainda não é público.
Versões anteriores
A 1.0.3 substituiu três versões datadas de 5 de outubro (a 1.0.2 nunca chegou ao GitHub); a população gerada é a mesma em todas.
O que mudou entre as versões

A versão 1.0.3 substituiu as versões 1.0.0, 1.0.1 e 1.0.2, todas de 5 de outubro de 2026. A 1.0.0 aplicava às respostas do site limiares de lançamento que escondiam cerca de metade das respostas das freguesias; a 1.0.1 retirou-os, e cada freguesia passou a responder com os seus próprios números; a 1.0.2 passou as perguntas sobre agregados para os agregados privados e corrigiu a apresentação; a 1.0.3 corrigiu a coluna nuts2 dos microdados, que passou a seguir as regiões NUTS II de 2013. As pessoas e os agregados gerados são os mesmos nas quatro versões. Os ficheiros das versões 1.0.0 e 1.0.1 continuam no GitHub, como registo, na lista de versões; a 1.0.2 não chegou a ser publicada lá.

Posso usar e partilhar?

Sim, para fins não comerciais. A população sintética é publicada por estimador.pt com a licença CC BY-NC 4.0: podes usá-la, transformá-la e redistribuí-la para fins não comerciais, desde que incluas a atribuição indicada mais abaixo. A licença não cobre o uso comercial. Os dados do INE em que se baseia (quadros publicados e Ficheiro de Uso Público dos Censos 2021) são reutilizados com a licença CC BY 4.0 do INE. Não são microdados oficiais do INE.

Serve para…

  • Exploração demográfica descritiva.
  • Análise de agregados e da população em áreas pequenas, dentro das regras de qualidade publicadas.
  • Jornalismo e aplicações de dados cívicos.
  • Ensino e investigação reprodutível.
  • Cenários agregados e pós-estratificação (reponderar um inquérito para que bata com a população). Esta versão não publica incerteza (uma só execução): trata os números como pontuais.
  • Testar ferramentas que precisam de registos populacionais realistas, mas que não identificam ninguém.

Não serve para…

  • Identificar, localizar ou tomar decisões sobre pessoas reais.
  • Tratar uma linha sintética como uma pessoa, uma família ou uma morada.
  • Cruzamentos sem restrições em freguesias muito pequenas ou de qualidade fraca.
  • Conclusões sobre uma freguesia assentes em campos que não são ajustados por freguesia: ramo de atividade, profissão, local de trabalho, meio de transporte, regime de ocupação e divisões da casa (o dicionário de colunas diz quais são).
  • Conclusões causais sobre efeitos de políticas.
  • Prever comportamentos ou simular agentes sem um modelo próprio e validado.
  • Substituir as estatísticas oficiais dos Censos.
  • Decisões jurídicas, de crédito, de seguros, de emprego, policiais ou de elegibilidade.

Se, depois de ler esta página, concluíres que estes dados não servem o teu estudo, a visita valeu na mesma: é melhor saber agora do que depois de tirar conclusões.

O que é cada linha?

Pessoas e agregados gerados, não pessoas, famílias ou moradas reais.

Pessoas
10 340 441 linhas, uma por pessoa gerada, incluindo quem vive em alojamentos coletivos (is_institutional = 1, registos parciais).
Agregados
4 154 571 linhas, uma por agregado gerado. Cada alojamento coletivo conta como um agregado (is_institutional = 1). As perguntas do site sobre agregados contam só os agregados privados (is_institutional = 0).
Ligação
Pessoas e agregados ligam-se por (freguesia, synthetic_hh_id): o identificador do agregado só é único dentro de cada freguesia.

Que geografia cobre?

Freguesias
3 092 freguesias publicadas, nenhuma suprimida pelo tamanho. As pequenas levam um nível de qualidade em vez de serem retiradas.
Códigos
Códigos DICOFRE de 6 caracteres da CAOP 2021 (as freguesias dos Censos 2021). Oito códigos de Barcelos têm letras (0302FA a 0302FH): lê a coluna como texto, não como número. Junta tabelas pelo código (municipio), nunca pelo nome: os nomes do pacote vêm da geografia dos Censos 2021 do INE (por exemplo, «Calheta (R.A.M.)» e «Lagoa (R.A.A.)») e diferem dos do site (CAOP 2021), onde há dois concelhos chamados Lagoa.
Depois de 2025
Desde as eleições autárquicas de outubro de 2025 (Lei n.º 25-A/2025), 135 uniões de freguesias foram desagregadas em 302 freguesias. Esta versão usa as freguesias de 2021: para juntar dados posteriores (os resultados das autárquicas de 2025, a CAOP 2024 ou 2025), precisas de uma tabela de correspondência entre os códigos de 2021 e os atuais.
Regiões
A coluna nuts2 é a região NUTS II (2013) da freguesia. Até à versão 1.0.2 era um agrupamento por distrito; a 1.0.3 corrigiu-a (ver as erratas).
Concelhos
308 concelhos, com o código no formato DDCC00.
Partição
No pacote, os microdados estão divididos por distrito (os dois primeiros dígitos do código da freguesia), com uma cópia nacional consolidada.

Onde descarrego?

Os ficheiros estão numa versão publicada no GitHub, num repositório público de dados.

Ficheiros da versão
Ficheiro e conteúdoTamanho
pt-synthpop-v1.0.3.zipPacote completo: microdados por distrito e nacionais, qualidade, metadados, documentação e somas de verificação.181,7 MB
pt-synthpop-v1.0.3-persons.parquetPessoas, ficheiro nacional (Parquet).78,2 MB
pt-synthpop-v1.0.3-households.parquetAgregados, ficheiro nacional (Parquet).6,8 MB
pt-synthpop-v1.0.3-quality.csvQualidade: uma linha por freguesia (CSV).668 kB
pt-synthpop-v1.0.3-metadata.jsonMetadados: dicionário de colunas, mapas de códigos e proveniência (JSON).67 kB
checksums.sha256Somas SHA-256 de cada ficheiro do pacote.7 kB
SHA256SUMSSomas SHA-256 dos ficheiros publicados na versão.573 B

Primeiros passos

Três exemplos que ligam pessoas a agregados; o último reproduz um cartão do site. Como nas perguntas do site sobre agregados, ficam só os agregados privados (is_institutional = 0). Se publicares tabelas feitas com estes dados, segue as regras do site: diz o nível de qualidade de cada freguesia, lê com mais cuidado as categorias com poucas pessoas e as freguesias de nível C, e não faças ordenações nem comparações «mais do que» a partir de uma única execução.

-- DuckDB: pessoas por tamanho do agregado, numa freguesia
SELECT h.hh_size_bin, count(*) AS pessoas
FROM 'pt-synthpop-v1.0.3-persons.parquet' AS p
JOIN 'pt-synthpop-v1.0.3-households.parquet' AS h
  USING (freguesia, synthetic_hh_id)
WHERE p.freguesia = '060318'
  -- só agregados privados, como no site: os alojamentos coletivos
  -- (is_institutional = 1) contam como um agregado e quase todos caem em «5»
  AND h.is_institutional = 0
GROUP BY h.hh_size_bin
ORDER BY h.hh_size_bin;
# Python (pandas + pyarrow)
import pandas as pd

persons = pd.read_parquet("pt-synthpop-v1.0.3-persons.parquet")
households = pd.read_parquet("pt-synthpop-v1.0.3-households.parquet")

# synthetic_hh_id só é único dentro de cada freguesia
merged = persons.merge(
    households, on=["freguesia", "synthetic_hh_id"], suffixes=("", "_hh")
)

# só agregados privados, como no site (os alojamentos coletivos têm is_institutional = 1)
private = merged[merged["is_institutional_hh"] == 0]
-- DuckDB: reproduz um cartão do site, «Quantas pessoas com 65 ou mais anos vivem sozinhas?»
-- em Moreira de Cónegos (030831); deve dar 0,149, o 14,9% da página
SELECT avg(CASE WHEN h.hh_size = 1 THEN 1 ELSE 0 END) AS vivem_sozinhas
FROM 'pt-synthpop-v1.0.3-persons.parquet' AS p
JOIN 'pt-synthpop-v1.0.3-households.parquet' AS h
  USING (freguesia, synthetic_hh_id)
WHERE p.freguesia = '030831'
  AND p.age >= 65
  AND h.is_institutional = 0;

Que colunas tem?

O dicionário de colunas do ficheiro de metadados, em inglês, como lá está, com duas diferenças. Em 17 colunas, marcadas «texto revisto pelo site», a descrição foi reescrita: ou remetia para documentos internos do produtor, ou dizia o contrário da ficha do modelo e dos dados (por exemplo, que o ramo de atividade e a profissão são ajustados por freguesia, quando não são); onde os dois diferem, vale a do site, e o texto original continua no ficheiro. E três colunas de códigos (setor de atividade, escolaridade em cinco níveis e nuts2) não têm mapa de etiquetas em label_maps: o site dá-o aqui. As restantes etiquetas estão nesse mesmo ficheiro, em label_maps.

De onde vem cada coluna

G
Gerado. Produzido pelo modelo. Pode estar ajustado a uma tabela do INE por freguesia ou não; a descrição da coluna diz qual é o caso.
D
Derivado. Calculado a partir de outra coluna por uma regra fixa (um agrupamento, uma etiqueta). Tão fiável como a coluna de origem.
C
Tornado coerente. Recalculado depois de gerado para ser coerente com o resto do registo; por exemplo, o tamanho do agregado é o número das suas pessoas.
X
Geográfico. Atribuído a partir do código da freguesia (CAOP 2021). Um identificador, não um resultado do modelo.
key
Chave. Liga pessoas a agregados.
flag
Indicador. Um indicador 0/1.
Pessoas · 33 colunas
activity_sector_codeorigem D
Activity sector in four groups (1–4); employed only. Derived from the generated activity; the activity-sector table is one of the tables the population was fitted to.(texto revisto pelo site)Etiquetas (do site; o ficheiro ainda não as tem): 1 Setor primário (CAE A) · 2 Setor secundário (CAE B a F) · 3 Terciário social (CAE O a U, sem a divisão 95) · 4 Terciário económico (CAE G a N, e a divisão 95)
ageorigem G
Age in completed years, generated as a single year; for residents of collective quarters, drawn inside the published 5-year band.(texto revisto pelo site)
age_12grporigem D
Age band of INE 12868 (marital universe); null under 12.
age_15grporigem D
Age band of INE 12364/12880 ('Menos de 15 anos', ...).
age_5yorigem D
5-year band of age; '90 ou mais anos' tops it.
age_grouporigem D
‘0 - 14 anos’ if age < 15, else ‘15 e mais anos’, derived from age.(texto revisto pelo site)
age_union7origem D
Age band of INE 12375 (union universe); null under 15.
districtorigem X
2-digit district code; the Hive partition key (path only in shards).
education_levelorigem D
Portuguese label of education_level_code, regenerated from the code.
education_level_coarse5origem D
Education in 5 levels, from the leaf code.Etiquetas (do site; o ficheiro ainda não as tem): 1 Nenhum · 2 Ensino básico (1.º a 3.º ciclo) · 3 Ensino secundário · 4 Pós-secundário · 5 Ensino superior
education_level_codeorigem G
Highest completed education, 11 leaf codes (INE 12459).Etiquetas: label_maps.education_level_code
employment_statusorigem D
Portuguese label of employment_status_code, regenerated from the code.
employment_status_coarse3origem D
11 employed, 12 unemployed, 2 inactive (from the leaf code).
employment_status_codeorigem G
Condition towards work, 7 leaf codes (INE 12460).Etiquetas: label_maps.employment_status_code
freguesiaorigem X
6-character DICOFRE parish code of residence (CAOP 2021). Eight Barcelos codes contain letters (0302FA to 0302FH): read the column as text.(texto revisto pelo site)
freguesia_nameorigem X
Name of freguesia (CAOP lookup).
income_source_codeorigem G
Main source of livelihood (MEIOVIDA); null under 15.Etiquetas: label_maps.income_source_code
industry_sectionorigem G
CAE Rev. 3 section of the activity, A..U with S split into S_94_96 / S_95; employed only. Generated, and compared with INE’s per-parish employed × sex × industry table when scoring; not fitted to it (see the quality page).(texto revisto pelo site)Etiquetas: label_maps.industry_section
is_institutionalorigem flag
1 = resident of a collective living quarter, appended after the fit: sex and age from INE’s published counts, education imputed from similar records; employment status, marital status, nationality, religion and income source filled (null below the same ages as for everyone else). Null for every such resident: nucleus_id and the work columns sitprof_code, activity_sector_code, occupation_major, occupation_code, industry_section, work_location_type and transport_mode.(texto revisto pelo site)
marital_status_codeorigem G
Legal marital status (ESTCIVIL); null under 12.Etiquetas: label_maps.marital_status_code
municipioorigem X
6-digit município code (DDCC00).
municipio_nameorigem X
Municipality name from INE’s 2021 Census geography (e.g. ‘Calheta (R.A.M.)’, ‘Lagoa (R.A.A.)’), CAOP 2024.1 where INE has none. The site shows CAOP 2021 names: join on municipio, not on the name.(texto revisto pelo site)
nationality_grouporigem G
PT / Foreign (binary; no country).
nucleus_idorigem G
Family-nucleus membership inside the household: ‘0’ = in no nucleus, ‘1’..‘5’ = the person’s nucleus (a label, numbered by first appearance in age-descending member order; not a rank). Null for every resident of a collective living quarter (is_institutional = 1): read null as “no household nucleus recorded”, not as ‘0’. Known defect: INE’s nucleus has at least two members, and some generated nuclei have one. It does not identify couples: the release carries no partner link.(texto revisto pelo site)
occupation_codeorigem D
CPP 2010 3-digit minor group; employed only. Derived inside the generated occupation_major from INE table 12306’s per-parish × sex shares (else the município’s, else the national ones), so it rolls up to occupation_major exactly.(texto revisto pelo site)Etiquetas: label_maps.occupation_code
occupation_majororigem G
CPP 2010 major group (first digit of occupation_code); employed only. Generated, and compared with INE’s per-parish employed × sex × occupation table when scoring; not fitted to it (see the quality page).(texto revisto pelo site)
religion_grouporigem G
Religion group, 15+ universe.
sexorigem G
H = Homem (male), M = Mulher (female). M is FEMALE.
sitprof_codeorigem G
Status in employment (SITPROF); employed only.Etiquetas: label_maps.sitprof_code
synthetic_hh_idorigem key
The person's household: join on (freguesia, synthetic_hh_id).
transport_modeorigem G
Main means of transport to work or study (INE 12371 Dim5, '01'..'11'), or NR = travels, mode not reported; only for work_location_type 2-5. Generated.Etiquetas: label_maps.transport_mode
union_de_factoorigem G
Lives in a de-facto union: Yes / No.
work_location_typeorigem G
Place of work or study (INE 12369 Dim5): 1 at home, 2 this parish, 3 another parish of the município, 4 another município, 5 abroad, 6 no fixed place; employed and students only. Generated.Etiquetas: label_maps.work_location_type
Agregados · 17 colunas
accessibility_codeorigem G
Dwelling accessible to a wheelchair user (Census PUF ACESSO): 1 yes, 2 no. Bound per parish to INE’s dwelling-accessibility table (BGRI) and scored. Null where hh_tenure_code is.(texto revisto pelo site)Etiquetas: label_maps.accessibility_code
districtorigem X
2-digit district code (first two digits of freguesia). The Hive partition key: in the partitioned shards it is in the path only.
freguesiaorigem X
6-character DICOFRE parish code of residence (CAOP 2021). Eight Barcelos codes contain letters (0302FA to 0302FH): read the column as text.(texto revisto pelo site)
freguesia_nameorigem X
Name of freguesia (CAOP lookup).
hh_rooms_binorigem D
n_divisions at the grain INE publishes per parish: 1_2, 3_4, 5+.(texto revisto pelo site)Etiquetas: label_maps.hh_rooms_bin
hh_sizeorigem G/C
Number of residents (= the household's person rows).
hh_size_binorigem D
hh_size top-coded at 5 ('5' = 5 or more).
hh_tenure_codeorigem G
Tenure (regime de ocupação) in INE table 12498’s vocabulary: 1 owner or co-owner, 3 tenant or sub-tenant, 4 other (a one-to-one recode of the Census PUF’s COND_OCUP). Null outside habitual classical dwellings (a small share of private households) and for collective living quarters. Published but not fitted per parish: villages overstate renters.(texto revisto pelo site)Etiquetas: label_maps.hh_tenure_code
hh_type_toporigem D
Household type by number of family nuclei: 1 none, 2 one, 3 two, 4 three or more. Derived from n_nuclei when the release is packaged, so a household and its persons always agree. Null for collective living quarters.(texto revisto pelo site)Nota do site: a resposta «Que famílias formam?» foi calculada antes do empacotamento final dos microdados e pode diferir ligeiramente do que se obtém desta coluna; o produtor vai corrigi-la.Etiquetas: label_maps.hh_type_top
is_institutionalorigem flag
1 = a collective-dwelling container for the institutional residents appended after the fit from INE's published counts; 0 = a private household.
municipioorigem X
6-digit município code (DDCC00).
municipio_nameorigem X
Municipality name from INE’s 2021 Census geography (e.g. ‘Calheta (R.A.M.)’, ‘Lagoa (R.A.A.)’), CAOP 2024.1 where INE has none. The site shows CAOP 2021 names: join on municipio, not on the name.(texto revisto pelo site)
n_divisionsorigem G
Rooms (divisões) of the dwelling, ‘1’..‘10’ where ‘10’ = 10 or more. Same universe and null set as hh_tenure_code. Not fitted per parish.(texto revisto pelo site)
n_nucleiorigem D
Number of distinct family nuclei (INE núcleo familiar) among the household's own persons, counted from nucleus_id at packaging. Null for institutional containers.
nuts2origem X
NUTS II (2013) region code of residence.Etiquetas (do site; o ficheiro ainda não as tem): 11 Norte · 15 Algarve · 16 Centro · 17 Área Metropolitana de Lisboa · 18 Alentejo · 20 Região Autónoma dos Açores · 30 Região Autónoma da Madeira
residents_per_roomorigem D
hh_size / n_divisions (with '10' read as 10). Null where n_divisions is.
synthetic_hh_idorigem key
Household id, unique only within a parish: join persons on (freguesia, synthetic_hh_id).

Quão bons são os dados de cada freguesia?

O ficheiro de qualidade tem uma linha por freguesia, com a sua população de publicação e o seu nível. Lê-o antes de usar uma freguesia isolada: abaixo de 500 residentes nenhuma chega ao nível A ou B.

  • Qualidade A776 freguesias
  • Qualidade B705 freguesias
  • Qualidade C1 611 freguesias

O que diz cada coluna do ficheiro de qualidade

O ficheiro quality.csv, que o README do pacote manda ler primeiro. Origem: INE (contagem publicada), gerado (contado na população gerada), avaliação (medido contra as tabelas do INE) ou geográfico.

freguesiaGeográfico
Código DICOFRE da freguesia (6 caracteres, CAOP 2021). Lê-o como texto.
freguesia_nameGeográfico
Nome da freguesia, em maiúsculas.
municipio, municipio_nameGeográfico
Código do concelho (DDCC00) e nome segundo o INE (2021).
district, nuts2Geográfico
Distrito (2 dígitos) e região NUTS II de 2013 (corrigida na 1.0.3).
populationGerado
Pessoas geradas na freguesia, incluindo quem vive em alojamentos coletivos. Somadas, dão as pessoas da versão.
census_populationINE
Residentes segundo o INE (o total da tabela por sexo e idade dos Censos 2021). É a contagem que o site mostra como «residentes (INE)».
publication_populationAvaliação
A menor das duas contagens anteriores: é a que decide os limiares de 500 e 2 000 residentes dos níveis. population e census_population não coincidem em todas as freguesias (a população gerada não reproduz exatamente o total do INE; os números estão abaixo da tabela); o pacote não regista a razão freguesia a freguesia.
n_householdsGerado
Agregados gerados, contando cada alojamento coletivo como um. Não é a contagem de agregados privados do INE.
n_institutional_personsGerado
Pessoas em alojamentos coletivos, acrescentadas a partir das contagens do INE.
pct_children_u15Gerado
Proporção (de 0 a 1) de pessoas geradas com menos de 15 anos.
quality_tierAvaliação
Nível de qualidade: A, B ou C.
person_srmse_medianAvaliação
Erro típico da freguesia: a mediana dos 12 erros (SRMSE) das tabelas de pessoas do ajuste, um por tabela (0 seria igual às tabelas). É o primeiro critério dos níveis. Não é o «erro do ajuste» do gráfico por tamanho da página de qualidade, que junta todas as células das 12 tabelas: as medianas por classe dos dois não coincidem.
worst_constraint, worst_constraint_srmseAvaliação
A tabela de pessoas com o maior erro e esse erro (o segundo critério dos níveis), contando também a idade ano a ano. Na maior parte das freguesias é a idade ano a ano (srmse_p_age_single). Que tabela é cada código: abaixo da tabela.
suppression_reasonVersão
Vazio em todas as freguesias: nenhuma é suprimida.
fallback_geographyVersão
Nas freguesias de nível C, o código do concelho, para quem preferir agregar ao concelho. O site não o usa: todas as freguesias respondem com os seus próprios números.
engine, model_version, run_dateVersão
O motor, a versão do modelo e a data da execução.

O total gerado nem sempre é o do INE: em 762 freguesias difere, entre 119 pessoas a menos e 30 a mais; no país, são 2 625 pessoas a menos (10 340 441 geradas, contra 10 343 066 residentes segundo o INE). Os níveis de qualidade usam a menor das duas contagens, a contagem de publicação.

Que tabela é cada código de worst_constraint
srmse_p_age5
Idade (grupos de 5 anos)
srmse_p_marital
Estado civil
srmse_p_educ
Escolaridade
srmse_p_labour
Condição perante o trabalho
srmse_p_income
Principal meio de vida
srmse_p_labour3_educ5
Trabalho × escolaridade
srmse_p_labour3_income
Trabalho × principal meio de vida
srmse_p_nat
Nacionalidade
srmse_p_religion
Religião
srmse_p_sitprof
Situação na profissão
srmse_p_sector
Setor de atividade (quatro grandes grupos)
srmse_p_union
União de facto
srmse_p_age_single
Idade ano a ano

Como sabemos que funciona?

Como verifico os ficheiros?

A soma SHA-256 da lista de somas do pacote (checksums.sha256) é 0992bcfec9595df4fc2102349a6692e570ebc4322377e85438d795dc5a4ab8d8. Se coincidir, cada ficheiro do pacote pode ser verificado contra essa lista.

# 1. Os ficheiros descarregados, contra SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

# 2. O conteúdo do pacote, na pasta que contém checksums.sha256
sha256sum -c checksums.sha256

# 3. A lista de somas é a publicada: deve imprimir
# 0992bcfec9595df4fc2102349a6692e570ebc4322377e85438d795dc5a4ab8d8
sha256sum checksums.sha256

No macOS, usa shasum -a 256 em vez de sha256sum.

Como cito?

A licença CC BY-NC 4.0 pede atribuição em qualquer uso. Ao redistribuir os dados (os ficheiros, ou tabelas tiradas deles), inclui a atribuição completa abaixo. Numa notícia, num gráfico ou num cartão, basta a forma curta, com uma ligação para esta página:

Fonte: INE, Censos 2021 (CC BY 4.0) · informação modificada por estimador.pt (CC BY-NC 4.0)

Atribuição em português

Fonte: Instituto Nacional de Estatística, IP – Portugal (Recenseamento Geral da População e Habitação — Censos 2021; período de referência: 2021). Informação modificada: os dados aqui publicados são uma população sintética gerada por estimador.pt a partir das distribuições marginais publicadas e do Ficheiro de Uso Público (FUP) dos Censos 2021, informação do INE reutilizada ao abrigo da licença CC BY 4.0; não constituem microdados oficiais do INE e o INE não é responsável pelo seu conteúdo. A população sintética é publicada por estimador.pt ao abrigo da licença CC BY-NC 4.0 (Atribuição-NãoComercial 4.0 Internacional).

Atribuição em inglês

Source: Instituto Nacional de Estatística, IP – Portugal (2021 Population and Housing Census; reference period: 2021). Modified information: this is a synthetic population produced by estimador.pt from the Census 2021 published marginals and Public Use File (FUP), INE information reused under the CC BY 4.0 licence; it is not official INE microdata and INE is not responsible for its content. The synthetic population is published by estimador.pt under the CC BY-NC 4.0 licence (Attribution-NonCommercial 4.0 International).

Citar como

estimador.pt, População Sintética de Portugal v1.0.3 (2026), CC BY-NC 4.0. https://github.com/estimadorpt/pt-synthpop/releases/tag/v1.0.3

CITATION.cff (v1.0.3)

A ligação da citação é a página da versão no GitHub, que não muda. Ainda não há DOI.

Encontraste um erro?

As correções a esta versão ficam registadas nas erratas. Para reportar um problema, abre uma questão no GitHub ou escreve para info@estimador.pt. A ficha do modelo tem a descrição técnica completa.

Como foi feita a população