NDIS Invoicing: Checking Claims Against Shift Notes With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for NDIS Invoicing: Checking Claims Against Shift Notes With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for NDIS Invoicing: Checking Claims Against Shift Notes With AI.

An NDIS provider can use AI to check invoices against shift notes before claiming by exporting a batch, matching each line's participant reference, date, hours and support item to the matching shift record, and listing every mismatch for a person to resolve. AI flags; a named person decides and submits. Never let anyone adjust a line to increase the claim.

The reason to bother is simple. The funder expects each claim to be complete, truthful and accurate, can check claims against your records, and may require repayment where records fall short. A mismatch found on Tuesday costs a phone call. The same mismatch found in a payment review costs money, time and trust. What follows is a staged process with prompts, sample outputs and the failure modes to expect.

Follow me on Instagram@sagnikteaches

What the records have to show

The funder's record keeping page says providers need complete and accurate records of the supports they deliver, including invoices, support logs, rosters, case notes and service agreements. All records should carry the participant's name, their NDIS number, the date or dates of the support, the amount, quantity or hours delivered, and the support type. Invoices add the business name, business number, the participant's address, the support item number from the support catalogue, claim type, total amount, any tax component and, for plan managers, the third-party provider's business number. Each invoice can cover only one participant, though it can include several supports. Support logs are signed by the participant, a child representative, a nominee or a legal guardian.

Connect on LinkedInSagnik Bhattacharya

Those lists are the checking criteria. Every automated check below is a comparison between two records on one of those fields. If a check does not map to a field the funder cares about, it is probably noise.

Subscribe on YouTube@sagnikteaches

Stage 1: decide what "match" means before you automate

The first job is to write a one-page rule sheet. Without it the AI invents its own tolerances and different people apply different standards. Decide in advance:

  • Time tolerance. Does a claim of 2.0 hours match a note showing 1 hour 55 minutes? State your rule, based on what your service agreements and the funder's pricing arrangements allow, rather than copying another provider's habit.
  • Source of truth. If the roster says 9:00 to 11:00 and the note says 9:10 to 11:05, which wins? Usually the signed support log or the timestamped note.
  • Support item mapping. Which support item numbers can a given worker role claim? A support worker and a therapist will not share items.
  • Required fields. A note without a participant goal reference or signature is incomplete even if the hours match.
  • Cancellations and travel. Write down how each is recorded and what documentation each needs, using the funder's current rules rather than memory.

Rules about price limits, cancellations and travel change over time. Read the funder's current pricing arrangements and catalogue when you write the rule sheet, and update it when they change. Your adviser or an experienced billing person should sign it off.

The funder also publishes a short document, linked from its record keeping page, that lists for each support category which records it expects. Use it to set the required-fields rule per category: a group activity line is checked against a roster showing attendance and the participant-to-staff ratio, an individual support against a signed support log, and a support whose category calls for case notes against notes that tie the activity to the support item and the participant's goals. One rule for every line either misses gaps or flags lines that are fine.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Stage 2: export a clean batch

You need two tables, one from invoicing and one from shift records. Export only the columns the check needs and replace names with a participant reference. Illustrative columns for invoice lines: invoice_no, participant_ref, date, start, end, hours_claimed, support_item, rate, line_total. For shift notes: shift_id, participant_ref, worker_id, date, clock_in, clock_out, support_item_code, goal_ref_present, signed (Y/N), travel_minutes, cancellation_flag.

Keep the key as a separate sheet that never goes near the AI tool. If your provider software has its own matching or "claim readiness" report, use it as well; the AI step covers gaps those reports leave, such as inconsistent notes.

Where to run the check

For small batches (a few hundred lines), a business-plan chat tool that accepts a spreadsheet upload is enough, provided your adviser is content with its data terms; business plans such as ChatGPT Business, Claude Team and Microsoft 365 Copilot do not train on business content by default. For larger batches, a spreadsheet formula approach avoids sending anything out at all: a lookup joining the two tables on shift ID and a few comparison columns will catch most mismatches with no AI. Use AI for the fuzzy part, reading free-text notes, and use formulas for the exact part.

Stage 3: the first pass with formulas

Do not ask an AI tool to do arithmetic you can do with a formula. Join the tables, then add flag columns:

  • hours_actual = clock_out minus clock_in.
  • hours_diff = hours_claimed minus hours_actual (flag if over your tolerance).
  • no_note = invoice line with no matching shift row.
  • no_invoice = shift row with no invoice line (a missed claim, which is also worth knowing).
  • item_mismatch = invoice support item differs from the shift's support item.
  • unsigned or no_goal = missing fields.

For help building these in a spreadsheet, the older tutorials on using ChatGPT with Excel show how to ask for the formulas rather than the answers.

Worked example: one fortnight, 180 invoice lines

