How OPAX works, and how to cite it
What OPAX is, and is not
OPAX is a retrieval and analysis layer over public records. It is not the official record. Before publishing a quote, verify the wording at the source link on the document page. Every document links to its official origin where one exists.
Corpus construction
Speeches are included from 13 March 1993, the election that seated the longest-serving current federal parliamentarian, so nothing in the corpus predates a currently serving member. Speeches under 200 characters are excluded (procedural fragments), duplicates across overlapping sources are removed, and procedural noise (division roll-calls, chair interjections, day indexes) is stripped. The machine-readable corpus manifest, including per-source counts and the current corpus version, is at corpus.json.
Speaker attribution
Some earlier OpenAustralia transcripts combine several speakers' words in one document. These mixed transcripts are not credited to any one member or included in their speech count until each person's words can be attributed reliably. A fuller split into individual speaking turns is planned; person pages show how many earlier transcripts include that member alongside others and are not counted yet. Chair-role transcripts record a member presiding over proceedings and are not counted as that member's own speeches.
Retrieval and generation
Search runs hybrid semantic + keyword retrieval with a reranking pass. Answers are
generated only from retrieved passages, with citations. Embeddings:
multilingual-2024-05-06. Generation model (pinned):
DeepSeek V4 Pro via OpenRouter preset @preset/opax-pro (openai-compatible). The Ask research loop uses deepseek/deepseek-v4.1-flash via OpenRouter. Model identity may change between corpus versions and
is recorded in the manifest.
Reproducibility
Searches are reproducible given a query, filters and corpus version: every export file embeds all three. Generated answers are not reproducible and must not be quoted as data. The supported method for a paper: state the question, cite the returned documents by their permanent OPAX links, and archive the export file.
Citing instruments and audit reports
Federal legislative instruments are a separate metadata catalogue. Cite the FRL id and the authoritative version linked on its page. OPAX shows metadata only; version start, registration and commencement are distinct dates. Source: Federal Register of Legislation (legislation.gov.au), CC BY 4.0.
Queensland audit reports carries the report index and the Queensland Audit Office's numbered recommendations. Cite the report number and year, the tabled date, and its authoritative QAO link. Source: Queensland Audit Office, CC BY 4.0, unless otherwise noted. © The State of Queensland (Queensland Audit Office) 2026. Copyright exceptions are recorded per report and their bodies withheld.
Victorian election 2026
The election pages bring together official election facts and the records OPAX already holds. They show records only: no predictions, polls or rankings.
- Districts, dates and results. From the Victorian Electoral Commission (VEC), checked 10 and 13 October 2026. The 88 districts and 8 regions are those drawn in the 2021 redivision, which took effect on 1 November 2022; no boundary change has been made since. Eureka was called Buninyong, and North-Eastern Metropolitan Region was called Eastern Metropolitan Region, before then.
- Winning margins. The winner's share of the two-candidate vote above 50%, as the VEC's winning-margin maps use it. The share comes from the VEC's final count after preferences, or from its two-candidate count where the winner had a majority before preferences ran out. A district that has held a by-election or supplementary election since 2022 shows that later result as well.
- Which seat am I in. Suburbs, postcodes and council areas are matched to districts with Australian Bureau of Statistics (ABS) allocation files (ASGS Edition 3: state electoral divisions 2025, suburbs and localities 2021, postal areas 2021, local government areas 2025), joined by mesh block and weighted by usual residents at the 2021 Census. Postcodes are the ABS's postal areas, which approximate delivery postcodes. Where a place crosses district lines the page gives each district's share of its residents; the VEC's address search gives the exact answer.
- Members. The Parliament of Victoria's member list as at 9 September 2026, with each member's party as listed there. Each member links to their existing OPAX profile.
- Speeches. Counts of Victorian Hansard speeches held by OPAX, with the years they cover. A count that starts in 2022 includes speeches made before the November 2022 election. Members who have also sat in federal Parliament show no count, because their records can't yet be separated.
- Votes. Victorian division records cover 2026 only, and only questions with a recorded title are listed. A missing record doesn't mean a member didn't speak or vote.
- Not held. There is no Victorian register of members' interests in OPAX and no Victorian state grants. Federal electorates are different from state districts, so federal grants aren't assigned to them. No donor records appear on the election pages.
- Licences. VEC website material and ABS data are licensed CC BY 4.0 (© Victorian Electoral Commission; Source: Australian Bureau of Statistics). No VEC maps, images or branding are reproduced. Victorian Hansard and division records are copyright material without an open licence, so these pages show counts and links, not the text of speeches.
MCP research tools
Connect a research client to https://opax.com.au/mcp using Streamable HTTP
and a Bearer key from your account. Send JSON-RPC requests
over HTTP POST with Content-Type: application/json and
Accept: application/json, text/event-stream. Use tools/list for
the current schemas and tools/call to run a tool. All tools are read-only.
The record tools are search_records, read_record,
find_connections and corpus_coverage. Grant readers
read_grant_recipient and read_grant_program open the IDs returned
by grant searches. Source URLs support every result; connections do not establish influence.
electorates_rank
Rank, filter or look up federal or state electorate demographics from the published 2021 Census (ABS). Ask and MCP use the same tool. Current federal House seats, ascending order and one result are the defaults. All ties at the cutoff are returned; missing values are excluded, never treated as zero. Figures use published Census boundaries and are not redistributed to newer electorate boundaries.
- Required:
indicator. Options aremedian_income,median_household_income_weekly,median_age,unemployment_rate,rental_pct,university_pct,population,average_household_size,born_overseas_pct,homeownership_pct,indigenous_pct,labour_force_participation,median_mortgage_monthlyandmedian_rent_weekly. - Scope:
jurisdiction(federal, a state/territory code, state or all),chamberandstatus(current, historical or all).jurisdiction: "vic"means Victorian state seats;jurisdiction: "federal", state: "vic"means federal seats in Victoria. - Operation:
operation(rank, filter or lookup),order(asc or desc), inclusivemin/max, andlimit(1–50).electorateis an exact name, slug or ID; it is required for lookup, and implies lookup when operation is omitted. - Units: personal and household income and rent are AUD/week; mortgage is AUD/month; age is years; population is people; household size is people/household; other indicators are percentages.
Example call for the lowest personal median income:
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "electorates_rank",
"arguments": { "indicator": "median_income", "order": "asc" }
}
}
Output excerpt from the published release:
{
"rows": [{
"name": "Fowler", "jurisdiction": "federal",
"chamber": "representatives", "value": 521, "unit": "AUD/week",
"url": "https://opax.com.au/subject/electorate/federal-representatives-nsw-fowler",
"source": "2021 Census (ABS)"
}],
"citations": [{
"text": "Fowler (Federal, House of Representatives): median personal income $521 per week (2021 Census (ABS))",
"url": "https://opax.com.au/subject/electorate/federal-representatives-nsw-fowler"
}],
"notes": ["Median income means personal weekly income; household weekly income is a separate indicator."]
}
The MCP result includes this JSON in both structuredContent and a text
content block. Invalid inputs return JSON-RPC -32602. No available profiles
return empty rows with an explicit unanswerable reason and notes. In this release,
Victorian state seats have no published Census profiles, so their ranking is unavailable.
Known limitations
- Hansard is a revised record ("substantially verbatim"), not a raw transcript.
- Party labels use a 15-value canonical vocabulary; some speeches carry no party label.
- State coverage windows differ by parliament (QLD only from 2024, NSW/VIC from 2015).
Corrections
- 30 September 2026, grants by seat. Grant program pages now take each seat's member and party on the grant date from the parliamentary service records, which date every change of party. They previously used the member's current party, so a member who later changed party was counted under the later party. A seat that was vacant on the grant date is now left out of the "to seats held by the government of the day" share, as awards without an electorate already were, and shown as a vacant seat. That share changed for 50 federal programs; award totals did not change.
Licence, code and corrections
AGPL-3.0. Source and issue tracker: github.com/jaketracey/opax. Data errors are corrections we want, so please report them.