The question for this tool wasn't "can an AI read a fee page?". It was "how do we make sure a fee is checked by a person exactly once, and then never retyped?"
The problem
Fee pages are written for people, not databases. The number you need sits in the middle of a paragraph, next to two other numbers you don't. There are conditions: a fee for full-time study, a different one for part-time, a note that fees "may" rise. And one fee usually applies to many intakes, the same course in September and January, or at two campuses.
Before this, we'd read the page and type the fee into each intake. Every extra keystroke was another chance for a typo, and nobody could easily tell later who had entered what.
How it works
Left: the page, with the AI's highlights
The scraped fee page sits on the left. One shortcut, Shift + A, runs the AI summariser. It pulls out the fees and highlights every amount and date on the page. It also flags the slippery words, like "may", that change what a number means. The reviewer reads the highlights instead of the whole page.
Right: every intake, ready to verify
On the right is each intake with its details: intake date, study mode, campus and fee. The reviewer compares, then accepts the fee or fixes it.
Then apply it once, to the right set
When a fee is right, one click applies it more widely. The reviewer chooses the scope: every intake, every full-time intake, or every intake at the same campus. Part-time stays untouched when the fee is full-time only. Then Verify.
Each record stores who verified it and when. If a number is ever questioned, there's a name and a time on it, not a shrug.
Why the scopes matter
I'll admit "apply to all" on its own would've been faster. It also would've been wrong. Fees really do differ by study mode and campus. Giving the reviewer three precise scopes kept the speed of a bulk update without flattening differences that are real. It's the same rule I use everywhere else: automate the repetition, keep the judgement with a person.
Around it
- Dashboards by source and by person, so progress is visible.
- A contributors list with the most active and most recent verifiers.
- Export, for when the data needs to go somewhere else.
Stack
React with TypeScript, Vite and Tailwind, Express, MongoDB, Google sign-in, an LLM summariser.
My role: I designed the review workflow and the bulk-apply rules. *The 60-70% reduction in manual QC is measured across the Fees Validator and the Subject Validator together. The fee on this page is a sample.