Take an illustrative provider with eleven support workers and 180 invoice lines in a fortnightly batch. The formula pass flags 23 lines: 9 with an hours difference over fifteen minutes, 5 with no matching note, 4 with a different support item, 3 unsigned logs and 2 shifts with no invoice line. That is a 13 per cent flag rate, higher than you would like but typical for a first run.

Now the AI step. The 23 flagged lines plus their free-text notes (names removed) go into a prompt that asks for a plain explanation of each mismatch, and whether the note text explains it. For six lines the note explains the difference ("ran over, participant asked for help with a meal", "left 10 minutes early, appointment cancelled by participant"); for the others there is no explanation. A coordinator rings the workers about those and resolves them in about 90 minutes in total.

The outcome, in illustrative numbers: 14 lines are corrected downward to actual time, 3 are corrected upward because the worker under-recorded, 2 missed claims are added, 3 are held until a signed log is obtained, and 1 is withdrawn because no support was delivered. Notice the corrections go both ways, which is what a truthful check produces. A process that only ever finds corrections upward is not a check; it is a claims-maximiser, and the funder's reviews would treat it as one.

Prompt for reading flagged lines

You are helping a coordinator check NDIS claims. Below are flagged lines
with an invoice summary and the worker's shift note (names removed).
For each line, answer in one row: line ID; what the mismatch is (hours,
item, missing note, missing signature); whether the shift note text
explains it, quoting the exact phrase if so; and what the coordinator
should ask or check. Do not recommend changing any claimed amount.
Do not assume anything the note does not say. If the note is silent,
write "No explanation in note".

LINES:
[paste flagged lines]

Illustrative output for two of the lines:

L-0412: hours claimed 3.0, shift 2.5. Note says "participant unwell, left early at 12:30". Explains the difference. Ask: confirm the claim is for 2.5 hours.
L-0457: item mismatch (claimed community participation, shift coded personal care). Note says only "morning routine". No explanation in note. Ask: which support was delivered, and has the participant's agreement been updated?

The line "Do not recommend changing any claimed amount" is deliberate. The tool lists the question; the human decides the answer. Without that instruction, models are inclined to be helpful and suggest an adjustment, which is not what you want.

Never adjust to maximise a claim

This rule deserves its own section because the pressure points are subtle. It means:

  • No rounding up to a convenient block unless the pricing rules and your agreement explicitly allow it.
  • No moving a shift to a more profitable support item because it pays better.
  • No filling a gap in a note with plausible wording to support a claim; if the note is missing, claim only what is documented, or hold.
  • No letting the AI tool "tidy" the notes so they match the invoice. Notes are records of what happened; they are not edited to fit a claim.

Write it on the rule sheet and put it in staff guidance. If a worker or manager asks the tool to reconcile the two by changing one of them, that is a conduct issue, and the answer is no. If you are unsure whether a particular practice is acceptable, ask a qualified adviser or the funder directly; do not rely on what an AI tool tells you.

Stage 4: human approval with a log

Before submission, one named person approves the batch. A simple approval log (batch date, lines checked, lines flagged, lines changed up, lines changed down, lines held, sample size, approver initials) takes two minutes and gives you an audit trail. Keep it with your other claim records. Where your service has a small finance team, make approval a two-person step for any batch with more than a set number of flags or a total above a threshold you choose.

Keep the AI output and prompt version with the log so you can see later what it was asked and what it said. Store them as records of the check, not in a chat history that might vanish.

Five more checks worth adding once the basics work

Duplicate lines. The same participant, date and time claimed twice, perhaps from a re-export. Formulas find these exactly.

Overlapping shifts for one worker. A worker clocked into two places at once. It sometimes reveals a clock-in error and sometimes a real problem; either way a person should look.

Group sessions. A roster should show the participant ratio and that each participant attended. A prompt can compare the attendance list with the invoice lines and show who is missing from one or the other.

Participant agreement fit. Compare the claimed support item and rate against the signed service agreement. A line outside what was agreed is a conversation with the participant before it is a claim. The service agreement tutorial covers wording that makes this easier.

Late or aged claims. A list of delivered supports not yet claimed, ranked by age, so nothing is lost. Check the funder's current time limits before you rely on any figure.

A filled-in rule sheet

A rule sheet is easier to copy than to imagine, so here is an illustrative one for a small provider. The figures are examples; your own come from your service agreements and the funder's current rules.

RuleIllustrative settingIf broken
Hours toleranceClaim actual clocked time, rounded as the agreement states; flag any gap over 15 minutesHold line, ask worker
Source of truthSigned support log first, then timestamped note, then rosterRecord which source was used
Required fieldsParticipant reference, date, times, support item, goal reference, signatureHold until complete
Item by roleSupport workers claim only items on the approved list for their roleEscalate to manager
CancellationsOnly where documented per the current rules; note must show notice givenRemove from batch
ApproverFinance lead, second person above ten flagsBatch not submitted

