22 axes measured Β· 14 model fleets Β· 3 public leader scores Β· 8 fact runs Β· TIE is TIE Β· not a certificate.
GET https://councilof.ai/api/gspc is the authority. This is a snapshot of that GET, read at 2026-09-07T15:13:59Z, aligned to the transparency root root.json published at 2026-09-07T12:30:34Z. If the live GET and these files disagree, the live GET wins. A fetch that fails is UNCHECKABLE β never a fabricated 0.
Measurement, not certification. A TIE is never a win. An empty slot is a finding, not a zero. No slot is for sale.
- slots on the board: 22
- by status: MEASURED 22
- model-comparison axes (a fleet answers a frozen bank, graded deterministically): 14 Β· deterministic-fact axes (public ledgers and series; no model, no leader, no accuracy): 8
- separation, over the model-comparison axes only: SEPARATED 1 Β· TIE 2 Β· UNTESTED 11 β a TIE is not a separated leader; UNTESTED is not a win either
- public leader, over the model-comparison axes: EXCLUDED_OWN_MODEL 8 Β· NO_SIGNED_CARD 3 Β· SHOWN 3 (EXCLUDED_OWN_MODEL: our own council specialist led and is not ranked against the vendors we measure; NO_SIGNED_CARD: the leading external model has no signed card in the public index, so no leader is asserted)
- the payload's own
totalsblock printspublic_count= "22 axis Β· 22 measured" β agrees with the array - rows behind the board (
totals.items, the sum of each axis's n): 969 - transparency root:
card_count168 signed cards,merkle_root1340de5eb7ebb45344a6c662179cc35ab08bd9008c359834108cae597fdc541b,as_of2026-09-07T12:30:34Z - frozen banks: 13 of the 22 slots that name a dataset resolve an
items.jsonl(818 rows in total, canary rows excluded); the others carry their bank in another file or are fact axes with pointers, not items β see the table - bank slug cross-check: all 13 mapped axes name the expected
csoai/gspc-<short>slug
| axis | family | kind | bench | n | status | separation | public leader | frozen bank | bank rows |
|---|---|---|---|---|---|---|---|---|---|
governance |
gspc | model-comparison | GovBench | 237 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-gov | 237 |
safety |
gspc | model-comparison | DefBench | 36 | MEASURED | TIE | gemma3:12b (base model) | csoai/gspc-agi | 36 |
provenance |
gspc | model-comparison | ProvBench | 32 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-prv | 32 |
continuity |
gspc | model-comparison | PQCBench | 33 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-asi | 33 |
conformance |
gspc | model-comparison | MCPBench | 35 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-mcp | 35 |
openness |
gspc | model-comparison | OSSBench | 32 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-oss | 32 |
machinery-conformity |
gspc | model-comparison | MachBench | 33 | MEASURED | UNTESTED | NO_SIGNED_CARD | csoai/gspc-mach | 33 |
care |
gspc | model-comparison | CareBench | 199 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-care | 200 |
cross-reality |
gspc | model-comparison | XRAIV | 32 | MEASURED | UNTESTED | NO_SIGNED_CARD | csoai/gspc-xr | 32 |
detector-interop |
gspc | model-comparison | DetBench | 33 | MEASURED | UNTESTED | NO_SIGNED_CARD | csoai/gspc-det | 33 |
art5-safeguard |
gspc | model-comparison | Art5Bench | 36 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-art5 | 36 |
swarm |
gspc | model-comparison | SwarmBench v2b | 37 | MEASURED | SEPARATED | qwen2.5:7b (base model) | csoai/gspc-swarm | 37 |
affect |
gspc | model-comparison | AffectBench | 41 | MEASURED | UNTESTED | EXCLUDED_OWN_MODEL | csoai/gspc-affect | 42 |
jail |
gspc | model-comparison | GoldBank-Detector | 71 | MEASURED | TIE | qwen2.5:0.5b-instruct (base model) | csoai/gspc-jail-goldbank | NO_ITEMS_JSONL |
provenance-controls |
financial | deterministic-facts | ChainFacts | 6 | MEASURED | β | β | csoai/gspc-provenance-controls | NO_ITEMS_JSONL |
reserve-attestation |
financial | deterministic-facts | ReserveFacts | 16 | MEASURED | β | β | csoai/gspc-reserve-attestation | NO_ITEMS_JSONL |
regulatory-framework |
financial | deterministic-facts | RegimeFacts | 16 | MEASURED | β | β | csoai/gspc-regulatory-framework | NO_ITEMS_JSONL |
distribution-integrity |
financial | deterministic-facts | DistributionFacts | 16 | MEASURED | β | β | csoai/gspc-distribution-integrity | NO_ITEMS_JSONL |
custody-disclosure |
financial | deterministic-facts | CustodyFacts | 16 | MEASURED | β | β | csoai/gspc-custody-disclosure | NO_ITEMS_JSONL |
ai-adoption-components |
financial | deterministic-facts | Eurostat | 2 | MEASURED | β | β | csoai/gspc-ai-economy-index | NO_ITEMS_JSONL |
labour-components |
financial | deterministic-facts | Eurostat | 2 | MEASURED | β | β | csoai/gspc-human-labour-index | NO_ITEMS_JSONL |
humanoid-labour-index |
financial | deterministic-facts | Disclosure | 8 | MEASURED | β | β | csoai/gspc-humanoid-labour-index | NO_ITEMS_JSONL |
Per-axis numbers name the board LEADER where one is shown; fleet_mean (in board.json) shows the fleet, not the leader. Fact axes have no leader and no accuracy: measured is not the same as scored. n is the graded count the board carries; bank rows is what the frozen items.jsonl holds today, canary rows excluded β the two need not be equal, and a difference is reported, not reconciled here.
- The board's totals are derived, not typed.
./check-board.shfetches the live GET, recounts the slots and the MEASURED axes from the array, and fails loudly on any disagreement. - One measurement. Every measurement is an Ed25519-signed card. Paste it into https://councilof.ai/gspc-verify (free, no account) or follow https://councilof.ai/signed/HOW-TO-VERIFY.md and check by hand. From Python:
pip install "csoai-gspc[verify]"thencsoai-gspc verify <card_id>β three states only: VALID, INVALID, UNCHECKABLE. - Root inclusion.
root.jsonlistscard_sha256[]for every published card and commits to them inmerkle_root../check-board.shrecomputes that root from the list using the rule the root states for itself β leaf: "sha256(canonical(card minus sha256 and sig_ed25519)) \u2014 binds subject, source_urls, tags, as_of, did, surface, unmeasured and payload"; node: "parent = sha256(left || right) over RAW 32-byte digests, pairwise, bottom-up. An odd node at any level is paired WITH ITSELF (Bitcoin-style duplication), not promoted. No domain-separation prefix.". A verifier MUST reject any presentation wherelen(card_sha256) != card_count, and any inclusion proof withindex >= card_count. A card is included when its sha256 appears in the list and the recomputed root matches. - Keys. Signatures resolve through
did:web:csoai.orgβ https://councilof.ai/.well-known/did.json. The board'ssite_attestation.signerisdid:web:csoai.org#board-attestation-1; the root'sdid_intendedisdid:web:csoai.org#board-attestation-1; cards sign under the card-attestation key in the same document. Pin against the DID document, never against the key a card ships with.- key ids present in did.json at read time:
did:web:csoai.org#site-release-1,did:web:csoai.org#estate-chain-1,did:web:csoai.org#board-attestation-1,did:web:csoai.org#card-attestation-1,did:web:csoai.org#gspc-board-22axis-2026
- key ids present in did.json at read time:
| file | what |
|---|---|
board.json |
the whole live GET, byte-for-byte (sha256 86abe0b3decc8712e494cc2b06436bfe1f11fd73f8bb5cde51d8e8ee27e594f2) |
root.json |
the transparency root, byte-for-byte (sha256 8bc1d43a5d2df18a24dbb9275e6357d4be9f6e23d06902902959c5ec9ee45b3c) |
SNAPSHOT.json |
as_of, read_at, digests, derived counts, bank rows, and the fingerprint every surface is keyed on |
gspc-axes.csv / gspc-axes.jsonl |
one row per slot |
check-board.sh |
re-derive the totals and the Merkle root yourself |
manifest.jsonl |
file, bytes, sha256 |
- Live board: https://councilof.ai/api/gspc Β· transparency root: https://councilof.ai/root.json
- Hugging Face: https://huggingface.co/spaces/csoai/gspc-board (the living Space) Β· https://huggingface.co/datasets/csoai/gspc-board (folder
snapshot/) Β· every frozen bank as its own repository under https://huggingface.co/csoai - Kaggle: https://www.kaggle.com/datasets/nicktempleman/csoai-gspc-living-board
- GitHub mirror: https://github.com/CSOAI-ORG/gspc-board
- Zenodo (this snapshot series, one version per changed board): concept DOI https://doi.org/10.5281/zenodo.22293340 Β· methodology record: https://doi.org/10.5281/zenodo.21991104
- PyPI reader and card verifier: https://pypi.org/project/csoai-gspc/ Β· MCP server on npm:
csoai-gspc-mcp(npm view csoai-gspc-mcp versionis the authority for its version)
Not a certification, not a rating, not an endorsement, not legal advice. A card is evidence of what specific bytes scored on a frozen bank at a specific time. Measurement, not certification.
Issuer: CSOAI Ltd (GB, Companies House 16939677). Board data licence as printed by the payload: CC-BY-4.0. Generated by scripts/spray/gspc-spray.py (CSOAI-ORG/councilof-ai); fingerprint 5e4be2dc57acaeb3aad4f03ee8cbc3e10f29f023dabe3024d0ffeee4c788023d.