Problems & solutions · Accounting

Submetering and Utility Billing Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Submetering Utility Billing Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure is a system that bills residents without ever comparing what it billed against what the utility charged. Reconciliation is the single most important control in utility recovery and most operations do not have it. The symptom looks harmless: a master water bill arrives at $19,840, the billing run produces $18,410 in resident charges, and nobody asks where the difference went because no report shows it. Underneath that gap sit reads that failed silently, a unit missing from the roll, a service period of 34 utility days billed against a 30 day resident cycle, and estimates that were never trued up. Small per unit, material across a portfolio, and completely invisible in a system whose billing run can release without balancing.

Why does the reconciliation scope failure happen so often?

Because everyone scopes the output. The requirement gets written as "generate resident statements", which is a visible, demonstrable thing, and reconciliation is written as "reporting", which sounds like something you look at afterwards. So the build produces charges and a summary, and the summary is the sum of the charges it just produced, which is not a control at all.

Utility recovery is a closed system and it has to be treated as one. For each master account and each service period, resident charges plus owner absorbed cost plus vacant cost must equal the master invoice. If it does not, something specific is wrong: a unit is missing from the roll, a read failed, the period boundaries do not align, or a tiered rate was applied per unit and summed, which produces a different and legally weaker number than applying the tier at master level and distributing the result.

The fix is to make reconciliation an object rather than a report. Each master bill becomes a billing run with a stated period, a stated total and a required balance, and the run cannot release until it balances or an operator records an explicit reason for the variance with an amount and an approval. Ask any prospective developer to show you the screen where a run is blocked. If there is no such screen, there is no control, and your recovery rate will drift for years before anybody can explain why.

What goes wrong when you migrate meter registers and read history?

This is the phase that overruns, and it overruns for a reason that has nothing to do with engineering. In most portfolios the meter register lives in a hardware vendor's portal that nobody has audited, and it is wrong in the specific ways that produce impossible bills.

Meters get replaced during renovations and the new meter starts at zero without the old final read being carried forward. That single omission produces either a negative consumption or a bill representing the entire life of the replaced unit. Registers roll over at their maximum value and the system reads a small number where a large one should be. Units get renumbered after a repositioning and the meter mapping does not follow. Radio modules die and the affected units simply stop appearing in the read file, so the data looks complete rather than incomplete.

The fix is a meter audit priced as its own phase, before the billing scope is fixed. Confirm which meters are active, which units they serve, which have been replaced and whether the changeout was recorded with old and new register values. Portfolios with a clean register move noticeably faster than those relying on a vendor portal. Then insist the data model holds the meter as an asset with a changeout history rather than as an attribute of the unit, because a unit outlives several meters and a system that conflates them cannot produce a defensible bill after the first renovation cycle.

Why do the property system and meter vendor integrations break after launch?

Because the read path and the write path are completely different problems and quotes usually price them the same. Reading leases and occupancy intervals out of Yardi or RealPage is straightforward. Posting charges back is the hard half, and it is where post launch incidents cluster: a recalculated billing run that produces duplicate charges, a reversal that leaves an orphaned line, a rebill that posts to a ledger the resident has already paid against. Each of those creates exactly the dispute the system exists to prevent, and it creates it with your own logo on it.

Meter vendors break differently. Each network has its own read file format and its own failure signals, and the failure signal is usually absence rather than an error. A file arrives on schedule with 297 of 312 units and looks perfectly healthy. If the system takes the file at face value, fifteen residents get estimated and nobody knows for four months.

The fix is threefold. Expect a read for every active meter and raise an aged gap when one does not arrive, rather than treating the file as the truth. Make reversals and rebills first class operations with their own tested paths rather than a delete followed by a re post. And ask any developer which platform and which direction of flow they have actually implemented, because "we integrate with Yardi" most often means they have read from it.

What happens when jurisdiction rules and disclosure are not covered?

You run several different legal regimes through one configuration screen with no version history, and you find out a rule changed through a demand letter.

Ratio utility billing looks like arithmetic and is not. The permitted formula, the permitted inputs, the fees you may add, the disclosures required in the lease addendum and the window in which you must bill after receiving the master invoice are set by state statute or municipal ordinance and they differ by market. Some jurisdictions restrict ratio billing for water. Some require submeters in new construction. Some cap administrative fees. Some prohibit billing residents for common area consumption at all, which means the common area share has to be identified and excluded before any allocation runs. Confirm the specifics for your markets with counsel rather than with a configuration screen, because the software will do whatever it is told.

The fix is to make jurisdiction a first class object with an effective dated rule set covering permitted methods, fee caps, disclosure text, billing windows and dispute response requirements. A property inherits its jurisdiction and cannot be configured with a method that jurisdiction does not permit. When a rule changes you change it once with an effective date and the system lists every affected property, rather than leaving you to discover them. That one design decision is what makes a national portfolio auditable and it is routinely absent from quotes because it is invisible in a demo.

Should you build custom or configure what you already own?

