Skip to main content
BR-ACC models 58+ entity types across multiple domains: political, corporate, financial, legal, and international.

Core Entities

Person

Represents individual people in Brazilian public records.
Unique Identifier: cpf (CPF number, 11 digits)Common Properties:
  • name (string): Full name in uppercase
  • cpf (string): Full CPF if available
  • cpf_partial (string): Last 3 digits + first 3 digits for partial matching
  • cpf_middle6 (string): Middle 6 digits for fuzzy matching
  • uf (string): Brazilian state code
  • municipio (string): Municipality name
  • is_pep (boolean): Politically Exposed Person flag
  • patrimonio_declarado (float): Declared wealth in BRL
  • sq_candidato (string): TSE candidate ID
  • deputy_id (string): Chamber of Deputies ID
  • servidor_id (string): Public servant ID
  • author_key (string): Congressional author key
Indexes: name, name + uf, cpf_middle6, cpf_partial, deputy_id, servidor_id, sq_candidato, author_keyExample Cypher:
MATCH (p:Person {cpf: '12345678900'})
RETURN p.name, p.uf, p.is_pep, p.patrimonio_declarado

Partner

Represents company partners from CNPJ records (Receita Federal data).
Unique Identifier: partner_id (synthetic ID)Common Properties:
  • name (string): Partner name
  • doc_partial (string): Partial document number for privacy
  • doc_raw (string): Original document format
  • qualificacao (string): Partner role (e.g., “Administrador”, “Sócio”)
  • data_entrada (date): Date joined company
  • percentual_capital (float): Ownership percentage
  • pais (string): Country code
Indexes: name, doc_partial, name + doc_partialNote: Partner entities are separate from Person entities to handle cases where full CPF is not available. Use SAME_AS relationships to link confirmed matches.Example Cypher:
MATCH (p:Partner)-[:SOCIO_DE]->(c:Company)
WHERE p.percentual_capital > 50
RETURN p.name, c.razao_social, p.percentual_capital

Company

Represents legal entities registered with CNPJ.
Unique Identifier: cnpj (CNPJ number, 14 digits)Common Properties:
  • cnpj (string): Full CNPJ
  • razao_social (string): Legal name
  • nome_fantasia (string): Trade name
  • cnae_principal (string): Primary CNAE industry code
  • cnae_secundario (string): Secondary CNAE codes
  • capital_social (float): Registered capital in BRL
  • uf (string): State
  • municipio (string): Municipality
  • situacao_cadastral (string): Registration status
  • data_abertura (date): Incorporation date
  • porte (string): Company size (ME, EPP, etc.)
Indexes: razao_social, cnae_principalExample Cypher:
MATCH (c:Company)
WHERE c.cnae_principal STARTS WITH '4120' // Construction
  AND c.capital_social > 1000000
RETURN c.razao_social, c.capital_social, c.uf
ORDER BY c.capital_social DESC
LIMIT 10

Government Entities

Contract

Public procurement contracts from federal sources (PNCP, Portal da Transparência).
Unique Identifier: contract_id (synthetic ID)Common Properties:
  • contract_id (string): Unique contract ID
  • object (string): Contract description
  • value (float): Contract value in BRL
  • date (date): Signature date
  • contracting_org (string): Government entity
  • contracting_org_cnpj (string): Entity CNPJ
  • modality (string): Procurement modality
  • status (string): Contract status
  • pncp_contract_id (string): PNCP source ID
Indexes: value, object, contracting_org, dateExample Cypher:
MATCH (co:Company)-[:VENCEU]->(c:Contract)
WHERE c.contracting_org CONTAINS 'SAUDE'
  AND c.date >= date('2024-01-01')
RETURN co.razao_social, c.object, c.value, c.date
ORDER BY c.value DESC

Amendment

Congressional budget amendments (emendas parlamentares).
Unique Identifier: amendment_idCommon Properties:
  • amendment_id (string)
  • type (string): Amendment type (Individual, Bancada, Comissão)
  • function (string): Budget function (e.g., “Saúde”, “Educação”)
  • municipality (string): Beneficiary municipality
  • uf (string): State
  • value_committed (float): Committed value in BRL
  • value_paid (float): Paid value in BRL
  • year (int): Budget year
Indexes: function, value_committedExample Cypher:
MATCH (p:Person)-[:AUTOR_EMENDA]->(a:Amendment)
WHERE a.uf = 'SP' AND a.year = 2024
RETURN p.name, a.function, a.value_committed, a.municipality
ORDER BY a.value_committed DESC

