Skip to main content
TrackGov Symbol TRACKGOV
Rollout Map
Login Sign Up
AU FederalQLD StateUS Federal

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 Against

The 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 Against

No 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 Against

No 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 Against

No 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 chamber

There 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.

© 2026 TrackGov Pty Ltd.
About Contact Attributions Changelog Methodology
Jobs Donate