The firing question you've mostly answered yourself, so here's the part that matters now: the post-breakup audit. Whether you DIY from here or hire again, get these back and check them while you still can:
- Ownership of everything. Your Google Business Profile should be owned by your account, with the agency as a manager at most — same for Search Console and GA4. If they set any of it up under their own accounts, transfer it before the relationship fully ends.
- A list of what they actually touched. Which pages they created or edited, the full list of those 5 links (where they point and from where), and any directories or citations they built under logins you don't have. You can't evaluate or undo what you can't see.
- Then split the numbers before you judge them. Website sessions dropping 276 → 108 is one story; for most home service companies the money is in Maps — calls, direction requests, and "near me" visibility from the profile. Check those separately in your profile's performance data. Plenty of owners have fired an agency over website traffic while their call volume was quietly fine, and plenty have kept one because traffic looked OK while calls died.
On what $1,500/month should reasonably buy in local SEO: ongoing profile management and posts/photos, a working review-generation process, service pages AND city/area pages built out steadily — not three in seven months — and a monthly report you'd actually recognize: rankings and visibility by service, calls, and what shipped that month. If a report is just a traffic graph and a meeting, that's the tell.
I track visibility data like this for local businesses at LocalCMO, and the owners who avoid the bad-agency trap all have one thing in common: they look at calls and map visibility themselves, monthly, instead of taking the agency's slide deck as the source of truth. The DIY route can genuinely work — you just have to be your own reporting department now.