Parent portal, fee reconciliation and an agentic L1 helpdesk
Forty campuses, one fee policy and 100% of L1 questions arriving by phone. We shipped a parent portal, reconciled fees against bank files, and put an evaluated agent in front of L1.
Client: K-12 school network (anonymized)
−35%
Ticket handle time
+18%
On-time fee collection
320
Golden evals in CI
Challenge
Fee queries and challan reprints consumed campus admin staff for the first ten days of every month.
Bank settlement files reconciled manually; late allocations looked like non-payment to parents.
Policy answers differed by campus because the source of truth was a shared drive.
Approach
Parent portal in Next.js with per-guardian roles, challan history and payment status.
Postgres fee ledger with automated bank-file ingestion and exception queues instead of manual matching.
RAG agent over versioned policy documents, scoped by campus, with citation-required answers.
Eval harness: 320 golden questions, weekly regression run, hard refusal on fee-amount questions outside the ledger.
Human handoff on low confidence, with full transcript attached to the ticket.
Architecture
flowchart TB
U[Parent] --> W[Next.js portal]
W --> A[Agent orchestrator]
A --> R[(Policy index - versioned RAG)]
A --> F[(Postgres fee ledger)]
A --> E[Eval + guardrail layer]
E -->|low confidence| H[Human L1 queue]
BK[Bank settlement files] --> ING[Ingestion + exception queue] --> F
Answers come from the ledger or from cited policy — the model never invents a number.
Stack
Next.js
Postgres
Python
GPT-based agent
RAG governance
Bring the initiative that is stuck. We will tell you what we would do in the first two weeks.
Thirty minutes, an architect on the call, no deck. You leave with a position on sequencing and risk whether or not you hire us.