Skip to content

comparacao_anual_anec v1.0

Comparison of monthly volumes for the two years published in the same ANEC edition.

Source

Priority Source Method
1 ANEC PDF (anec.comparacao_anual)

Requires pip install agrobr[pdf]. See the source documentation.

Schema

Column Type Description
mes int Month (1–12)
produto str Canonical product or total_products aggregate
ano_base int Baseline year
ano_comparacao int Comparison year
valor_base_ton Float64, nullable Baseline monthly volume, in tonnes
valor_comparacao_ton Float64, nullable Comparison monthly volume, in tonnes
eh_estimativa bool Estimate flag applying to ano_comparacao
ano_relatorio int Selected report edition year
semana_relatorio int Report edition week (1–53)
edicao_id str ANEC article cuid
publicado_em datetime UTC Article created_at
revisado_em datetime UTC Source file media_updated_at

Primary key: [edicao_id, revisado_em, ano_base, ano_comparacao, mes, produto].

The key preserves separate editions and revisions when appending report snapshots. revisado_em is the file update timestamp supplied by ANEC; it need not be later than the article creation time. Nullable columns always exist, even when their values are missing.

Meaning and limits

Years come from the published table; the call's ano selects the edition, not a historical interval. eh_estimativa applies only to the comparison-year value. Missing values remain null. total_products is a published aggregate: do not add it to the individual products again. Products and aggregate availability vary by edition.

Products

ANEC code (produto) Product agrobr name
soybean soybeans soja
soybean_meal soybean meal farelo_soja
maize corn milho
wheat wheat trigo
sorghum sorghum sorgo
ddgs DDGS (distillers dried grains) none
total_products published table total none

produto keeps the ANEC code in English. The agrobr name is the canonical one in normalize.crops, the same as in exportacao and estimativa_safra; normalizar_cultura converts each code into the name in the table, and ddgs stays as it is.

Parameters

async def comparacao_anual_anec(
    *,
    ano: int,
    semana: int | None = None,
    produto: str | None = None,
    use_cache: bool = True,
    as_polars: bool = False,
    return_meta: bool = False,
) -> pd.DataFrame | tuple[pd.DataFrame, MetaInfo]: ...

All arguments are keyword-only. ano is required and selects the report edition year, from 2026 through the current year. Annual categories are discovered in the official catalogue; an explicit year without publication raises SourceUnavailableError without returning another year's edition. semana=None selects the latest available report in that catalogue. produto=None returns all available products; aliases such as soja and milho are accepted. produto="total_products" selects the published aggregate when present.

Example

as_polars=True returns a Polars DataFrame and requires pip install agrobr[polars].

from agrobr import datasets

df, meta = await datasets.comparacao_anual_anec(
    ano=2026, semana=34, produto="soja", return_meta=True
)
print(df.head())
print(meta.source_url)

JSON schema

agrobr/schemas/comparacao_anual_anec.json, also available through get_contract("comparacao_anual_anec").

License

zona_cinza: public reports without explicit public reuse terms located. The first ANEC call emits a warning. Commercial use or redistribution may require ANEC authorization; publication on the website does not establish permission for commercial redistribution.

Reading the bulletins

Every month and product actually published is returned: edition 04 has no annual sorghum panel. Total Products is a separate series; annual totals and difference bars do not become months. January wheat and DDGS may differ from the monthly table in the same PDF; the published tables are not forced to agree.