Sanction

Administrative sanctions from CEIS, CNEP, and other registries.
Unique Identifier: sanction_idCommon Properties:
  • sanction_id (string)
  • type (string): Sanction type (CEIS, CNEP, etc.)
  • date_start (date): Start date
  • date_end (date): End date
  • reason (string): Infraction description
  • source (string): Data source
  • sanctioning_body (string): Entity that imposed sanction
Indexes: type, date_startExample Cypher:
MATCH (c:Company)-[:SANCIONADA]->(s:Sanction)
WHERE s.date_end >= date()
RETURN c.razao_social, s.type, s.reason, s.date_start, s.date_end

PublicOffice

Public sector employment records.
Unique Identifier: office_idCommon Properties:
  • office_id (string)
  • cpf (string): Office holder CPF
  • name (string): Office title
  • org (string): Government organization
  • salary (float): Monthly salary in BRL
  • role (string): Position role
Indexes: orgExample Cypher:
MATCH (p:Person)-[r]->(po:PublicOffice)
WHERE po.salary > 20000
RETURN p.name, po.name, po.org, po.salary
ORDER BY po.salary DESC

Election

Electoral contests from TSE data.
Unique Identifier: Composite (year + cargo + uf + municipio)Common Properties:
  • election_id (string)
  • year (int): Election year
  • cargo (string): Office (PRESIDENTE, GOVERNADOR, PREFEITO, etc.)
  • uf (string): State
  • municipio (string): Municipality
  • turno (int): Round (1 or 2)
Indexes: year, composite year + cargo + uf + municipioExample Cypher:
MATCH (p:Person)-[:CANDIDATO_EM]->(e:Election {year: 2022, cargo: 'PRESIDENTE'})
RETURN p.name, p.sq_candidato

Financial Entities

Unique ID: finance_idFinancial transactions and allocations.Properties: type, value, date, source, recipient, programIndexes: type, value, date, source
Unique ID: expense_idCongressional expense reimbursements (Cota Parlamentar).Properties: deputy_id, date, type, value, supplier, descriptionIndexes: deputy_id, date, type
Unique ID: expense_idGovernment corporate card expenses.Properties: date, value, holder, supplier, descriptionIndexes: date, value
Unique ID: waiver_idTax exemptions and incentives.Properties: value, beneficiary, type, year, programIndexes: value
Unique ID: fund_cnpjInvestment funds (CVM data).Properties: fund_cnpj, fund_name, fund_type, administrator, inception_dateIndexes: fund_name, fund_type

Compliance & Risk Entities

Unique ID: embargo_idEnvironmental embargoes (IBAMA).Properties: uf, biome, area_hectares, date, infraction, statusIndexes: uf, biome
Unique ID: pas_idCVM administrative proceedings.Properties: pas_id, date, accused, status, penaltyIndexes: date
Unique ID: penalty_idCentral Bank penalties.Properties: penalty_id, penalty_type, decision_date, penalized_entity, valueIndexes: penalty_type, decision_date
Unique ID: case_idLegal proceedings.Properties: case_id, type, date, court, parties, statusIndexes: type, date
Unique ID: idFederal police investigations.Properties: id, name, status, start_date, description

Transparency & Oversight

Unique ID: convenio_idFederal grants and agreements.Properties: convenio_id, convenente (recipient), date_published, value, object, statusIndexes: date_published
Unique ID: bid_idPublic procurement bids.Properties: bid_id, date, modality, status, object, orgIndexes: date, modality
Unique ID: act_idOfficial Gazette (Diário Oficial da União) acts.Properties: act_id, date, act_type, text, sectionIndexes: date, act_type
Unique ID: inquiry_id / cpi_idCongressional inquiries and parliamentary commissions.Properties: name, house (Câmara/Senado), kind, date_start, date_end, statusIndexes: name, kind + house, date_start

International & PEP

Unique ID: offshore_idOffshore entities from leak databases (Panama Papers, Paradise Papers, etc.).Properties: offshore_id, name, jurisdiction, incorporation_date, status, source_datasetIndexes: name, jurisdiction
Unique ID: offshore_officer_idOfficers of offshore entities.Properties: offshore_officer_id, name, countryIndexes: name
Unique ID: pep_idInternational politically exposed persons.Properties: pep_id, name, country, role, sourceIndexes: name, country
Unique ID: sanction_idUN, OFAC, EU sanctions.Properties: sanction_id, name, source (UN/OFAC/EU), date, reason, entity_typeIndexes: source
Unique ID: pep_idBrazilian PEP records (CGU).Properties: pep_id, name, cpf, role, org, start_date, end_dateIndexes: name, role, org

