How positions are computed
Scope: this page describes the position resolver for Australian federal bills only. Other jurisdictions (Queensland state bills, US federal bills) and other content types (inquiries, petitions) use different data shapes and don't apply this five-tier cascade.
TrackGov resolves each MP's position on each bill through a five-tier cascade. We always prefer the strongest direct evidence available, falling back to inference only when recorded evidence is absent.
The tier shown in the position modal tells you which level of evidence we used. Lower numbers mean stronger evidence.
Tier 1 - Direct vote
For AgainstThe MP is named in a recorded chamber division on a stage of the bill. This is the strongest evidence: the official roll-call list places the MP on Aye or No.
When a Tier 1 vote contradicts the MP's own party majority, we mark it as a rebellion.
Tier 2 - Hansard dissent
For AgainstNo name-by-name division was held, but the MP was recorded in Hansard as one of a small number of members objecting. We treat this as a recorded individual position even though it didn't go to a numbered vote.
Tier 3 - Party-derived
Presumed For Presumed AgainstNo individual record exists. We infer the position from how the MP's parliamentary group voted on the bill. If the group split or had no recorded position, we don't infer.
Tier 3 applies to every MP of the relevant chamber whose parliamentary group had a majority position on the bill - including MPs who did not attend the vote. If the MP rebelled on any division for the same bill, Tier 3 is suppressed for that MP (we don't presume a position when we have direct evidence they broke with their group).
Tier 3 positions are marked presumed in the UI to make the inference visible - they are not a substitute for direct evidence.
Tier 4 - Sponsor-derived
Presumed For Presumed AgainstNo division was held on the bill at all. We infer the position from the bill sponsor's party affiliation: members of the sponsor's party are presumed in favour, members of opposing parties are presumed against. This is the weakest tier we will materialise.
Tier 5 - No record
— No record — Not in chamberThere are two reasons we won't infer a position:
- Outside term - the MP's parliamentary term doesn't overlap with the bill's stages, so they had no opportunity to vote.
- No record - no division was held, and the MP isn't in the sponsor's party, so we have no basis for inference.
Tier 5 is the only outcome where we explicitly say we don't know.
Freshness and versioning
Each position carries a last_updated timestamp and a resolver version number. When
we change how the cascade decides, we bump the version so old computations can be recognised
and re-run.
Source data - divisions, Hansard, party rosters, bill metadata - is refreshed daily from the relevant parliament's public records.
Reporting an error
If a position looks wrong to you, we want to know. Email admin@trackgov.com with the bill, the MP, and what you saw.