Quality and Measures#

Data quality and supporting measures evaluated, defined, and documented* [Q2 2026]

How can the quality and traceability of the information, including its changes, be evaluated, communicated and assured across sources of different kinds: parliaments as the official source, OpenParlData.ch, and third parties such as researchers? (see Datenraum Politik)

What can we learn from open source software (OSS) communities that do and do not work, such as Blender, and from digital commons projects such as Wikipedia and OpenStreetMap?

Measures to secure the provenance, completeness and traceability of parliamentary data.

Approach: Controlled Contributions through the Admin Panel#

OpenParlData.ch already operates the technical mechanism for a formalised contribution process: the Admin Panel (https://admin.openparldata.ch). It corresponds to option (ii) in the typology of external community governance[1] — external contributors can change data, but only within defined boundaries, and every change remains attributable and reversible.

The Admin Panel is the editorial back office of the platform. It provides the configuration needed to control the mapping and ETL processes, such as defining how affair types and status designations correspond across parliaments, and how each body and its data delivery are described.

Much of this configuration is publicly accessible, making these settings transparent. To contribute, users sign in with an existing GitHub, GitLab, or Google account and can request an Editor or Admin role.

Three properties make these contributions controlled rather than merely open:

Role-based access

Permissions can be assigned to different contributors at a granular level, with different rights for different parts of the OpenParlData configuration. For example, one contributor may be allowed to edit the mapping of affair types, while another can manage ETL settings.

Bounded scope

Contributors do not edit the source records harvested from the parliaments. The official data as published by each body stays untouched; contributions are made in a separate harmonisation layer on top of it. This keeps the provenance of official data intact and makes the contributed interpretation distinguishable from the source.

Traceability

Every change is written to an audit trail with user, timestamp and the affected records.

Admin Panel, Permission Matrix: table of permissions against the roles Public, User, Editor, Admin and Owner

Admin Panel, Permission Matrix: every permission the panel knows, listed against the roles. The Public column shows what is visible without an account at all. The rows make the separation of viewing, configuring and updating visible for each data domain.#

Example: harmonised affair types and their mapping#

The harmonisation of affair types is the first data domain opened up in this way, and it illustrates why external expertise is needed. Swiss parliaments use different names for comparable parliamentary procedures, while the same name can have different legal meanings. For example, Basel-Stadt uses the term Anzug for a procedure that corresponds to the Postulat at federal level and in most cantons. Deciding which such procedures should be mapped to the same affair type is a question of parliamentary law, not one the ETL pipeline can answer. The Admin Panel therefore splits the task into two views:

Types (admin.openparldata.ch/#/affair_types_harmonized?tab=types) holds the controlled vocabulary of harmonised affair types, each with names in German, French, Italian, Romansh and English, a defined display order, and, where one exists, a Wikidata identifier. This catalogue is what makes affairs comparable across bodies. It is deliberately small and curated, and the Wikidata reference anchors each category in an identifier outside our own infrastructure, so that third parties can align their vocabularies with ours without having to adopt our keys.

Mapping (admin.openparldata.ch/#/affair_types_harmonized?tab=mapping) assigns every original affair type, as delivered by a body in its own language, to exactly one harmonised type. Each assignment can carry a comment and typed evidence links, either to the legal basis (legal_basis) or to an explanatory source (description), with the language and an optional reference number; changes to these sources are kept in a per-entry history. The list can be filtered by body, language, harmonised type and status, so entries that are still unmapped or that lack a comment or a source can be listed directly. This turns the open harmonisation work into a reviewable backlog rather than an opaque decision inside the pipeline.

Admin Panel, Types tab: catalogue of harmonised affair types with multilingual names

Admin Panel, Types: the curated catalogue of harmonised affair types, with names in five languages, the number of affairs currently assigned to each type, and the corresponding Wikidata identifier.#

Admin Panel, Mapping tab: original affair types per body assigned to harmonised types

Admin Panel, Mapping: each original affair type as delivered by a body, with its language, the number of affairs affected and the harmonised type it is assigned to. Entries still awaiting a decision are marked as not assigned. The icons next to each assignment hold its sources and comments, and the last column records who last changed it and when.#

What this arrangement already provides is authorisation, attribution and reversibility. What it does not yet define is the editorial process around it: who reviews a contributed mapping before it is published, how contributors are notified of decisions, and how conflicting interpretations between bodies are resolved.

Ambition: Measuring and Publishing Data Quality#

The Admin Panel carries a second, younger set of views under admin.openparldata.ch/#/quality, which measure the pool data per body rather than letting anyone edit it. They are documented here as an ambition, not as an established practice. The thresholds below are a first proposal, the indicators have not been validated case by case, and the figures currently still have to be checked by hand before anything can be concluded from them. What the views already fix is the direction: which properties of the data we consider worth measuring, and that we intend to measure them per body and over time rather than to assert quality in prose.

Timeliness#

Every body is classified per data type (affairs, news, votes, meetings, speeches) by the age of its most recent event, in five bands: fresh up to three days, good up to seven, late up to ten, stale up to thirty, and dead beyond that. In addition an entry is flagged as overdue when its age exceeds three times the publication cadence expected for that body, so that a monthly-publishing parliament is not judged by the same yardstick as a weekly one.

The intent is that a body which stops publishing becomes visible within days instead of quietly going missing. The bands themselves are not yet calibrated against the actual publication rhythms of the 97 bodies currently covered, and a parliament in recess is indistinguishable from one whose interface has broken. Until that is resolved, a red marker means “look here”, not “this body has a problem”.

Completeness against official seat counts#

This is the one check that already compares our data against a reference from outside our own pipeline. For each body the official number of seats in the legislative and the executive is set against the members our data actually holds as active, and the difference is shown per chamber.

The comparison is harder than the two numbers suggest, and this is where the manual work sits. The groups we harvest do not contain only the members a seat count refers to: chancellors, secretariat staff and other functions appear as memberships and have to be excluded before the counts are comparable at all. A difference is therefore not automatically an error but a case that needs a judgement, which is why every body can carry a comment per chamber, recorded with its author and full change history. Of the 97 bodies, 72 are currently flagged as needing review, which is a fair description of how much of this work is still open.

Where a person is missing and has to be added by hand, the addition requires a source URL as evidence. The correction and the reason for it stay together.

Structural consistency#

Eight named checks look for internal contradictions rather than for gaps: duplicate affairs, votes and speeches whose referenced meeting or person does not exist, meetings without agenda items, affairs without a state, votes without a result, and overlapping memberships. Each is recorded per body as an absolute count, as a share of the relevant total, and as a change against the previous daily snapshot, with a drilldown to the individual cases and a thirty-day series.

The point of the daily snapshot is that a regression should be visible as a movement, not only as an absolute number. As with timeliness, the indicators are not yet a verdict: several of them still surface cases that turn out to be legitimate on inspection, and separating those from real defects is precisely the manual work that has to happen before the numbers can carry weight.

Open by default#

The endpoints behind these views are public and require no authentication, among them /public/quality/freshness, /public/quality/persons-seats, /public/quality/consistency and /public/quality/timeseries. The ambition is that the quality of the data should be as open as the data itself, so that our assessment of it can be checked rather than believed.

While the indicators remain unvalidated, publishing them is a statement of intent more than a service. It is also the more useful way round: an indicator that is visible can be contested, and a contested indicator is the shortest path to one that can be trusted.