A note that fails, and the same note repaired

Most mismatches start with a thin note. Here is an illustrative before and after for a single shift, to show what the check keeps tripping over and what a worker can add in under a minute.

Before: "Did usual morning routine, all good." (Invoice line: 2.5 hours, personal care.)

After: "Arrived 8:00, left 10:30. Helped with showering and breakfast (personal care). Participant chose to walk to the shops after, which is a community access goal; this started at 10:00 and was not part of the personal care time. Participant signed log on departure."

The repaired note exposes a real problem: 30 minutes of the shift may belong to a different support item. A check that only compared total hours would have passed the line. One that reads the note and asks about it finds the issue, and the coordinator corrects the split before claiming. This is the kind of find that justifies the exercise.

You can use the same idea upstream. Ask AI to turn a rule sheet into a one-card note prompt for workers ("Times in and out? Which support? Which goal? Anything that changed?") and put it in the app. Better notes are the cheapest fix for claim errors.

A three-worker provider doing this with a spreadsheet

Not every provider has a coordinator. Suppose an illustrative sole director with three casual workers and eight participants sends about 40 invoice lines a fortnight. A formula-only check takes 20 minutes to set up and 15 to run. The AI step is only for the free-text notes behind the three or four lines that flag. In that case the whole check takes about 25 minutes a fortnight, and the prompt above is saved in a document and pasted each time. The point is that the approach scales down; the discipline (rule sheet, two tables, flags, human approval, log) is the same at 40 lines as at 400.

A quick sum shows why it earns its place. If one 2-hour line a fortnight is wrongly claimed and later reversed, with an illustrative support rate of $60 an hour, that is $120 at risk each time, plus the time to unpick it. Over a year the check costs roughly 11 hours of the director's time and prevents a pattern of small errors that a review would treat as a process failure, not a one-off.

Clock-in drift, shared notes and other false flags

Clock-in drift. A time and attendance app syncs overnight and misses shifts that ended late. The symptom is a cluster of "no note" flags on one date. Look for patterns before blaming workers.

Shared notes. One note covering two participants breaks the "one participant per line" logic. The fix is process: separate notes, or a group roster.

Free-text surprises. The AI reads "cancelled" as a cancellation when the note says "didn't cancel despite being ill". Always have a person read the lines the AI marks as explained, at least until you trust the prompts.

Rule drift. Pricing arrangements change and the rule sheet does not. Set a calendar reminder to check the funder's pricing page quarterly and log each review.

Privacy leaks. A coordinator pastes full notes with names into a free personal chat tool "just for this batch". Use the participant reference and a business plan, and read the tutorial on the privacy principles for what to tell staff.

Measuring whether it helped

Track four figures each batch for three months: flag rate (flagged lines as a share of the batch), lines corrected downward and upward, time spent on the check, and payment queries or reviews received. A flag rate that falls from 13 per cent to under 5 per cent over a quarter means the upstream processes are improving, which is the real aim. Time spent should come down too; if the check takes longer than the old manual one, simplify it.

Suppose manual checking used to take a coordinator six hours a fortnight and the new process takes two and a half. That is 3.5 hours saved per fortnight, about 90 hours a year, before counting claims you no longer lose through errors. These are illustrative numbers; do your own sum. For what happens after the claim, such as how claimed income and any repayments land in the books, the accounting tutorial for NDIS providers picks up where this check stops.

The funder's rules on claims, pricing and record keeping are the authority here. Check the current pages, and ask a qualified adviser about anything that affects what you may claim.

Claim-check questions

Can AI submit claims for us?

It should not. A claim is a statement to the funder that supports were delivered as described, and the provider is responsible for it being complete, truthful and accurate. Use AI to compare and flag before claiming, then have a named person approve and submit through your normal system or portal.

What should happen when a shift note and a roster disagree?

Hold the line item and ask the worker and supervisor. Do not let anyone, including software, choose the figure that pays more. Record what was found and which source was correct, and fix the process that produced the mismatch, such as a clock-in app not syncing.

Do we need to send shift notes to the AI tool?

Not whole notes with names. Most checks need only reference numbers, dates, start and end times, support item codes and a few tick-box fields. Where free-text matters, such as a travel note, strip identifying detail first or check those lines by hand.

How many lines should a person sample after the AI check?

Review every flagged line, plus a random sample of unflagged ones, say 5 to 10 per cent of the batch, at least until your error rate has stayed low for three months. Record the sample size and what you found, because the sample log is itself evidence of a working check.

Further reads

Sources: NDIS provider record keeping requirements and provider payment assurance information on ndis.gov.au (page current as of 20 August 2026), vendor data-use pages for business AI plans.

Want your pre-claim checks set up safely?

On a 1:1 call we'll walk through how shift notes, rosters and invoices connect in your setup, find the cheapest mismatch checks to automate, and agree where a human signs off.

Book a 1:1 call with me