Free visa expiry tracking spreadsheet template for migration agents

Most visa expiry templates online are built for HR teams tracking staff work permits. This one is built for a migration practice. It has a row per client visa, the four checkpoint dates your team should act on (90, 60, 30 and 7 days before expiry), a named responsible person, and a status column so you can see at a glance what has been handled.

Download the template, copy the formulas below into row 2, and you have a working visa expiry tracking spreadsheet in Excel or Google Sheets in about ten minutes.

The file includes three clearly fictional example rows. Delete them before you add real clients.

The columns

ColumnHeadingWhat goes in it
AClient refYour internal file reference
BClient nameFamily name, given name
CVisa subclassFor example 500, 482, 485
DGrant dateFrom the grant notice
EExpiry dateFrom the grant notice or VEVO
FConditionsCondition numbers that matter for this client
G90 days beforeFormula
H60 days beforeFormula
I30 days beforeFormula
J7 days beforeFormula
KDays to expiryFormula
LWindowFormula
MResponsible personOne named person
NNext actionWhat happens next, in a few words
OStatusPick from a list (see below)
PLast updatedDate you last touched the row

Enter dates in Australian format (DD/MM/YYYY). In Google Sheets, set File > Settings > Locale to Australia first, or dates may be read the American way. The CSV stores dates as YYYY-MM-DD, which both programs read correctly.

The formulas

Type these into row 2, then fill them down the column. They work the same way in Excel and Google Sheets. Each one returns a blank if the expiry date is empty, so unused rows stay clean.

Checkpoint dates (G to J)

G2: =IF($E2="","",$E2-90)
H2: =IF($E2="","",$E2-60)
I2: =IF($E2="","",$E2-30)
J2: =IF($E2="","",$E2-7)

Format G to J as dates (Format > Number > Date in Sheets; Format Cells > Date in Excel), or you'll see serial numbers.

Days to expiry (K)

K2: =IF($E2="","",$E2-TODAY())

Format K as a plain number. A negative number means the visa has already expired.

Window (L)

L2: =IF($K2="","",IF($K2<0,"Expired",IF($K2<=7,"7 days",IF($K2<=30,"30 days",IF($K2<=60,"60 days",IF($K2<=90,"90 days","Over 90 days"))))))

Optional: move checkpoints off weekends

If a checkpoint lands on a Saturday or Sunday, this version moves it back to the Friday before. Use it in place of the G to J formulas above (change 90 to 60, 30 or 7 for each column):

G2: =IF($E2="","",WORKDAY($E2-90+1,-1))

To skip public holidays as well, list them on a separate tab and add the range as a third argument, for example WORKDAY($E2-90+1,-1,Holidays!$A$2:$A$30). Public holidays vary by state and territory, so use your own.

Status list (O)

Use data validation (Data > Data validation in both programs) with these options: Watching, Contacted, Application in progress, New visa granted, Closed.

Colour the rows that need attention

Select A2:P500 and add conditional formatting rules using a custom formula:

A "this week" view

On a second tab, this formula lists every open row with a checkpoint in the next seven days or already inside the 90-day window (Excel 365 and Google Sheets):

=FILTER(Tracker!A2:P500,(Tracker!K2:K500<>"")*(Tracker!K2:K500<=97)*(Tracker!O2:O500<>"Closed"),"Nothing due")

Rename your main tab to "Tracker" or change the tab name in the formula.

How to use it each week

  1. Monday: open the "this week" tab. Everything listed either reaches a checkpoint soon or is already inside 90 days.
  2. Act on each row. Contact the client, start the application or record why no action is needed. Update Next action, Status and Last updated.
  3. Add new clients as they arrive. Record the expiry at intake, even for enquiries who haven't signed yet. Confirm the date from the grant notice or VEVO, which shows an in-effect visa's expiry date, period of stay and conditions.
  4. Close rows when the matter ends. When a new visa is granted, add it as a new row and set the old one to Closed.
  5. Keep one master file. Store it in one shared location with access limited to the people who need it, and never email copies around.

A few things the template can't know for you. Some visas carry conditions that affect what a client can apply for next (condition 8503, No Further Stay, is the common example), so note them in column F. Some bridging visas have no fixed expiry date while an application is being decided, and VEVO shows details only for a visa that is in effect. For those clients, track the event you're waiting on in Next action instead. Our student visa workflow guide and glossary cover the terms. This is general information, not legal advice.

For a quick one-off check, the free visa expiry date planner works out the 90, 60, 30 and 7-day dates for a single expiry and gives you a calendar file.

Where a spreadsheet stops working

A well-kept spreadsheet is a genuinely good tracker for a small caseload. It starts to strain in predictable ways as the practice grows.

It can't tell you anything. Every checkpoint depends on someone opening the file on Monday. If that person is away, nobody looks.

Copies drift. Once a second person keeps their own copy, or a filter is left on, dates go missing without anyone noticing.

The date is separate from the work. The expiry sits in one file while the application, documents, file notes and invoices sit elsewhere, so every follow-up starts with a search.

Access is all or nothing. Anyone with the link sees every client's visa details, and it's hard to tell who changed a date or why.

If you recognise two or more of these, our guide to moving from a spreadsheet to a CRM shows how to bring this exact file across.

The same routine in AgentDS

AgentDS records visa expiries on the client profile and shows upcoming ones on the dashboard. Each morning it emails the practice owner and the responsible person when a recorded visa, passport, document, application or task date is 90, 60, 30 or 7 days away, and again when it falls due. It suggests follow-up tasks from recorded expiries for you to review, and the expiry sits beside the client's applications, documents, notes and fees. You can import this template's columns straight in, and export all your data as CSV at any time.

See visa expiry tracking in AgentDS.

Frequently asked questions

Is the template free?

Yes. Download the CSV, open it in Excel or Google Sheets and add the formulas on this page. No sign-up needed.

Why are the formulas not in the file?

CSV files store plain values only. Paste the formulas into row 2 and fill them down; it takes a couple of minutes.

Why 90, 60, 30 and 7 days?

They give time for a first contact, a progress check, a final check and a last-week reminder. They are also the points at which AgentDS sends its deadline reminder emails.

Can a spreadsheet send me a reminder email?

Not on its own. You'd need scripts or add-ons. A CRM with reminder emails does it without extra set-up.

Can I import this spreadsheet into AgentDS later?

Yes. Upload it as CSV or Excel, match the columns to AgentDS fields and review everything before it's saved.

Let the reminders come to you.

Try every AgentDS feature free for 14 days, with your own client list. No card needed.

Product names are trademarks of their respective owners. Details checked on 29 September 2026; check each vendor’s site for current information.

← All guides
THE PEOPLE BEHIND AGENTDS

Hello. How can we help?

Share an idea or ask a question.

Every message gets a ticket number. We reply within 24 to 48 hours, seven days a week.

A better working day starts with a conversation. What would make yours easier?

0/500 · Please leave out client details and documents.

Our team receives your message and reply address. Privacy notice

Prefer WhatsApp? Talk to Usman ↗