About
About this dataset
Australian federal MPs and senators must declare their interests (shareholdings, trusts, property, directorships, gifts, sponsored travel, memberships and more) in the Registers of Members' and Senators' Interests. The registers are public but published as scanned or typed PDF statements, one per member per parliament. This dataset turns them into one row per declared item, with a link to the page each item came from.
The site describes what was declared. It does not estimate value or wealth, and it does not suggest that any declared interest is improper.
Method
- Collect. House statements are the PDFs on aph.gov.au (archived registers for the 43rd-47th parliaments, the live register for the 48th);
source_urlpoints at each one. Senate statements come from the Parliament's senators' interests API (JSON). - Transcribe. Each House PDF (initial statement plus every alteration bound into it) was transcribed by
google/gemini-3.8-flashinto a strict JSON schema, one item per disclosed interest, withanthropic/claude-sonnet-5.5taking any pages Gemini refused. On a 12-PDF hand-checked gold set (790 items) this scored precision 0.986, recall 0.987 (F1 0.987), with 100% owner and page accuracy. Senate items are mapped from the API's fields; no model is involved. - Validate and load. Every transcription passes a schema and completeness check (every page covered, every item on a real page) before loading. Members are matched across parliaments and chambers to one
member_id; party and bloc come from a per-term table. - Standardise entities. Entity names are normalised, then resolved in order: a curated alias table (the most common names), the ASX listed-companies list, an LLM grouping of spelling variants, and finally one entity per remaining one-off name. 11,542 entities.
Accuracy
| Measure | Score |
|---|---|
| Precision | 0.986 |
| Recall | 0.987 |
| F1 | 0.987 |
| Owner accuracy | 100% |
| Page accuracy | 100% |
Senate items come from the Senate register's structured data: no model is involved. Each item carries the transcriber's confidence; items marked medium or low confidence are flagged on every page.
Prompt versions
Two prompt versions. Most House statements for the 43rd-47th parliaments were transcribed with prompt v0. Prompt v1 adds one rule (C12): itemise lists bound in as attachments ("see attached"). Only the 7 statements found to have un-itemised attachments were re-run on v1 (coultonm_43p, nevillep_43p, coultonm_44p, huntg_44p, pynec_44p, coultonm_45p, odowdk45p); the whole 48th House register used v1. A few other v0 statements may still describe an attachment in one item instead of itemising it.
Known limitations
- Senate before the 48th parliament is missing. Earlier Senate registers exist only as tabled volumes and are not in this release.
- Two prompt versions. Most House statements for the 43rd-47th parliaments were transcribed with prompt v0. Prompt v1 adds one rule (C12): itemise lists bound in as attachments ("see attached"). Only the 7 statements found to have un-itemised attachments were re-run on v1 (
coultonm_43p,nevillep_43p,coultonm_44p,huntg_44p,pynec_44p,coultonm_45p,odowdk45p); the whole 48th House register used v1. A few other v0 statements may still describe an attachment in one item instead of itemising it. - One-off entities are untyped. 7,037 of the 11,542 entities are names that appear once; each is its own entity with an empty
entity_type. - ASX matching is name-based. A listed company whose snapshot name differs from the name the LLM chose may be typed
otherwith noentity_asx_code. - Transcription is not perfect. Expect roughly 1-2% of items to be missed or misread, more on poor scans (43rd-45th parliaments);
extraction_confidenceflags the doubtful ones. Check anything important against the source PDF (source_url,page). - Dates.
lodged_dateis empty when no date is printed (date_precision = unknown). - Party is the party at the start of each term; mid-term defections are not tracked.
How to read the pages
- Each item shows a confidence badge when the transcriber's confidence was medium or low; high confidence is not marked.
- Party and bloc are the party at the start of each term.
- Senate: 48th parliament only, and only the senator's own interests.
- One-off entities (names that appear once) are untyped and have no page.
- A change type the statement does not give is shown as "change not stated".
- Entity pages say how each name was matched: the curated alias table, the ASX listed-companies list, or an LLM grouping of spelling variants.
- Counts are counts of declared items, not of their value.
Contact and code
Made by Kevin Rassool. Found an error? Open an issue in the repository with the member, the item and the page of the statement. The code, documentation and full build log are in the repository.
Changelog
- v2.2026-10-02 (data loaded 2026-10-02T22:42:31+00:00): 50,936 items from 995 statements of 408 members; first release on this site.