2026-10-06 · Praise feed, and the text of contributions

Added

  • Each month has praise.json: the thank-yous posted in 💝praise, newest first, in the same shape as contributions.json (who, whom they mentioned, when, the text, reactions, photos). Bots and empty messages are left out.
  • contributions.json and praise.json now carry the message content (mentions as @Name, Discord codes resolved, IBANs and personal emails masked), reactions with each emoji and count, and the avatarUrl of authors and mentions.
  • latest/public/praise.json covers the last 60 days. Both channels are public by the community's choice.

Source: chb 3.34.1.

2026-10-06 · Members from Odoo subscriptions

Changed · breaking

  • members.json now follows the Odoo subscriptions (Stripe only for members not yet on one).
  • Each member's status is active, grace (unpaid or paused, still a member until graceEndsAt, 15 days at most) or lapsed; Stripe's raw statuses (past_due, canceled, …) are no longer used. statusSince says since when.
  • summary.activeMembers counts members in good standing (active + grace); new graceMembers and lapsedMembers.
  • The public file names organisation members only (organizationName); individuals are counted, and named only in the members tier.

Source: chb 3.32.1, website #141.

2026-10-06 · Members are back

Fixed

  • Every month's members.json had been empty since 2 October (the membership data was not being fetched). It is restored for the whole history, and active subscriptions count in every month they were active.
  • No members.json is written for months that have not started.

Source: chb 3.31.3, website #139.

2026-10-06 · Photos from the potluck, heartbeat and park cleaning

Added

  • Photos posted in #potluck, #heartbeat and #park-cleaning are now public, like #contributions and #general: in images.json and YYYY/MM/public/images/.

Source: chb 3.31.0.

2026-10-05 · New room prices

Changed

  • rooms.md: Ostrom €130, Satoshi €60, Mush Room €40, Angel €50 per hour, excluding VAT.

Source: chb 3.28.1, website #134.

2026-10-05 · Tokens issued