Sector-Specific Entities

Unique ID: cnes_codeHealthcare facilities (CNES).Properties: cnes_code, name, uf, municipio, atende_sus (serves public health), typeIndexes: name, uf, municipio, atende_sus
Unique ID: school_idEducational institutions (INEP).Properties: school_id, name, uf, municipio, type, network (public/private)Indexes: name
Unique ID: stats_idLabor market statistics (RAIS/CAGED).Properties: stats_id, uf, cnae_subclass, year, avg_salary, employment_countIndexes: uf, cnae_subclass
Unique ID: movement_idLabor movement records (admissions/terminations).Properties: movement_id, movement_date, movement_type, uf, establishment_idIndexes: movement_date, movement_type, uf

Municipal Data

Unique ID: finance_idMunicipal finance data (SICONFI).Properties: finance_id, cod_ibge, year, revenue, expense, balanceIndexes: year, cod_ibge
Unique ID: municipal_bid_idMunicipal procurement bids (Querido Diário, PNCP).Properties: municipal_bid_id, published_at, modality, municipality, ufIndexes: published_at
Unique ID: municipal_contract_idMunicipal contracts.Properties: municipal_contract_id, signed_at, value, object, municipality, ufIndexes: signed_at
Unique ID: municipal_gazette_act_idMunicipal gazette publications (Querido Diário).Properties: municipal_gazette_act_id, published_at, text, municipality, ufIndexes: published_at

Metadata & System Entities

Unique ID: doc_idSource data provenance tracking.Properties: doc_id, source_id, url, published_at, retrieved_at, formatIndexes: source_id, published_at, retrieved_at
Unique ID: run_idETL pipeline execution logs.Properties: run_id, source_id, status, started_at, ended_at, records_processed, errorsIndexes: source_id, status, started_at
Unique ID: violation_idData quality tracking for temporal anomalies.Properties: violation_id, source_id, event_date, violation_type, descriptionIndexes: source_id, event_date
Unique ID: emailUser accounts for API access.Properties: email, password_hash, role, created_at

Special Entities

Unique ID: holding_idCorporate holding relationships.Properties: holding_id, relationship_type, ownership_percentage
Unique ID: membership_idPolitical party affiliations.Properties: membership_id, party, uf, entry_date, exit_dateIndexes: party, uf
Unique ID: asset_idElectoral asset declarations (TSE).Properties: asset_id, asset_type, asset_value, election_year, descriptionIndexes: asset_type, asset_value, election_year
Unique ID: judicial_case_idJudicial proceedings.Properties: judicial_case_id, case_number, court, type, statusIndexes: case_number
Unique ID: travel_idGovernment official travel records.Properties: travel_id, start_date, end_date, destination, purpose, costIndexes: start_date
Unique ID: expulsion_idNGO expulsions and debarments.Properties: expulsion_id, date, reason, entityIndexes: date
Unique ID: ngo_idBarred non-governmental organizations.Properties: ngo_id, cnpj, name, reason, dateIndexes: cnpj
Unique ID: leniency_idCorporate leniency agreements.Properties: leniency_id, date, entity, amount, termsIndexes: date
Unique ID: requirement_idCongressional inquiry document requests.Properties: requirement_id, date, inquiry_id, target, statusIndexes: date
Unique ID: session_idCongressional inquiry hearings.Properties: session_id, date, inquiry_id, attendees, summaryIndexes: date
Unique ID: municipal_item_idLine items in municipal bids.Properties: municipal_item_id, bid_id, description, quantity, unit_value

Fulltext Search Index

All major entity types are included in the entity_search fulltext index for fast text search:
CALL db.index.fulltext.queryNodes(
  'entity_search', 
  'silva AND construcao'
) YIELD node, score
RETURN node, score
ORDER BY score DESC
LIMIT 10
Indexed fields: name, razao_social, cpf, cnpj, doc_partial, object, text, description, case_number, and more.

Next Steps

Relationships

Explore how entities connect to each other

Schema Reference

View complete Neo4j constraint and index definitions

Build docs developers (and LLMs) love