TRR Reseller Movement — Brazil Monthly Origin-Destination Volumes

One row is one month and reported product movement between origin and destination markets for Brazilian origin and destination state or region coverage in Brazil, with measured trr reseller movement and temporal coverage through 2026-05-01. The profiled table has 157,530 rows. Known limitation: Mixed granularity: current-series rows carry uf_origem/uf_destino (state level) while ~26% of rows (older/historical vintage) leave them null (region level only). Filter on uf_origem IS NULL vs NOT NULL to pick a single granularity before summing quantidade_de_produto_mil_m3.

anp-brazil-mdpg-trr·12 columns·971 KB·Creative Commons Attribution-NoDerivatives 3.0 Unported (site footer) plus ANP portal terms·updated 7d ago

Schema

dateDATE
yearINTEGER
monthINTEGER
agente_reguladoVARCHAR
codigo_do_produtoVARCHAR
nome_do_produtoVARCHAR
regiao_de_origemVARCHAR
uf_origemVARCHAR
regiao_de_destinoVARCHAR
uf_destinoVARCHAR
mercado_destinatarioVARCHAR
quantidade_de_produto_mil_m3DOUBLE

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"anp-brazil-mdpg-trr\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.