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>
6.8 KiB
6.8 KiB
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).