Plenty of owners should outsource and should be told so. Under roughly 3,000 units in one or two states with conventional submetering, Conservice exists for exactly this, carries the compliance burden as part of the service, and will cost less than running it yourself. Doing it in house at that scale is a way of buying a regulatory obligation you did not need.

If your portfolio already sits inside one property management platform and you are content in that ecosystem, the utility billing modules in Yardi and RealPage are a reasonable configure decision and the integration work is already done for you. Most operators at that size have never set their allocation methods deliberately per market, never audited the meter register, and never reviewed vacant cost as a monthly figure. Doing those three things inside the tools you already pay for recovers more than a build would.

Build when two or more hold. You operate across enough states that jurisdiction rules are a compliance surface rather than a setup detail. You are a billing service provider, so the platform is your product rather than your overhead. Your recovery rate, meaning billed against master, has drifted and nobody can explain the gap. A regulatory inquiry or a demand letter arrived and assembling the evidence was painful. Or the outsourced fee per unit across your portfolio would fund an internal system in under three years.

How do hidden costs get into the quote?

Five recurring places. First, the number of states and municipalities. Every distinct regime is configuration plus verification plus test cases, and "multi state support" as one line has priced one state.

Second, meter hardware diversity. Each vendor's read format and each network's failure modes are separate work, and a portfolio assembled through acquisitions usually carries more hardware families than the operator remembers.

Third, the write path into Yardi or RealPage, discussed above, which is frequently quoted at the same rate as the read path.

Fourth, utility bill capture. If you want master invoices read automatically rather than keyed, that is a document extraction project with its own accuracy expectations and a human confirmation step, and it is not a checkbox on an integrations list.

Fifth, and largest if it applies, the service provider model. Client separation, per client fee schedules and client facing reporting effectively double the domain, and pricing a build as if you were billing your own portfolio when you are actually billing on behalf of others is the most common reason these projects overrun.

Then budget an ongoing figure. Rules change, meters change, and platforms change their interfaces, and a quote with no maintenance line has moved that cost rather than removed it.

What separates a build that works from one that fails here?

Whether the reconciliation control ships in the first release. In Digital Heroes delivery experience the builds that work start with one state and your directly submetered properties, get read ingestion, prorations, fees, master bill reconciliation and a per unit audit trail live in 12 to 18 weeks, and only then add allocation methods and multi jurisdiction rules. The builds that fail start with the widest configuration surface, ship something that can bill anything, and have no way to tell whether what it billed was right.

The second differentiator is whether charges are stored as derivations rather than as final numbers. Every line should be reproducible from its inputs, and a recalculation should create a new version with a reason and an operator while the prior version stays retrievable. A rebill you cannot explain is worse than no rebill.

The third is a test you can run before signing. Ask the developer to draw the model. You should see master account, master bill with service period, meter with register and changeout history, read with source and quality, unit occupancy interval, allocation rule with jurisdiction and effective date, and charge line with derivation. If they draw units and invoices, they are building an invoicing tool and your control will not exist.

Last, settle ownership of the code and the billing history in writing before kickoff. Your stored charge derivations are your legal defence, and they should never sit behind a licence you might one day want to end.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. APQC's Open Standards Benchmarking data on the monthly financial close found median performers take about 6.4 calendar days to close the books, while top performers (top 25%) do it in 4.8 days or fewer and bottom performers (bottom 25%) take 10 or more days. Source: APQC (2018) →
  2. Deloitte reports that modern ERP implementations aim to deliver reduced manual effort, greater transparency, a single source of truth, and increased productivity, but many organizations do not capture the full expected benefits (a significantly lower ROI) without disciplined strategy, change management, and data readiness. Source: Deloitte (2024) →
  3. An analysis of enrollment and completion data for 221 MOOCs (Katy Jordan, published in the International Review of Research in Open and Distributed Learning, IRRODL, 16(3), 2015 - not the Journal of Distance Education) found completion rates ranging from 0.7% to 52.1%, with a median completion rate of 12.6%, and completion negatively correlated with course length (longer courses had lower completion rates) - underscoring how unsupported self-paced online courses struggle to finish learners. Source: Journal of Distance Education (via ERIC / Katharina Jordan) (2015) →
  4. Mordor Intelligence sizes the field service management market at USD 6.26 billion in 2026, forecasting USD 9.87 billion by 2031 at a 9.54% CAGR, confirming sustained double-digit-adjacent demand for FSM software. Source: Mordor Intelligence (2026) →
Mahira K. · Lead UI/UX Designer · Lucknow

