What is an EOI?
An Expression of Interest is a SkillSelect record expressing interest in skilled migration. It is not a visa application. EOIs are not unique people. One person may submit multiple EOIs, and one EOI may include multiple visa preferences. This MVP queries only the 189 points-tested visa type.
What do statuses mean?
- Submitted: a completed EOI eligible for selection, with points attributed from its information.
- Invited: an invitation to apply has been issued. The snapshot counts records currently in that status.
- Lodged: a visa application was lodged using an invitation.
- Hold: the migrant has suspended the EOI; it cannot be invited while on hold.
- Closed: supported by the database when returned by the official dataset. No guessed counts are added.
Month-end pool, not new submissions
The official dashboard defines As At Month as a snapshot
taken on the last day of the month. The trend shows Submitted EOIs in pool at each month end. It does not
show new EOIs submitted during that month. Some official Submitted
records have points below 65; we preserve those returned bands rather
than silently excluding them. The site does not independently certify
visa eligibility. Month Submitted is a separate field and
is not used as our trend axis.
What does <20 mean?
The dashboard masks positive counts below 20. We keep the raw text <20, store a null numeric value and set the suppression
flag. We do not substitute 0, 10 or 19. A hatched points row has no
numerical bar length. Suppressed observations create gaps in the line
chart. Unreturned observations are Not available, not zero.
Occupation totals, market totals and 65+/70+/75+/80+/85+/90+ aggregates are queried independently using the same masking rule. An exact published aggregate may be available even when some component bands are suppressed. We never reconstruct suppressed cells by subtraction.
Two kinds of history
Captured Snapshot History: all complete releases this platform actually retrieved, each preserved with a timestamp and dataset hash.
The interface defaults to the latest complete release. Previous release facts are immutable. If a later release returns a different count for the same historical month, both values survive under different release IDs. We cannot recover original earlier releases that we never captured.
The official documentation describes a live source system and delayed monthly dashboard refreshes. It does not, in the evidence retrieved for this MVP, establish that expired EOIs are always removed from prior monthly counts. That specific mechanism remains unverified. Our version design allows actual revisions to be detected without assuming a cause.
Pool versus invitation round
The EOI pool is a stock at a point in time. Invitations issued are events in a dated round. The count of snapshot Invited EOIs must not be interpreted as invitations issued in that round. Snapshot Invited/Lodged points may also change after invitation; invitation scores here come only from published round tables.
Invitation history and missing values
Home Affairs publishes round totals and, for many rounds, occupation
minimum scores. It generally does not publish per-occupation invitation
counts or per-occupation tie-break dates in these tables. These fields
stay Not available. Round-level tie-break text is shown
separately, exactly as published, including source anomalies such as 15/2024.
An explicit source row without a numeric 189 score is shown as “Not invited in this round”. An absent occupation is only marked not invited when all source labels are resolved; unresolved labels make absence ambiguous, so it is Not available. This describes the published outcome, not its cause. Four-digit group results are not copied to six-digit occupations.
For older tables with separate subclass 189 offshore/onshore scores, the displayed value is the minimum of available published 189 scores. The raw row remains visible in details. This is an aggregation of the official row, not an invented common cutoff. Names are linked using normalized exact matching only; unmatched labels remain stored for review.
Calculated metrics
Pool change = (current published total / prior published total − 1) × 100. Values are compared within the same latest release and rounded to one decimal place. We do not calculate percentages from suppressed or missing values, or a zero baseline. High-score share uses a directly queried official threshold aggregate divided by the published total.
No invitation probability, personal success chance or expected invitation date is provided. Pool growth is not automatically good or bad. Changes use neutral styling.
Cumulative Score Pool
65+/70+/75+/80+/85+/90+ means Submitted EOIs at that score or above. Independently queried exact official aggregates are preferred, even if individual component buckets are suppressed. Otherwise only known counts are summed; a + suffix identifies a lower bound when suppressed buckets remain. We never recover a hidden score bucket by subtracting totals. Missing observations are not assumed zero.
Growth Metrics
1M/3M/6M/12M absolute movement = current exact total minus the exact total in the target calendar month, within the latest release. Percentage = movement / baseline × 100. Missing or suppressed totals produce Not available; a zero baseline has no percentage. The growth ranking requires baseline ≥100 and absolute increase ≥20 to avoid tiny-base distortions. Growth is not new submissions, unique people or a forecast.
Competition Pressure · v1
Calculated by this site, not the Australian Government. Pool size 25%, exact 75+ pool 25%, 6M percentage growth 20%, latest matched published invitation score 20%, days since that invitation 10%. Days use the EOI snapshot month-end reference date. For each factor we rank data-complete occupations using average tied rank, normalize 0–100, then add percentile × weight. At least five peers and all five exact inputs are required. Missing inputs or lower-bound high-score pools produce no score; weights are not redistributed.
Average-tie percentile = (number of peers below + (number tied − 1) / 2) / (peer count − 1) × 100. Scores are rounded to one decimal: Low <30; Moderate 30–<60; High 60–<80; Very High ≥80. Peer composition can change across releases, so scores are relative to that capture, not an absolute scientific scale. Missing occupations are excluded, which can affect representativeness. These weights are a transparent descriptive design, not a statistically validated prediction model.
Competition Pressure is a comparative indicator based on current EOI pool and invitation data. It is not a probability of invitation, migration advice or a prediction of visa grant. An old invitation reflects the last accessible matched published outcome, not a confirmed period without invitation.
Your Points, Score Gap and Higher-score EOIs
Your Points accepts 65–130 in steps of 5, kept in local page state and optional shareable query parameters, never the database. Score Gap = your score − latest published matched invitation score. Higher-score count includes points strictly above yours; same-score count is the official exact bucket. At-or-above count includes your bucket. Official exact threshold queries may be used; otherwise suppressed bands mean a lower bound. An absent exact bucket is Not available, not an invented zero. EOI records are not unique people and same-score EOIs may be ordered using Date of Effect where applicable. None of these counts or gaps establish your queue position, visa eligibility or future invitation outcome.
Post-round Pool Movement
We find the latest month-end snapshot strictly before a matched invitation date and the first month-end snapshot on or after that date, inside the same captured official history. Each side must be within 62 days of the round; distant out-of-coverage observations are unavailable. Differences require exact values on both sides. Lower-bound or missing cells do not get an exact difference. This is a monthly window, not an immediate causal measurement. Movement can reflect invitations, expiry, withdrawals, profile updates and revisions; it must never be interpreted as exact invitations issued.
Data Revisions
A new source capture is compared to the previous latest capture on overlapping historical months, six-digit occupation, subclass, status and exact points. Raw-value and suppression/missing transitions are preserved, with release IDs. Numeric differences are only computed for two exact values. Entire months entering/leaving the rolling window are not revisions. Only one actual EOI capture currently exists; no older release or source revision is fabricated. Revised values do not prove expiry or any other cause.
Data Quality Gates
Only data passing validation enters the database. Empty sources, schema drift, invalid counts/points/dates, duplicate rows, missing official source, coverage drops, backwards releases and market swings over 50% block imports. Raw evidence and alerts are retained, while previous published data stays available. Exceptional individual changes produce warnings, not unsupported causal explanations. Versioned metrics are recalculated before publication, then tests/build gate deployment.
Coverage and updates
The catalogue contains the occupation labels available in the official dashboard, not a claim that every occupation is currently eligible for subclass 189. “Tracked” means the official 189 history returned observations. Monthly EOI updates and weekly invitation checks are configured in GitHub Actions. Failed fetches or validation errors do not overwrite release facts. Production publishing requires tests and a successful build.
Evidence
Definitions are recorded from the official Qlik overview and glossary
objects WpdPJ and YvjARJ. Raw Qlik response
pages and official invitation HTML are retained in data/raw/. See all official sources
.