Files
politics-tracking/docs/investigative-data.md
simonandClaude Opus 5.5 583ccba31c Politrack: track Austrian politicians from public sources
Initial import of Politrack, a self-hosted service that tracks Austrian
politicians from federal to municipal level - roles, votes, money flows,
statements, meetings, social media and legal proceedings - with every claim
linked to its sources.

- backend: FastAPI + Postgres/pgvector; adapter framework (fetch -> parse ->
  load -> enrich) with robots.txt/TDM-aware fetching, a raw-response archive
  for reparsing, and a claim/evidence model with corroboration
- sources: Parliament, Wikidata, EU Parliament/Commission, Council of
  Ministers, Rechnungshof party reports and donations, procurement, RTR media
  transparency, political ad libraries, WKStA, news feeds, Wikipedia edits,
  Bluesky, Mastodon, public Telegram channels, YouTube and X (official API)
- web: Next.js frontend in German and English with typed API client
- mcp: MCP server for AI agents and RAG
- docs: architecture, data model, sources, legal notes, Unraid deployment and
  contributor guides; Docker Compose setup for Unraid

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:02:01 +01:00

70 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# More data points for investigative work
A shortlist of additional **legally accessible** sources and the correlations they enable, ranked by
value per effort. "Status" refers to this project: ✅ done · 🟡 next · ⛔ not accessible · 🔍 manual research only
(no bulk access).
## 1. Money that follows power
| Data | Source & access | Why it matters | Status |
|---|---|---|---|
| **Public contracts** ≥ €50k (core data, *Kerndaten*) | Contracting authorities must publish award metadata as open data on data.gv.at within 30 days (§62 BVergG 2018; amended from 1 Oct 2026, check the new version) | Correlate **donors ↔ contract winners ↔ awarding ministry/party**. This is the classic pay-to-play pattern | ✅ `vergabe.awards` |
| Government **advertising** per ministry → outlet | RTR Medientransparenz open data | Which ministries fund which media, and does coverage change? Inserate affairs | ✅ `rtr.medientransparenz` (ads and media subsidies) |
| Party **annual reports** (*Rechenschaftsberichte*) and audit results | Rechnungshof (PDF) | Income, related organisations (*Vorfeldorganisationen*), sponsoring, loans; discrepancies the Rechnungshof finds | ✅ `rechnungshof.party_reports` (XLSX totals, loans, holdings, affiliated organisations; audit findings 🟡) |
| Public **party funding** (*Parteienförderung, Klubförderung, Akademieförderung*) | Federal/state budgets, Rechnungshof | Context for donations; how much taxpayers pay each party | ✅ from the annual reports (federal budgets 🟡) |
| **EU agricultural subsidies** per recipient | EU-mandated transparency database (AMA) | Farmer-politicians and their associations | 🟡 |
| COVID aid (COFAG) large recipients | Published lists | Companies close to parties that received aid | 🟡 |
| Political **ad spending** online | Meta Ad Library API (verified developer account), Google Political Ads Transparency (public BigQuery dataset) | Spend per party/politician, targeting, timing before elections | ✅ `ads.google` (public bundle), `ads.meta` (token) |
| Company roles (management, supervisory boards, shareholdings) | Firmenbuch (fee per query; the status of free EU "high-value dataset" access in Austria is unclear) | Revolving door, conflicts of interest, donor networks | 🔍 (until free bulk access is confirmed) |
| Land register (*Grundbuch*) | Fee per query | Property deals involving politicians | 🔍 |
## 2. Influence & access
| Data | Source | Why | Status |
|---|---|---|---|
| Lobbying register | BMJ (public part) | Who lobbies, for which clients | ⛔ Lotus Notes application without stable URLs – not reliably accessible |
| **EU Transparency Register** and Commission meetings | Open data (also via LobbyFacts.eu) | Meetings of the Austrian commissioner/cabinet and of MEPs (MEPs must publish meetings when they are rapporteurs) | ✅ Commission meetings `eu.commission_meetings`; MEP meetings 🟡 |
| MEP declarations of financial interests | European Parliament website | Side income of Austrian MEPs (an EU-level counterpart to the Unv-Transparenz lists) | ✅ `europarl.meps` |
| Cabinet staff (*Kabinettsmitarbeiter*), appointments to state-owned companies (ÖBAG holdings, ORF bodies, Nationalbank) | Answers to parliamentary questions (already ingested as claims), annual reports, Wikidata | Patronage (*Postenschacher*) | 🟡 (extract from answers) |
| Council of Ministers minutes (*Ministerratsprotokolle*) | Bundeskanzleramt | What the government decided, and when | ✅ `bundesregierung.ministerrat` |
| EU Council participant lists | Council website (PDF) | Ministers' travel and attendance | 🟡 |
## 3. Legal & accountability
| Data | Source | Why | Status |
|---|---|---|---|
| Immunity waiver requests | Parliament | Investigations against MPs: authority, alleged offence, outcome | ✅ |
| Prosecutor and court **press releases** (WKStA, Landesgerichte' media offices), media dates of prominent trials | justiz.gv.at | Official statements on stages of high-profile cases. Feed them into `legal_proceeding` with *official* evidence (no headline guessing) | ✅ WKStA `justiz.wksta` (documents; claims after review), courts 🟡 |
| Court decisions | RIS (anonymised) | Link only when a case number is cited in an official source | 🟡 |
| **Investigative committees** (*Untersuchungsausschüsse*): witness lists, protocols, final reports | Parliament open data | Who testified, what they said, contradictions with later statements | ✅ hearings (who, when); protocols 🟡 |
| Audit reports on ministries and agencies | Rechnungshof | Mismanagement in departments led by a given minister | 🟡 |
| Insolvency notices (Ediktsdatei) | Justiz | Companies tied to politicians. Check the terms before automating | 🔍 |
## 4. Words vs. deeds
| Idea | Data | Status |
|---|---|---|
| **Say vs. vote**: compare statements (speeches, posts, interviews) with roll-call and faction votes on the same topic | statements + votes + embeddings | ✅ basic: votes show whether the person spoke on the item; topic-level comparison 🟡 |
| Election programmes and the government programme vs. what was passed | Party programmes (Manifesto Project: check its licence), government programme PDF, parliament items | 🟡 |
| Dissent tracker | Roll-call votes (✅): who breaks with their faction, and on which topics | ✅ basic |
| Wikipedia edits from parliament/government IP ranges | Wikipedia API (open) + public IP allocations | ✅ `wikipedia.institution_edits` |
## 5. Coverage & reach
| Data | Source | Status |
|---|---|---|
| Candidate lists of all elections (federal, state, municipal) | BMI / state election authorities, official gazettes | 🟡. This is the most reliable way to find *local* politicians and party affiliations |
| Election results per municipality | BMI open data | 🟡 |
| TV appearances (Pressestunde, ZIB 2, Im Zentrum guest lists) | ORF programme metadata / headlines | ✅ headline detection, 🟡 programme metadata |
| Bluesky, Mastodon, public Telegram channels, YouTube; X via the official API | open APIs / public web preview / paid API | ✅ (Threads 🟡) |
## Correlations the data model already supports
* **Person timeline** (all claims over time, filter by period): ✅
* **Calendar**: sessions, committees, trips, meetings, per-day activity: ✅
* **Former politicians**: latest coverage plus career entries (revolving door): ✅
* **Corroboration**: the same fact from independent sources is merged and shown as confirmed: ✅
* **Follow the money**: per person, the organisations they are connected to (side jobs, careers, party, meetings) and those organisations' donations, contracts, ads and funding: ✅ (`/personen/<slug>?tab=money`, `/api/v1/persons/<slug>/network`)
* **Organisation pages**: money paid/received by kind, top counterparties, connected people: ✅
* Next: a visual **network graph** and company roles (Firmenbuch – no free bulk access yet).