Changelog

Dated changes to what the data holds and what it means. The manifest's schema_version has been 1.0 throughout, although tables, columns and manifest fields were added under it. It becomes 1.1 with the first manifest published after the 2026-09-26 change, by a sweep or by curate.

The policy, in brief. An additive change, such as a new table, column or manifest field, keeps the major version and bumps the minor: nothing a client already reads changes. A breaking change, a column removed or retyped or a path moved, bumps the major version and is published side by side under a versioned prefix for a migration window. Read schema_version and refuse a major you do not recognise. The full policy is §6 of the contract.

2026-10-28

Made 2026-10-28. The first manifest callbase curate publishes after it is deployed reads schema_version 1.2; until then a manifest reads 1.1, as before.

  • schema_version 1.2, the second minor bump. Nothing a client already reads changes.
  • A checksum and byte count for each file: the manifest now lists a lower-case hex SHA-256 and a byte count beside accounts_path, accounts_text_path, profiles_path, index.submissions_path and quarters[].quorum.detail_path. A file that does not match is from a newer build than the manifest describes; read the manifest again and fetch again. Under 1.2 every path has both.
  • freshness.last_curate_run and last_curate_run_id: when callbase curate last completed its required publication work: every cycle built or carried, the index and every detail file. Sweep runs do not update these fields.
  • inventory.catalog_at and quarters[].counts_at: when the counts were read, so an older reading never replaces a newer one.

2026-09-26

Made 2026-09-26. The first manifest published after it is deployed, by a sweep or by callbase curate, reads schema_version 1.1. The quorum fields arrive with the first curate run: a sweep does not compute them, so a 1.1 manifest can briefly have none.

  • schema_version 1.1, the first minor bump. Nothing a client already reads changes.
  • Filing quorum in the manifest: quorum_policies, the named policies and their rule, and quarters[].quorum, each quarter's evidence and its status under each policy.
  • index/quorum: one row per credit union expected to file a quarter, keyed on cuid, with what became of it and its weight.

2026-09-22

  • Any HTTP client can read https://data.quartercall.com. Until now a request without a browser's User-Agent, curl and Python's requests among them, was refused.
  • The contract was read back against the data. A NULL accounts.account_value means published as text only when accounts_text has the row; the numeric Dropdown codes, 0 or 1, are in accounts; assets_prior_cycle on 2026Q2, the newest quarter when measured, is that quarter's own. No file changed: the documentation had described them wrongly.

2026-09-20

  • curated/profiles published: NCUA's Credit Union Profile, one row per winning filing, with the manifest's profiles_path, profile_rows and profiles_missing per quarter.
  • cuid added to curated/accounts and the submissions index: the key that survives a charter conversion.
  • The series begins at 2019Q1. 2018Q3 and 2018Q4 are no longer listed in the manifest or built.
  • quarters[].sealed and quarters[].authorized removed from the manifest. Both were false on every quarter and neither was ever described as live.
  • A quarter's files are rebuilt only when something they are built from changed, and every quarter once a week. accounts.ingested_at now says when the quarter's file was built.

2026-09-04

  • index/submissions.parquet published: every filing held, superseded ones included, with the manifest's index block.
  • curated/accounts_text published: the values that are not numbers, as filed, with the manifest's accounts_text_path.

2026-08-24

  • curated/accounts first published. schema_version 1.0 begins.

Contract schema 1.2 · docs built 2026-10-29 from platform 4894823