Skip to main content
Parameters, response columns and types are generated from the SQL catalog and render under Endpoints → Coverage & catalog in the sidebar. This page carries what a schema cannot: the conventions, the nulls that are deliberate, and the traps.

Overview

coverage answers how far the data actually goes. Call it before reporting a “latest” figure, before reading an empty result as a fund that stopped filing, and before treating a series as up to date. No arguments; one row per dataset, plus one funds_<family> row per fund family (families file on different cadences, so one blended date misreads all of them).

The five columns

landed_at is “is the pipeline healthy”; as_of is “how far does the data go”. A days-old landed_at with a current as_of means ingest stopped but the data it left is fine. Diff landed_git_sha against a fix you are waiting on to know whether the newest rows were parsed before or after it.

Datasets

Not covered: fund_holdings and fund_debentures have no row yet; read the newest period off the rows themselves. notes carries a caveat the dates cannot and is null when there is none. Rows with one today: funds_fidc (the 2020-11 delinquency regime break), funds_fip (why newest_period runs ahead of the calendar), fund_nav (see catalog().applicability), the four FIDC concentration rows, the two FIDC structure rows, the five B3 lending / flow rows (the ratchet), the two inflation rows, company_events, and macro_series / ptax (units and cadences).

Example

Notes

  • The dates are supposed to differ. B3 quotes arrive daily; CVM fund filings lag one to two months. A fund_nav date two months behind quotes is normal.
  • Read the funds_<family> rows before a window claim. complete_through is what an omitted p_to clamps to. funds and fund_nav carry the blended value, the most lagging family’s bound.
  • derivatives and quotes are reported separately though they share a COTAHIST file: the segments can land independently. Check derivatives before claiming an option chain is current.
  • fund_nav.as_of is a month key: 2026-06-01 means the June 2026 period.
  • These are dataset-wide maxima, not per-instrument. An individual fund can be months behind while still filing normally; use fund_profile’s last_period.
  • A window past a dataset’s as_of is not an error. It returns nothing for the months that do not exist yet; the API never extends a series.

Regime boundaries

complete_through tells you where a series ends, not where it changes meaning. That is notes, and machine-readably catalog().regime_breaks (dataset, column, boundary, before, after, never). Today’s boundary is FIDC delinquency at 2020-11: filed from 2013-01, but null before 2020-11 for a fund with no tab VI row that month, and on every row from 2020-11. Counting reporting funds across it, or reading its nulls as zero, manufactures a move the funds never made. Check it before differencing any fund series.

metric_coverage

metric_coverage answers does this family file this metric at all, and since when?
Note: an absent pair is not-applicable, not late. Only pairs with at least one filed value appear (("fip", "quotaholders") is missing because FIP never files it). Use metric_coverage rather than inferring a start date from nulls in a series, which is how a format change gets read as a credit event. It is measured off the warehouse on every refresh, so catalog().metrics.<m>.coverage points here rather than carrying a date.

Errors

No arguments to get wrong. 401 means the key headers are missing; 404 (PGRST202) means you sent arguments to a function that takes none.