Skip to content

Methodology

How GovLens collects, verifies, and aggregates citizen sentiment data.

Last updated: March 2026

1. How Positions Are Collected

Citizens register with a verified email and phone number (Tier 1) or through bank-based identity verification (Tier 2). Each citizen can express one position per legislative procedure: support, oppose, or undecided.

Deliberation delay: After reading the neutral summary of a procedure, citizens must wait a minimum of 30 seconds before submitting their position. This friction is intentional — it discourages reflexive reactions and encourages engagement with the substance.

Neutral summaries: Each procedure is presented with a factual, non-partisan summary. Summaries are reviewed to avoid leading language. We do not present arguments for or against.

Positions can be changed at any time. All changes are audited (the audit trail records old and new positions) but individual positions are never publicly exposed.

2. Verification Tiers

GovLens uses a tiered verification system to balance accessibility with resistance to manipulation:

Tier 1 — Phone Verification

  • Email address verified via confirmation link
  • Phone number verified via SMS code
  • One account per phone number
  • Sufficient for viewing and basic participation

Tier 2 — Bank Identity (iDIN / BankID)

  • Identity verified through banking infrastructure (iDIN in NL, BankID in Nordics)
  • Cryptographic proof of identity — no personal data stored by GovLens
  • Strongest guarantee against duplicate accounts
  • Tier 2 positions can be filtered separately for higher-confidence analysis

API consumers can filter sentiment data by verification tier to assess how confidence level affects the distribution of positions.

3. Aggregation and Privacy

All sentiment data is aggregated at the database level. The public API and data exports only expose aggregate counts — never individual positions. The architecture enforces this through separate database schemas: citizen identity data and position data are stored in isolated schemas linked only by a one-way HMAC.

Country-level breakdowns are provided when at least 5 positions exist for a given procedure-country combination. Below that threshold, data is rolled into the aggregate only.

4. Gap Metric

The "gap" measures the difference between citizen sentiment and MEP voting outcomes on the same procedure:

gap = |citizen_support_pct - mep_for_pct|

Minimum thresholds: The gap metric is only calculated when a procedure has at least 50 citizen positions and at least 1 MEP vote. Procedures below this threshold are excluded from gap rankings and the gap RSS feed.

A high gap does not inherently indicate a problem — MEPs may have access to information, committee briefings, or compromise considerations that citizens do not. The gap is a signal for further investigation, not a verdict.

5. Alignment Score

The MEP alignment score measures how often an MEP's vote matches the citizen majority sentiment:

alignment = aligned_votes / total_comparable_votes * 100

A vote is "aligned" when the MEP voted "for" and the citizen majority is "support", or the MEP voted "against" and the citizen majority is "oppose". Only procedures with 50+ citizen positions are included.

Alignment scores should not be interpreted as a quality metric for MEPs. Representatives are elected to exercise judgment, not to mirror public opinion polls.

6. Anomaly Detection

GovLens monitors for patterns that may indicate manipulation:

  • Sudden spikes in position submissions for a single procedure
  • Unusual geographic concentration of positions
  • Temporal clustering (many positions submitted within a short window)
  • Bulk registration patterns from similar IP ranges

Detected anomalies are flagged for review. When confirmed manipulation is found, affected positions may be excluded from aggregate counts. All exclusions are logged and can be audited.

7. Known Limitations

This is not a representative sample. GovLens users are self-selecting. They skew younger, more educated, more politically engaged, and more likely to be from Western EU member states. Sentiment data should never be presented as "what EU citizens think."

  • Demographic skew: participation varies by country, age, and education level
  • Selection bias: people with strong opinions are more likely to participate
  • Language barrier: the platform is primarily in English
  • Digital divide: requires internet access and technical literacy
  • Verification coverage: Tier 2 (bank ID) is only available in select countries

8. What GovLens Is NOT

  • GovLens is not a poll — there is no random sampling
  • GovLens is not a referendum platform — positions have no binding power
  • GovLens is not a lobbying tool — we are non-partisan and do not advocate
  • GovLens is not a replacement for representative democracy — see our democratic responsibility statement

Questions about our methodology? Contact methodology@govlens.eu