Invoice day in a proptech finance inbox
You price per branch because that is how agencies think about cost. On invoice day, someone checks a spreadsheet of branches per agency against the subscriptions in Stripe. One agency opened a new office mid-month and started using your product there, but nobody updated the quantity. Another closed a branch and emailed your support address, which went to someone who has since left. A franchise group wants each branch invoiced separately, to a different company name, with head office copied.
The invoices go out. Within a week, three agencies reply with queries. One is correct: you undercharged them. Two are right that you overcharged. Credit notes are raised by hand, and the finance person starts the next month with less trust in the numbers than the month before.
A branch is not a seat
Most billing tools understand seats and quantities. They do not understand branches, which have names, addresses, portal IDs, owning companies and a real start and end date. When branches exist in your product but billing works from a number typed into a subscription, the two drift apart every time an agency changes shape.
- Branch changes are requested by email or phone and are not tied to anything in your product.
- A branch that is set up for testing looks the same as a live one.
- Franchisees and group-owned branches have different payers, which a single subscription cannot express.
- Nobody has written down the rules for mid-month changes, so each is decided case by case.
Where the errors land
Undercharging is lost revenue you rarely recover, because asking for more after the fact is awkward. Overcharging is worse: it arrives on the desk of an agency's finance manager, who starts reading your invoices line by line. Invoice disputes delay payment, and every correction takes time from someone who should be doing other work.
The numbers you use to run the company suffer as well. Monthly recurring revenue calculated from subscriptions that do not match live branches is wrong in both directions, and board or investor reporting built on it has to carry a caveat nobody likes writing. When you try to work out revenue per branch or which agencies are growing, the answer is only as good as the last time someone reconciled the spreadsheet.
How we connect branches to billing
What we build makes the branch record in your product the single source for what an agency pays.
- A branch record with status (setup, live, suspended, closed), live date and closed date, the paying entity and any billing contact.
- Branch changes made in your product by the agency admin or your team, with a reason and a date, so there is a record instead of an email.
- A sync from branch records to subscriptions in Stripe, Chargebee or your current tool, with one line per branch or per paying entity, depending on how the agency wants to be invoiced.
- Written proration rules, applied the same way every time: for example whether a branch that goes live mid-month is charged from that day or from the next period.
- A pre-invoice check that compares live branches in your product with what each subscription will bill, and lists every difference for a person to approve.
- Invoices that name each branch, so the agency's finance team can see what they are paying for.
| Change | What the system does |
|---|---|
| New branch goes live | Adds a billed line from the live date under your proration rule |
| Branch closes | Ends the line from the closed date and records the reason |
| Two branches merge | Closes one, keeps one, with history kept on both |
| Franchisee pays separately | Branch billed to its own entity, head office copied |
| Test branch | Marked as setup and never billed |
Invoice day, the new way
Two days before invoices go out, the pre-invoice check shows four differences across all your agencies. Each has a reason attached: a branch opened on the 12th, one closed on the 20th, a franchise transfer, and a test branch someone forgot to mark. The finance person approves them in a few minutes. Invoices go out with branch names on each line, and the queries that do arrive are questions, not corrections.
Does this sound like your billing?
- Branch counts live in a spreadsheet separate from your product.
- Agencies tell you about branch closures by email.
- Credit notes for billing errors are a regular job.
- Franchise groups ask for invoices your billing setup cannot produce.
- Nobody can say which rule applies to a branch that opens mid-month.