Mahira leads UI and UX design, which at an agency means moving from a vague client request to wireframes, then to screens engineers can build without guessing. She works on dashboards, storefronts and internal tools where usability decides whether staff adopt the software. Her posts focus on design decisions that survive contact with users.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Our resident charges never quite match the master bill. Where does the difference usually go?
Four places, in rough order of frequency: reads that failed silently so units were estimated, a unit missing from the roll entirely, period misalignment where the utility billed 34 days against a 30 day resident cycle, and tiered rates applied per unit and summed rather than applied at master level and distributed. None of them announce themselves. The only reliable fix is a billing run that will not release until resident charges plus owner absorbed cost plus vacant cost equal the invoice, or an operator records an approved reason.
What happens when a submeter is replaced during a renovation?
If the changeout is not recorded with the old final read and the new starting register, the next bill is either negative or represents the entire life of the replaced meter. This is the most common single cause of a wildly wrong resident bill, and it is why the meter has to be modelled as an asset with a changeout history rather than as a field on the unit. Ask any developer about register rollover and changeouts before you sign; if they have not thought about it, your first renovation cycle will produce impossible statements.
How should missing reads and estimates be handled?
Expect a read for every active meter and raise an aged gap when one does not arrive, rather than accepting the file as complete. Mark estimates as estimates, record the method used, and create a true up obligation so the difference is reconciled across the estimated periods when the real read arrives. Four consecutive months of silent estimates produce a catch up bill you cannot defend and a dispute you will lose on the evidence rather than on the arithmetic.
Is ratio utility billing legal everywhere?
No, and this is a question for counsel in each market rather than a software setting. Some jurisdictions restrict ratio billing for water, some require submeters in new construction, some cap what you may add as an administrative fee, and some prescribe how quickly you must bill after receiving the master invoice. The design response is to make jurisdiction a first class object with effective dated rules, so a property physically cannot be configured with a method its market does not permit.
Where does vacant unit cost actually end up today?
In most spreadsheet operations, absorbed silently. Prorate by actual days against the read interval rather than by calendar month, so the days between a move out and the next move in land on the property as a posted cost, and report vacant cost monthly per property. That figure is also an operations signal rather than just an accounting one, because a property with unusually high vacant consumption normally has a leak, a running fixture, or units left conditioned.
Can we post charges directly into Yardi or RealPage?
Yes, and the write path is the harder half of that integration. Reading leases and occupancy is routine. Posting charges, handling reversals cleanly and keeping the ledger consistent when a run is recalculated needs care, because a duplicated or orphaned charge in a resident ledger creates exactly the dispute the system exists to prevent. Ask which platform and which direction the developer has actually implemented, since integrating usually means reading.
How long should it take to answer a resident dispute?
Under a minute, from one statement. That statement should show the master bill and period, the allocation method with the rule that permitted it, this unit's read pair with dates, the proration days, the fee, and every recalculation ever applied. If assembling that takes forty minutes across a read file, a lease ledger and a PDF, you do not have a billing system, you have a spreadsheet with a login, and the same effort will be required for every state inquiry and records request.
Should we bring billing in house or stay with Conservice?
Stay outsourced under roughly 3,000 units in one or two states with conventional submetering, because the provider carries the compliance burden and the fee is smaller than running it yourself. The calculation changes when you operate across many states, when the per unit fee across a large portfolio would fund an internal system in under three years, or when you are a billing service provider and the platform is your product rather than an overhead.
I'm outgrowing FreshBooks. Is custom software the logical next step?
Usually not directly, because FreshBooks is an invoicing tool more than a full accounting platform, and the natural next step is QuickBooks or Xero for proper double-entry books. Custom development makes sense when those do not fit either, typically because of a billing model none of them handle, like usage-based or milestone billing. In that case a custom billing engine that feeds a standard ledger is often smarter than replacing everything.
Who owns the code when an agency builds my accounting software?
You should, outright, and the contract must say so with an explicit IP assignment clause rather than a usage license. Insist that the code lives in a repository you control from day one, so nothing, including the ledger schema and migration scripts, can be held back at the final invoice. Third-party libraries and any framework the agency reuses stay under their own licenses, and a clean contract lists exactly which those are.
What does it cost to maintain custom accounting software each year?
Budget 15 to 20 percent of the build cost annually, so a $100,000 system needs $15,000 to $20,000 a year for hosting, security patches, dependency updates, and small fixes. Accounting software carries one extra obligation most software does not: keeping tax rates, filing formats, and bank feed connections current as banks and tax authorities change their systems. Skipping maintenance for two years usually costs more to repair than the maintenance would have cost.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
Should I hire a freelancer or an agency to build my accounting software?
A strong freelancer is fine for a reporting dashboard or one integration; anything that holds your books needs a team. Ledger software requires backend, frontend, QA, and accounting domain knowledge, and one person rarely covers all four while staying available for the 5 to 10 year life of the system. The most common rescue job Digital Heroes takes on is a solo-built ledger with no tests and no documentation after the freelancer moved on.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
How long until custom accounting software pays for itself?
Typical payback in Digital Heroes accounting projects is 18 to 36 months, driven by recovered labor hours and fewer billing errors rather than saved subscriptions. A business spending 30 hours a week on manual reconciliation and rebilling can justify a $75,000 build inside two years at ordinary bookkeeper rates. If your projected payback stretches past five years, extend your current tools instead.
Who can build a custom accounting software system?

Digital Heroes builds custom accounting software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other accounting software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?