FI Industry
Open-ended investment funds are the overwhelming majority of the Brazilian fund industry by net assets, and the only family that reports daily — so this is the one place on the site where flows can be watched as they happen rather than one to two months in arrears.
Two things this page cannot tell you.
- The portfolio book comes from CDA block 1 only (government bonds and repo), so it is not the whole fund book: stocks, fund quotas and debentures are other blocks.
- The investor split comes from PERFIL, most of whose holder-count columns are not lifted by the field map. The coverage tiles state how much resolves before any chart is drawn from it.
Industry Net Assets (R$bn)
Funds Reporting
Quotaholder Positions
Net Flow, Latest Month (R$bn)
Latest Month
Industry Net Assets — 36 Months
industry_aum_trend(['fi'], …). Months the industry has not published yet come back empty rather than being carried forward. The same series alongside the other four families is on Industry Structure.
Daily Flow — Last 120 Days
sum(captc_dia) − sum(resg_dia)per business day over a bounded window ofcvm_fi_diario, aggregated in Postgres — the raw table is multi-GB and is never selected row-by-row. Holidays and non-reporting days appear as gaps, not zeros.
Quotaholder Base
Headcount from
quotaholder_trend('fi', …), i.e.nr_cotston the daily file. This is independent of the PERFIL class split below and is the reliable "how many investors" series. It counts positions, not people: one investor holding three funds appears three times.
Investor Mix — Retail vs Institutional
Funds in Latest PERFIL File
…with an Investor Split
…with a Largest-Holder Share
PERFIL Period
Coverage first. The
nr_cotst_*holder buckets are declared oncvm_fi_perfilbut not lifted by the perfil field map, so they sit in the residualrawJSONB. Every query here reads the typed column, falls back to the raw CVM key, and leaves NULL when neither resolves. If the two tiles above read zero, the charts are empty because the data is not lifted yet — nothing was estimated to fill the space."Retail" here is a modelled subset, not the retail base. The split sums seven buckets and excludes CVM's mass-retail individual bucket (
NR_COTST_PF_VAREJO), so the retail count and share are both understatements by construction. Use the quotaholder series above for "how many investors"; use this one only for the direction of the mix.
Single-Holder Concentration Screen
A fund whose largest quotaholder owns most of the net assets behaves like a managed account: one redemption decision can unwind it.
pr_patrim_liq_maior_cotstis a CVMPR_field and the parser deliberately does not rescale it (fraction vs percent varies by file), so the column is in source units — read it as a ranking, and check the raw file before quoting a percentage. Ordered by that share, then by size.This is the FI counterpart of the captive-vehicle screen for FIIs on Suspicious Deal Screens; both look for a vehicle with one investor behind it.
Portfolio Allocation
From
cvm_fi_cda, CDA block 1 only: government bonds and repo, one row per bond, summed. Not the whole fund book (stocks, fund quotas and debentures are other blocks). The chart ends at the last month whose CDA filing is complete: CVM files the newest months thin and fills them in late (2026-06 had about 60% of the usual funds, issue #476), and drawing them would read as a fall. Top eight asset types shown individually, the rest bucketed.
Application types below are at the latest complete CDA period, on the same block 1 scope.
Share of Observed CDA Totalis a share of what was observed, not of the industry's actual book.
Largest FI Funds
fund_ranking('fi', 'aum', …)joined todim_fundfor the label. The ranking function returns no name of its own; wherecvm_fund_registryhas not populated one, the CNPJ is shown rather than a guess. Per-fund history and the full searchable universe are on Fund Explorer; how these funds ranked on return rather than size is on Performance.