Added

  • Each month has tokens-issued.json: every community token minted, with when, how many, to whom (Discord name) and why (from the token bot's annotation). latest/public/tokens-issued.json covers the last 60 days.
  • No wallet addresses or transaction ids are published.

Source: chb 3.28.0.

2026-10-04 · Contributions feed

Added

  • Each month has contributions.json: the #contributions messages, newest first, with who posted, who was mentioned (thanked), when, reactions and the public photos. No message text.
  • latest/public/contributions.json covers the last 60 days.

Source: chb 3.27.0.

2026-10-03 · Excluded transactions (test mints)

Added

  • A transaction can be excluded from every total while staying listed for transparency: metadata.excluded holds the reason.
  • Exclusions come from trusted Nostr annotations (["exclude","<reason>"]) or chb's settings.
  • The 2025 CHT test mints (1 million in January, 2 trillion in September) and their burns are excluded: token totals in summary.json and contributors.json drop from about 2 trillion to the real figures (2025: 4,032.5 minted, 1,102.2 burnt).

Source: chb 3.26.0, website #109.

2026-10-03 · Members' annotations count

Added

Annotations signed by a member's browser key now count when the website attests that key (kind 31926) with the member or steward role for the Commons Hub Discord server. Removing the role or the key from the attestation revokes it at the next hourly pull. Members reclassify transactions from the year and month reports: every category opens its transactions.

Source: chb 3.25.0, website #108.

2026-10-03 · Categories from the books, a published taxonomy, and coverage

Added

  • Transactions left uncategorised by rules take their category from how the bank line is booked in Odoo (the invoice, bill, journal entry or account it is reconciled with): metadata.categorySource: "odoo", and the matched documents' URIs in metadata.documents. Bills settling an invoice accrued the year before get accrual ("Previous-year invoices").
  • VAT payments, local taxes, salaries and outgoing refunds are categorised by their reference while Odoo has not reconciled them.
  • The taxonomy (slug, label, direction, group, PCMN accounts) is at https://commonshub.brussels/opendata/latest/categories.json.
  • Each month's summary.json reports coverage (uncategorisedShare, 0–1). For 2025, uncategorised money fell from about €116k in / €185k out to €6k / €1k.
  • A bank journal's opening-balance row is no longer counted as income (opening_balance, type INTERNAL).

Source: chb 3.24.0, 3.24.1, 3.24.2.

2026-10-03 · Role accounts are private in the ledger

Changed

Accounts named after a role that one person holds (e.g. "Current account director", "C/C gérant") are now treated like accounts named after a person: in accounts-chart.json they are labelled "Account of an individual" (individual: true) and in ledger-balances.json they are merged into their group's "individuals" row. Totals are unchanged.

Source: chb 3.23.0.

2026-10-03 · Chart of accounts and ledger balances

Added

  • https://commonshub.brussels/opendata/latest/accounts-chart.json: the full chart of accounts used in Odoo (Belgian PCMN), with labels in English, French and Dutch, class and group; used marks the accounts with entries.
  • https://commonshub.brussels/opendata/{YYYY}/ledger-balances.json: for every account, the opening balance, debit, credit and closing balance of posted entries that year, refreshed hourly from Odoo.
  • Accounts named after a person (current accounts, a person's fees) are merged per group with a neutral label, and payroll is a single line, so no individual amount can be read. Totals are exact and identical for every audience.

Source: chb 3.22.0.

2026-10-03 · Annual accounts filed with the National Bank

Added

New file annual-accounts.json per year (under the year the fiscal period ends) and in /latest/ (every fiscal year): period, filing status, NBB register status, key figures and every figure by NBB code, the filed abbreviated balance sheet and profit and loss as PDF (https://commonshub.brussels/opendata/2025/annual-accounts/…, with sha256), and consistency checks. Published: fiscal year 2025, and fiscal year "2023" (1 July 2023 – 31 December 2024) under /2024/ with class totals only (figuresSource: "internal-balance"). Read checks[] before using the figures: both years have known inconsistencies under review.

Source: chb 3.20.0, 3.21.0, website #102.

2026-10-03 · One identifier per accounting document: its Odoo URI

Changed · breaking

Every bill, credit note, invoice and expense claim is identified everywhere by odoo:<host>:<db>:<model>:<id> (account.move, or hr.expense for a claim not booked yet):

  • new uri on every entry of expenses.json and pending-bills.json, and on bookings.json rentals[];
  • customers.json: invoices is now the list of invoice URIs; the count moved to invoiceCount (breaking);
  • id (b-…, x-…) is deprecated and will be removed in a later chb release: use uri.

Source: chb 3.18.0.

2026-10-03 · Community annotations reach the published files

Changed

Tags published on Nostr (kind 1111 with a lowercase i: category, collective, event, spread, description) are applied by chb at the next hourly run to transactions.json (description in metadata.note), expenses.json, pending-bills.json and room rentals, when the author is trusted: the website's key, chb's key, or anyone they follow. Comments (uppercase I) are never applied. How to annotate: the Contribute back section of the skill. This removes the "Nostr tags do not reach the published files" known bug.

Source: chb 3.18.0, 3.19.0, website #97.

2026-10-03 · The skill is now at /opendata.md; /opendata is a web page

Changed

https://commonshub.brussels/opendata is now the same documentation rendered as HTML. Agents load the markdown skill from https://commonshub.brussels/opendata.md (also still at https://commonshub.brussels/opendata/SKILL.md). The JSON API under https://commonshub.brussels/opendata/… is unchanged.

Source: website #99.

2026-10-03 · Monthly time series, data annotations and summaries

Added

  • https://commonshub.brussels/opendata/monthly.json and https://commonshub.brussels/opendata/{YYYY}/monthly.json: one row per month (money in/out without internal transfers, expenses, invoiced income, bookings, events, door, members, tokens) and coverage per section.
  • https://commonshub.brussels/opendata/annotations.json: known one-off events in the data (test mints, incidents, changes of method) and known bugs at the source, also attached to the monthly rows as notes[].
  • https://commonshub.brussels/finance.md, https://commonshub.brussels/economy.md, https://commonshub.brussels/community.md: the last twelve months as markdown.
  • https://commonshub.brussels/DATA.md now redirects to the open data; /data/ and /api/ are internal to the website.

Source: website #96.

2026-10-02 · Every month and every year has every file

Changed

From the first month of data to the last, every month has every month file and every year every year file, older months included; a period with nothing to report has the file with empty lists ("expenses": []). A 404 now only means the period is not generated yet, or the path is not part of the open dataset.

Source: chb 3.17.0.

2026-10-02 · Licensed under the Open Database License (ODbL 1.0)

Added

license in index.json and a Link: <…>; rel="license" header on every response. Attribution and share-alike apply to derived databases; see the Licence section of the skill.

Source: website #94.

2026-10-02 · Expenses, vendors, customers and bookings; month bills.json removed

Added · breaking

New per month and per year: expenses.json (every bill, credit note and expense claim, line by line), vendors.json, customers.json and bookings.json (room occupancy and rental revenue). Organisations are named; private individuals appear by type only. The month bills.json is removed: read expenses.json. Privacy fix: public transactions.json no longer carries bank narrations (payer names, account numbers).

Source: chb 3.16.0.

2026-10-02 · Open-data API and skill

Added

The public tier of the chb dataset as a read-only JSON API at https://commonshub.brussels/opendata, with a skill for agents. Included from the start: transactions, summaries, events, door and membership counts, vat.json (quarterly VAT returns), pending-bills.json (bills still to pay) and hashes.json (integrity manifests).

Source: website #94.