1. gibin.in
  2. Projects
  3. Fees Validator
Case study · Edvoy

Fees Validator: find the fee, check it once, apply it everywhere

Fee pages bury numbers inside paragraphs, and one fee often applies to dozens of intakes. Typing it into each one is how mistakes creep in. So the AI finds it, a person checks it once, and one click applies it where it belongs.

60-70% less manual QC*Shift + A summariserone fix, many intakes

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?"

60-70%less manual QC, across this tool and the Subject Validator together
1verified fix can update every related intake
Everyverified fee carries a name and a time

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.