- Home
- Apps
- Specialized Solutions
- Energy & Utility Operations
Illustrative previewA build-to-order Business Central extension that turns meter readings into billed, collectable revenue
— connection registry, cycle billing runs, slab tariffs, service complaints and disconnection workflows.
ECOSIRE scopes, builds, installs and supports it for your tenant.
What is Energy & Utility Operations?
A build-to-order Business Central extension that turns meter readings into billed, collectable revenue — connection registry, cycle billing runs, slab tariffs, service complaints and disconnection workflows. ECOSIRE scopes, builds, installs and supports it for your tenant. Built to order by ECOSIRE for Dynamics 365 BC (build-to-order) — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Dynamics 365 Business Central.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
About this Product
Utilities do not sell items, they sell consumption over time against a regulated tariff. Dynamics 365 Business Central ships an excellent sales invoicing engine, but it has no concept of a service connection, a meter, a reading, a billing cycle, or a slab tariff where the first 100 units are priced differently from the next 200. Most utility and energy service providers end up bridging that gap with spreadsheets: readings collected in Excel, consumption and slab arithmetic done by formula, then a bulk sales invoice import back into Business Central. The result is predictable — reading-to-bill errors nobody can audit, no link between an unpaid bill and a disconnection decision, and month-end that depends on one person's workbook.
ECOSIRE builds an AL extension that gives Business Central the missing domain objects and wires them into the standard financial posting routines rather than beside them. New tables carry the Service Connection (customer, premises, connection type, status, security deposit), the Meter and its lifecycle (installation, replacement, multiplier, rollover digits), Meter Reading entries with source and reader stamp, Billing Cycle and Billing Cycle Line for run control, and a Tariff structure with effective-dated versions, slab bands, fixed and minimum charges, taxes and levies. Customer and Item are extended by table and page extensions, so a connection resolves to a real Business Central customer and the charges resolve to real G/L accounts and posting groups — the general ledger, VAT/tax entries, dimensions and customer ledger entries are all produced by the standard posting codeunits, which is what keeps your statutory reporting and audit trail intact.
The operational engine is a set of codeunits driven by Job Queue Entry records so that a cycle billing run for thousands of connections executes in the background rather than locking a user's session. A run validates readings (missing, negative consumption, rollover, exceeds-average tolerance) into an exception list that must be cleared or explicitly approved, computes consumption and applies the slab tariff effective on the reading date, creates sales invoices, and posts them in a resumable batch that can be rerun safely after a failure. Event subscribers on the payment application and cash-receipt routines keep the arrears position current, which is what drives the collection ladder: aging buckets, reminder and notice generation, disconnection-eligible worklists, field disconnection and reconnection orders with reconnection fees, and a full status history per connection. Service and complaint workflows sit on the same connection record, so a meter fault logged against a connection can suspend it from the next billing run instead of quietly producing a wrong bill.
Integration is handled the way Business Central expects. Custom API pages exposed through the REST API v2.0 / OData v4 surface let handheld reading apps, IVR and customer portals post readings and query balances without direct database access; readings can also be imported from CSV or a meter data management system through a configurable mapping. Power Platform and Dataverse connectivity means readings, arrears and disconnection worklists can drive a Power App for field crews and Power BI for regulatory and collection reporting. Permission sets are shipped for the distinct roles this domain always has — meter reader, billing operator, billing supervisor who alone can approve exceptions and post a run, and collections officer — and every posting-relevant action is written to a change-log-friendly audit trail. The extension targets current Business Central release waves and is delivered as a per-tenant extension for SaaS or a compiled extension for on-premises, whichever your deployment is.
This is build-to-order, not an AppSource download. It starts with a scoping call where we walk your tariff book, your reading channels, your billing calendar and your disconnection policy, because those are the details that decide the data model. We then confirm a fixed scope in writing, build against your Business Central version, and deliver to a sandbox for UAT with your own connection and tariff data before anything touches production. Typical delivery is one working week from confirmed scope, longer only if you ask for meter data management integrations or payment-gateway reconciliation that need third-party access. You receive the AL source, a git repository, documentation and training, and a post-go-live support window — the code is yours, and you are not locked to us to change a tariff band.
What you get
- Complete AL extension source code built and tested against your exact Business Central version and deployment model (SaaS per-tenant extension or on-premises)
- Installation and configuration on your sandbox and production environments, including tariff setup, billing cycle calendar, number series, posting groups and job queue entries
- Technical documentation: data model and table relationships, codeunit and event-subscriber map, API page reference with sample payloads, and permission set definitions
- End-user guide plus a live training session for meter reading, cycle billing operation, exception clearing, and the collection and disconnection workflow
- UAT on a staging environment using your own connection, meter and tariff data, with a documented test script and a rollback plan before production cut-over
- Post-go-live support window covering defect fixes and configuration assistance, including at least one full billing cycle run with us watching
- Git repository handover with full commit history, branch structure and build pipeline notes, so your team or any AL developer can maintain it
- Data migration assistance for existing connections, meters, opening balances and last-reading values from your current system or spreadsheets
Who this is for
Utility Billing Manager
Owns the monthly cycle and answers for every disputed bill. Needs consumption and slab arithmetic to happen inside Business Central with a visible audit trail, reading exceptions caught before invoices go out, and the ability to reopen or rerun a cycle without creating duplicate invoices.
Finance Controller / CFO
Needs metered revenue, unbilled consumption and arrears aging to come from the general ledger rather than a workbook. Cares that invoices post through standard Business Central routines so tax filings, dimensions and statutory reports stay reconcilable without a manual bridge.
Collections and Revenue Protection Lead
Works the arrears ladder daily. Needs policy-driven disconnection worklists, surcharge calculation, notice generation and reconnection fee handling wired to the same connection record the billing team uses, so a payment made this morning takes a connection off today's disconnection list.
IT Manager / Business Central Partner Lead
Must keep the tenant upgradeable through release waves. Wants a proper AL extension using table/page extensions and event subscribers instead of base-code modification, documented API pages for the field app, clean permission sets, and the source code in a repository they control.
How Energy & Utility Operations Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Dynamics 365 Business Central Native |
|---|---|---|---|---|
| Utility domain model (connections, meters, readings) | Purpose-built tables designed around your tariff book and reading channels during scoping | Whatever your developer designs — quality depends entirely on their utility domain experience | Fixed model that assumes one market's conventions; fits or it does not | No concept of a connection, meter or reading; only customers and items |
| Slab tariff and mid-period rate changes | Effective-dated tariff versions with slab bands, so historic bills stay reproducible | Usually built for today's tariff; the first regulator change becomes a rework project | Supported if your slab model matches theirs; unusual structures need vendor change requests | Flat item pricing and price lists only; slab arithmetic ends up in Excel |
| Cycle billing at volume | Background Job Queue run, resumable and safe to rerun without duplicate invoices | Often a foreground routine that times out once volumes grow | Generally batch-capable, tuned to the vendor's own reference customer sizes | Manual or imported sales invoice batches; no cycle concept at all |
| Reading validation and exceptions | Blocking exception list with rollover, negative and deviation checks, supervisor approval separated by permission set | Typically added only after the first wrong-bill incident | Varies widely; validation rules are frequently not configurable to your tolerances | None — Business Central cannot tell a good reading from a bad one |
| Arrears, disconnection and reconnection | Policy-driven collection ladder wired to the same connection record, with reconnection fee posting | Commonly deferred to phase two and never built | Present in mature apps, though the policy thresholds are often hard-coded | Standard reminders and finance charges only; no connection-level disconnection state |
| Financial posting and audit trail | Posts through standard Business Central sales codeunits — native G/L, tax, dimension and customer ledger entries | Depends on the developer; direct-to-ledger shortcuts are a common and costly mistake | Usually posts natively, but the internal calculation trail may be opaque to auditors | Fully native posting, but only for invoices someone has manually prepared elsewhere |
| Field and portal integration | Custom API pages on REST API v2.0 / OData v4, plus Power Platform and Dataverse connectivity | Built if budgeted; frequently the first item cut from scope | Often bundled with the vendor's own mobile app, which you must adopt as-is | Standard Business Central APIs exist but expose no reading or connection entity |
| Ownership, source and ongoing cost | Full AL source and git repository handed over; support window included, ongoing maintenance optional | You own it, and you also own every future fix and upgrade with no fallback | Per-user or per-connection subscription, no source access, roadmap set by the vendor | Included in your Business Central licence, but the gap stays open |
Frequently Asked Questions about Energy & Utility Operations
How long does delivery take?
This is a build-to-order extension, not an AppSource download you install today. Typical delivery is one working week from confirmed scope — the clock starts when the tariff structure, reading channels, billing calendar and disconnection policy are agreed in writing, not at the first call. Engagements that also require meter data management integration or payment-gateway reconciliation take longer, and we tell you that during scoping rather than after.
How does this handle slab tariffs and mid-period tariff changes?
Tariffs are stored as effective-dated versions with slab bands, so the calculation uses the tariff in force on the reading date rather than the run date. Both telescopic (each band priced separately) and non-telescopic slab models are supported, alongside fixed charges, minimum billing amounts, and separately configurable taxes and levies. A regulator-announced change is entered as a new tariff version with its effective date; historic bills remain reproducible against the tariff that actually applied.
Will this survive Business Central upgrades and release waves?
Yes. It is a proper AL extension built on table extensions, page extensions, codeunits and event subscribers — no base application code is modified, so Microsoft's monthly service updates and semi-annual release waves apply normally. We build against your current version and target current release waves. If a future wave changes an event or API we depend on, that is exactly the kind of thing the support window and any ongoing maintenance agreement covers.
What support and updates do we get after go-live?
Every build includes a post-go-live support window for defect fixes and configuration help, and we deliberately stay with you through at least one complete billing cycle run — that is when real problems appear. After the window you can take it in-house (you hold the source and the git repository), buy an ongoing maintenance and update agreement from us, or call us per change. There is no licence key that expires and no lock-in that stops your team from adding a tariff band themselves.
Can our field readers and customer portal feed readings in automatically?
Yes. We expose custom API pages on the Business Central REST API v2.0 / OData v4 surface for reading submission, balance enquiry and disconnection status, which is what a handheld app, mobile reader, IVR or customer portal consumes. Bulk import from CSV or a meter data management system is supported through a configurable field mapping. Where you want a field app built too, Power Platform and Dataverse connectivity means a Power App can read and write against the same data.
What happens when a reading is missing or obviously wrong?
The run does not silently bill it. Reading validation produces an exception list — missing, negative consumption, zero consumption, meter rollover, or deviation beyond a configurable percentage of the connection's rolling average — and posting is blocked until each exception is cleared or explicitly approved by a billing supervisor, which is a separate permission from operating the run. Where your policy allows it, average-based estimated billing is produced instead, flagged on the invoice and trued up automatically on the next actual reading.
Do we get the source code, and can another developer maintain it?
Yes. You receive the complete AL source and a git repository with full commit history, plus a technical document covering the data model, the codeunit and event-subscriber map and the API pages. Any competent AL developer or Business Central partner can maintain and extend it. We build it to be handed over, not to keep you dependent on us.
Related Modules

