A private portal where each of your salon clients sees yesterday's numbers, how every location compares, and how this year measures up against last year and the franchise benchmarks.
Prepared for Kit Feuerhelm · November 2026
Your clients already see today's sales in their salon app. This portal shows them the bigger picture: how this year compares with last year, which location needs attention, and where they stand against the franchise.
All their locations in one view, with trends, comparisons and benchmarks.
Their numbers on their phone, with nothing to set up.
Every client in one read-only view, ready for advisory conversations.
Click through the tour, or explore on your own. Switch to phone view to see what owners get on the go.
Your team uploads the franchise's yearly benchmark table once. Every month, the portal places each salon in its size band and measures it against the right targets. Drag the slider to try it.
These bands and targets are placeholders. We'll load the franchise's real table, and your staff can update it themselves.
This is the scope we agreed on our call. Tap a card for the details.
These aren't in this price. Tick anything you'd like us to quote next, and mention it when you reply.
Our first quote covered the full job post. Here's how the scope from our call changes it.
| Change | Effect |
|---|---|
| First quote (full job post, 10 weeks) | $11,800 |
| QuickBooks integration removed | −$2,000 |
| One access level, read-only firm view | −$400 |
| Simpler, user-friendly login security | −$400 |
| Franchise benchmarks matched automatically | +$800 |
| Deeper history import and comparisons | +$600 |
| Rounded down for the pilot | −$600 |
| Phase 1 fixed price | $9,800 |
Five milestones. You pay each one only after you approve it.
Hosting goes on your own accounts, about $50–150 a month at pilot size. Extra work outside this scope is $40 an hour, always approved by you first.
You'll see working software at every step. Tap a milestone to see what's in it.
Every row of data is tagged with the client it belongs to, and the database itself refuses to return rows for any other client. This is called row-level security. Even if a page had a bug, the database still wouldn't hand over another client's numbers. Before launch, we also log in as one pilot client and deliberately try to reach another client's data.
The sync retries automatically. If a location's day is still missing, for example because the salon wasn't closed out properly, your team gets an alert and the dashboard shows that day as "pending" instead of showing a wrong number. After the salon fixes it, one click pulls that date range again.
You do, from day one. The GitHub repository, hosting, database, domain and API credentials are all registered to your firm. We develop with test credentials wherever we can, and production keys stay with you.
Your website runs on WordPress, which is great for content but not for an app like this. The portal lives on its own subdomain, such as portal.yourfirm.com, with a "Client Login" button on your site. It will carry your branding.
Next.js (React) for the portal, Node.js for the nightly sync, and PostgreSQL for the database, hosted on Vercel and a managed Postgres service. These are proven, widely used tools, so any competent developer can pick up the code later.
Our full-time team is in Pakistan. We overlap with US hours every morning, and you'll have one point of contact throughout. We've been building client platforms for over 12 years and are Top Rated on Upwork.
"The history and comparisons are what will set us apart."
Our summary of what you told us on the call, and the reason we built this proposal around them