A board treasurer pulls up the year-end financial report in December and finds a line item that's $1,920 over budget. Nobody decided to overspend on landscaping. It happened a little at a time — a slightly higher invoice here, an unplanned tree removal there — across eight months of individually reasonable-looking payments that nobody added up until the year was basically over. By then the only options left are a special assessment, a scramble to cut spending elsewhere in the fourth quarter, or quietly rolling the overage into next year's budget.
This isn't a story about a careless board. It's what happens by default when a budget is checked once a year instead of continuously. A category can drift 5% over in March, 12% in June, and 32% by August, and every individual approval along the way looked fine in isolation. LotWize's AI Budget Deviation Alerts exist to close that gap — not by predicting the future, but by doing the arithmetic a board would eventually do anyway, every week instead of every December, and only surfacing something once it's actually wrong.
Why this is harder than "check the spreadsheet"
Manually catching a budget problem mid-year requires a board member to run three different comparisons, for every category, on a recurring basis nobody has time for:
Cumulative overspend is invisible until someone sums the whole year. A $6,000 landscaping budget works out to $500 a month. A board approving individual invoices — $480 in April, $520 in May, $650 in June after a storm — has no natural moment where "we're now 15% over pace" becomes visible. Each invoice looks like a normal, slightly-higher-than-usual bill. The overage only exists in aggregate.
One large invoice can blow a budget instantly, and it looks no different from a normal payment in the queue. An emergency tree removal billed at $3,200 is, on its own, more than half of that same $6,000 annual budget. A board approving expenses one at a time, mixed in with routine mowing invoices, has no built-in flag that says "this payment is structurally different from the others."
Reserve contributions can quietly fall behind pace unnoticed. A reserve fund is supposed to be funded gradually — by August, roughly two-thirds of the annual target should be in. If actual contributions are only half of target by then, the community is 17 points behind, but a bank balance that still has four digits doesn't look alarming on its own.
None of this requires prediction. It requires comparing two numbers, for every category, continuously — exactly the kind of check a volunteer board doesn't have the bandwidth to run every week, and the kind of gap that turns into a December surprise.
How LotWize actually catches it
The detection logic lives in lib/ai/budget-alerts.ts, in a function called findBudgetDeviations(organizationId, fiscalYear) — and it's worth being precise that this function contains no AI at all. It runs three fixed, deterministic checks against the budget and expense tables:
- YTD over-budget. For every category with a configured budget, it sums approved expenses (
status: "approved") year-to-date and compares the total to the budgeted amount. Any category more than 15% over budget gets flagged as "warning"; more than 30% over gets flagged as "critical".
- Oversized single transaction. For each category, it computes a threshold equal to 50% of that category's full annual budget, then checks whether any single approved expense meets or exceeds it. A tree-removal invoice at $3,200 against a $6,000 annual landscaping budget trips this check by itself — independent of whether the category's running total is over budget yet — and is always flagged
"critical".
- Reserve contribution pace. It looks at how far through the fiscal year the community is (month elapsed ÷ 12) and compares that to how much of the reserve category's annual budget has actually been contributed. If actual contributions are more than 10 percentage points behind the expected pace, it flags a
"warning".
All three checks only look at expenses with status: "approved" — a pending invoice sitting in someone's approval queue doesn't trigger anything. The alert is about spending the board has actually signed off on trending over budget, not about requests still waiting for a decision.
Only after that arithmetic finds something does AI enter the picture. generateBudgetAlertNarrative() takes the list of flagged deviations and sends them to Claude Haiku with instructions to write 2–4 plain-English sentences: what the current status is, a specific dollar projection if the pace continues, and three clearly labeled options — (A), (B), (C) — such as reducing scope, approving a budget amendment, or drawing from reserves. If nothing was flagged, this function is never called, so a quiet month costs nothing in AI usage.
Where the alert actually shows up
There are two separate surfaces, and they run on different schedules:
A real-time banner on the Budget page. app/(board)/board/finances/budget/_components/deviation-alert-banner.tsx renders a yellow alert card the moment a board member opens /board/finances/budget, calling a lightweight API route that runs only the arithmetic — no AI narrative, no added latency. It lists up to three active deviations by their plain-English message ("Landscaping is 32% over budget YTD") with a link to the full budget report. This exists so a board doesn't have to wait for a weekly email to see that something changed.
The weekly AI digest. LotWize's weekly-digest background job assembles a Claude-written summary of the week's collections, violations, chatbot activity, and expenses for every community. For communities on the Growth plan and above, it also runs the same three deviation checks and folds any flagged categories directly into that summary as a dedicated section. If nothing is flagged that week, the digest simply reads "No budget deviations this week" and moves on — the feature doesn't manufacture a problem to report on.
What it deliberately doesn't do
It's worth being precise about the boundary, because "AI budget alerts" can sound more automated than it is. LotWize doesn't cut spending, block future expense approvals, or auto-amend the budget when a category runs hot — every dollar still gets approved by an actual board member. The feature isn't a forecast in any statistical sense either: the reserve-pace check is a straight-line comparison (months elapsed vs. dollars contributed), not a model predicting cash flow, and the 15%/30%/50% thresholds are fixed constants in the code, not numbers an AI decided case by case. The arithmetic does the detecting; AI only writes the narrative, and only for categories arithmetic already flagged.
A concrete example
Take a community with a $6,000 annual landscaping budget, paid in routine $500-a-month invoices. In June, a storm brings down a large tree, and the board approves a $3,200 emergency removal alongside that month's regular mowing invoice — exceeding the 50%-of-annual-budget threshold and tripping the oversized-transaction check immediately. By August, cumulative approved landscaping expenses reach $7,920 against the $6,000 budget — 32% over YTD, crossing the 30% line into "critical" severity. The banner on the Budget page shows both flags next time a board member logs in. That same week, the AI digest folds them into one narrative, reading something close to:
"Landscaping is 32% over its annual budget after a $3,200 emergency tree removal in June, and at the current pace will finish the year roughly $2,600 over. Options: (A) approve a one-time supplemental allocation of $2,000 from operating reserves to cover the shortfall, (B) defer the fall irrigation service to bring the category back toward budget, or (C) approve a mid-year budget amendment reflecting the storm-related cost as a one-time exception."
No board member had to sum eight months of invoices to get to that sentence, and no one had to wait until the annual report to see it.
2026 Update: AI Budget Deviation Alerts are live on LotWize's Growth plan and above, checking every budgeted category continuously and surfacing flagged categories both on the Budget page and in the weekly AI digest. See LotWize's self-managed HOA tools or start a free trial to see how your own budget categories are tracking.
Key Takeaways
LotWize checks every budgeted category continuously instead of once a year, catching overspending in the same month it happens rather than in a year-end financial report.
Detection is plain arithmetic — three fixed checks (15%/30% YTD overage, 50%-of-budget single transactions, reserve contributions 10+ points behind pace) — not an AI model guessing whether something looks wrong.
AI only enters the picture after arithmetic finds a real deviation, turning flagged categories into a short narrative with three labeled options for the board — and costs nothing on a quiet week, since it's never called when nothing is flagged.
The alert appears in two places on different schedules: an instant banner on the Budget page with no AI involved, and a weekly AI digest that folds any flagged deviations into the board's regular summary email.
Only approved expenses count toward any of the three checks — a pending invoice sitting in an approval queue can't trigger an alert before the board has actually signed off on it.
This is a warning system, not a spending control: LotWize doesn't freeze accounts, block expenses, or change the budget on its own. The board still decides what happens next.
Frequently Asked Questions
What are LotWize's AI Budget Deviation Alerts?
A Growth-plan-and-above feature that continuously checks an HOA's approved expenses against its annual budget and flags three specific problems: a category running more than 15% over its year-to-date budget, a single approved expense larger than half a category's annual budget, and reserve fund contributions falling more than 10 percentage points behind the pace needed to hit the annual target. When something is flagged, Claude drafts a plain-English summary with three labeled options for the board.
Is the detection itself AI, or something simpler?
Plain arithmetic. findBudgetDeviations compares budgeted amounts to approved expense totals using fixed thresholds — no model call, no judgment involved. AI is only used afterward, and only when a deviation is actually found, to turn the flagged categories into a short narrative with next-step options.
Where do budget deviation alerts show up?
Two places: a yellow banner at the top of a board's Budget page in real time, listing active deviations with a link to the full report — raw arithmetic, no AI cost — and, separately, the weekly AI digest email, which folds any flagged deviations into its summary alongside collections, violations, and expense activity for the week.
Does this feature stop the HOA from overspending?
No. It's a warning system, not a spending control. LotWize doesn't freeze accounts, block future expenses, or auto-amend the budget. The board still approves every expense that gets logged; the alert just makes sure nobody has to wait until the annual financial report to discover that a category is running hot.
Which plan includes AI Budget Deviation Alerts?
It's available on LotWize's Growth plan and above — the same tier boundary as the platform's other budget and financial-reporting tools.