Document Management & Approval Workflow for Business Central
A build-to-order AL extension that adds drag-drop document attachment, version control and configurable multi-step approval routing to any Business Central record, with Teams, email and SharePoint/OneDrive integration. Built, installed per-tenant and supported by ECOSIRE.

Education & School ERP for Business Central
A custom-built Business Central extension that turns BC into a complete institutional finance system — student enrollment, recurring fee billing, scholarships, installment plans, arrears tracking and department cost centers — installed and supported by ECOSIRE on your tenant.

Equipment Rental Management for Business Central
A build-to-order Business Central extension that unifies rental, sales and service for equipment businesses — availability, contracts, dispatch, usage and period billing, deposits and off-hire returns — installed and supported by ECOSIRE on your tenant.

Field Service Integration for Manufacturers (CE)
A build-to-order Business Central extension that connects Dynamics 365 Field Service / CE to your BC manufacturing data, so as-built BOMs, serial numbers, warranties and spare-parts inventory flow to technicians and service results flow back. Built, installed as a per-tenant extension, and supported by ECOSIRE.
Energy & Utility Operations
A build-to-order Business Central extension that turns meter readings into billed, collectable revenue — connection registry, cycle billing runs, slab tariffs, service complaints and disconnection workflows. ECOSIRE scopes, builds, installs and supports it for your tenant.
- Service Connection master table linking premises, customer, connection type, load/sanctioned capacity, security deposit and status, with a full dated status history
- Meter registry with installation, replacement and removal events, multiplier and number-of-digits handling, and automatic rollover detection on reading entry
- Meter Reading entries stamped with source (handheld, portal, IVR, manual, MDM import), reader identity and reading date, with previous-reading traceability on every bill line
- Effective-dated Tariff versions with slab bands, telescopic or non-telescopic calculation, fixed charges, minimum billing amounts, and separately configurable taxes, duties and levies