← Back to dashboard · About & corrections

Methodology & limitations

Contest Lens answers one question: who is spending money to influence this specific electoral contest, right now? Its credibility depends on being explicit about what the underlying data can and cannot say. Everything below applies equally to every advertiser — party, candidate, union, lobby group or community page. The system has no editorial layer: same schema, same thresholds, same language for everyone.

Spend and impressions are ranges, never exact figures

Meta's Ad Library reports spend and impressions as brackets (for example "$1,000–$4,999"), not exact numbers. We store the bounds and chart the midpoint with the full range shown as a band. Any single number you see here is a midpoint estimate, and the truth lies somewhere in the surrounding band.

Daily activity is inferred from cumulative totals

The Ad Library reports lifetime cumulative totals per ad. We snapshot those totals daily; a day's estimated activity is the difference between consecutive snapshots. Because the underlying figures are brackets, a day-over-day change only becomes visible when an ad crosses a bracket boundary — small daily spend can be invisible for days and then appear at once. The first day an ad is observed has no delta at all: we cannot tell how much of its total predates our tracking.

Our figures are checked against the source

Because every number here is derived rather than reported, the derivation is checked in two ways. The daily arithmetic is re-computed independently from the raw stored readings — most recently across 14,457 daily figures, with no discrepancies. The readings themselves are spot-checked by hand against what the public Ad Library displays for the same ad: on 31 July 2026, five ads across three advertisers matched exactly on both spend and impression ranges. Any change to how we read the source triggers a fresh check.

Electorate relevance is inferred, and labelled as such

Meta reports ad delivery by state only (e.g. "WA: 94%"), not by electorate. Whether an ad is relevant to this contest is inferred from, in decreasing order of confidence: (a) the advertiser being a tracked campaign page dedicated to this contest, (b) the creative text naming the electorate or a candidate, (c) the creative text naming a suburb in the electorate. Every ad-to-contest link in our data records its reason and a confidence level, and inferred relevance is always labelled as inferred. Some relevant ads will be missed; some included ads may mention the same places for unrelated reasons.

Ambiguous single-word matches — a bare surname, or a suburb name that is also a common word — are only counted when the ad also delivered mostly within the state, and are capped at medium confidence. Without that check, a candidate surname matches unrelated advertising across the country.

Only ads from this contest's campaign period count

Advertisers run ads for years across many elections. An ad that finished delivering before this campaign began cannot have influenced it, so it is excluded regardless of who ran it or what it said. This matters most for party pages, whose archives stretch back several elections: counting them wholesale would attribute years of unrelated spending to this by-election.

For the same reason, a party or organisation that campaigns across many contests is treated differently from a campaign page dedicated to this one. All ads from a candidate's own contest page count; ads from a statewide party page count only when they name the electorate, a suburb, or a candidate.

Some contest advertising is not aimed at local voters

Ads about this contest are sometimes delivered nationally rather than in the electorate — for example, fundraising appeals that name the seat but are shown to supporters in other states. These are included when they name the contest, because they are money spent in connection with it, but they are not evidence of advertising reaching local voters. Since delivery data is state-level only, we cannot tell how much of any ad reached the electorate itself.

Two disclosure regimes, at very different speeds

Western Australia changed its rules from 1 July 2024. Contributions to state political entities must now be disclosed to the WA Electoral Commission within days — by the end of the next business day during the capped expenditure period, or within seven days otherwise — and are published continuously. Donations to the parties contesting this seat are therefore public while the campaign is running.

Federal disclosure works differently and much more slowly: annual returns covering polling day are not lodged until after the financial year ends, and are published months later again. The historical donation figures shown on the dashboard come from that federal register and are from earlier years.

An earlier version of this page stated that this contest would be decided before its funding was disclosed. That was written from the federal timetable and is wrong for a Western Australian state contest. It has been corrected.

Attribution is curated and conservative

Ads carry a funding byline ("Paid for by …"). Linking a byline to a real-world registered entity is a manual, evidence-based step; until that happens an advertiser is shown as unattributed. Unattributed does not mean suspicious — it means not yet verified.

Scope: Meta only, public data only

This instance covers Meta platforms (Facebook, Instagram) via the public Ad Library. Google ad transparency data is planned; TikTok and organic (unpaid) content are out of scope. We use only public advertiser data, registered-entity records, and disclosed donations — no personal data, no group content, no scraping.