Methodology
Identifiers and URLs
How records are named, why their addresses never change, and how to cite them.
Updated Sep 1, 2026
Slugs
Every published record has a slug: a lower-case, hyphen-separated, ASCII string that appears in its URL and in every citation. Slugs are assigned when a record is first published and are never changed or reused afterwards. If a record is merged into another, its old address redirects permanently to the surviving record.
Slugs are ASCII because they must be stable across locales, file systems and tools. Where an organisation or jurisdiction has a name in a script that does not transliterate deterministically, the slug is assigned during ingestion and documented in the dataset's notes rather than generated automatically.
External identifiers
Slugs are QinMetrics identifiers. Identifiers issued by other schemes are
stored alongside them, never in place of them, as { scheme, id } pairs.
Examples of schemes: CN-USCC (Unified Social Credit Code), LEI (Legal
Entity Identifier), ISO 3166-2 (subdivision code) and OCID (Open
Contracting ID). A record can carry several identifiers; a search for any of
them finds the record.
URL structure
| Address | Content |
|---|---|
/global, /china | Hub of each data line |
/global/contracts, /china/fiscal, … | Browse one section within one data line |
/contracts, /fiscal, … | Documentation of a section and links into both lines |
/governments/<slug> | Government profile of an organisation |
/suppliers/<slug> | Supplier profile of an organisation |
/contracts/<slug> | One contract |
/procurement/<slug> | One tender (contracting process) |
/fiscal/<slug> | One indicator with its observations |
/jurisdictions/<slug> | One jurisdiction |
/data/<slug> | One dataset: description, releases, files |
/api/v1/… | Machine-readable access to the same records |
Entity addresses do not contain a data line, because an entity may appear in both lines. The line is a property of datasets, and each entity page lists the datasets it appears in.
Chinese-language pages, when published, will live under /zh/ with the same
paths, so /zh/contracts/<slug> and /contracts/<slug> describe the same
record.
API versioning
The API is versioned in the path. /api/v1 will keep its response shapes
for as long as it exists; incompatible changes are published as /api/v2
with an overlap period, and the retirement of a version is announced on the
API page in advance.
Citing a record
A citation needs the record's address, the dataset it belongs to, the release version if one is stated on the dataset page, and the date you retrieved it:
QinMetrics, Public Contracts Data, contract
<slug>, release<version>, retrieved<YYYY-MM-DD>,https://qinmetrics.com/contracts/<slug>.
Because addresses are permanent and releases are versioned, a citation written today will resolve to the same record, and the same values, in the future.