Skip to content

DanilOlgin/visa_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Australian Skilled Visa Invitation Analysis

Data-driven analysis of invitation trends for ANZSCO 261313 (Software Engineer) across Australian skilled migration visa subclasses.

The Problem

Australia's skilled migration system is points-based — your age, English proficiency, qualifications, and work experience translate to a score that determines whether you're invited to apply for permanent residency. Immigration forums and migration agents often cite general thresholds ("80–85 points is competitive"), but these don't account for occupation-specific trends, onshore/offshore splits, or state nomination patterns.

I needed to know: is my score actually competitive, or am I waiting for an invitation that will never come?

What I Built

A scraper + analysis pipeline that pulls ~6,000 crowdsourced visa application records from SmartVisaGuide and analyses invitation patterns by:

  • Points bracket (65–100)
  • Location (onshore vs. offshore)
  • Visa subclass (189 independent, 190 VIC, 190 NSW)
  • Year

Key Finding

At 85 points, offshore applicants for Software Engineer (261313) have received effectively zero state nominations from VIC or NSW since early 2023. The 189 (independent) subclass shows zero invitations at 80 points. The realistic competitive threshold for offshore applicants is 90+ points.

This finding directly changed my migration strategy.

Stack

  • Python — scraping (requests, BeautifulSoup), cleaning & analysis (pandas, re)
  • Chart.js 4.4.1 — interactive bar charts for invitation trends
  • HTML/CSS — dark-themed dashboard for visualisation

Project Structure

├── scraper.py          # SmartVisaGuide scraper (requires login session)
├── analyze.py          # Data cleaning, parsing, and statistical analysis
├── charts.html         # Chart.js dashboard (reads from output/chart_data.json)
├── data/               # Raw scraped CSVs (not committed)
│   ├── svg_261313_189.csv
│   ├── svg_261313_VIC_190.csv
│   └── svg_261313_NSW_190.csv
└── output/             # Generated analysis outputs
    └── chart_data.json

Usage

# 1. Scrape data (requires SmartVisaGuide session cookie)
python scraper.py

# 2. Run analysis
python analyze.py

# 3. View charts
open charts.html
# (or serve locally: python -m http.server 8000)

Data Notes

  • Source: SmartVisaGuide — crowdsourced, self-reported visa tracking database
  • Raw scraped HTML contains inconsistent whitespace and date formats, handled via regex-based parsing
  • Grant time strings (e.g. 1Y 3M 28D) are converted to total days for analysis
  • Crowdsourced data has inherent reporting bias — results represent trends, not ground truth

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors