Automated Utility Bill Data Extraction for Property Portfolios

BillSlayer reads electricity, water, refuse, and municipal rates bills on its own and turns them into live cost dashboards. Owners forward a bill by email, WhatsApp, or web upload, and the numbers land already matched to the right property, meter, and billing period.

Client

BillSlayer — Sense SaaS

Industry

Real Estate

Services

Custom SaaS Product Development | Document Processing & OCR Automation | Cloud Architecture & DevOps | Geospatial & Data Analytics

Open Popup

Jump to Section

3 Min Read time

Quick Snapshot

Technostacks built Sense SaaS, the platform behind BillSlayer, delivering automated utility bill data extraction and cost analytics for property portfolios. The multi-tenant SaaS reads electricity, water, refuse, and municipal rates bills submitted by email, WhatsApp, or web upload, pulls the data out automatically, including scanned and photographed bills via OCR, and maps it onto live dashboards and geospatial views. It replaced manual bill filing and spreadsheet tracking, where staff typed readings into Excel and often missed overcharges for months. Property managers now open one dashboard instead of a folder of PDFs, with cost and consumption visible per property, per meter, and per month.

Brief

The client managed utility accounts across many properties and meters, with bills arriving as PDFs and scanned images from multiple municipalities and providers, each with its own layout and table structure. Someone had to open every bill, type the account number, meter reading, usage, and charges into a spreadsheet, then file the PDF separately. There was no single view of spend, no comparison across properties, and no alert when a bill went missing or a charge spiked, and disputes were hard to win because the proof was scattered.

Bills now enter in three ways: a private email address per account, WhatsApp, or drag-and-drop upload. Every file is virus-scanned, parsed, mapped to a property and meter, and stored as a billing event, with dashboards, a map view, multichannel alerts, five export formats and self-service subscription billing on top.

Technostacks built Sense SaaS as a full product: a Vue 3 web app, a Django REST API, a Kafka-driven document processing pipeline, and a PostgreSQL/PostGIS data layer.

Challenges

Inconsistent Bill Formats

Every provider and municipality used its own layout and field names, so no single parser could handle them without a code release each time a template changed.

Hours of Manual Data Entry

Staff opened each PDF and retyped values into spreadsheets every month slow, and easy to get wrong.

Unreadable Scanned Bills

A large share of bills arrived as photographed or scanned images rather than text PDFs, so text extraction alone could not capture them.

Missing Bills Went Unnoticed

If a provider skipped a month or a bill was lost in an inbox, nobody knew until an arrears notice arrived.

No Portfolio-Level Visibility

Spend could not be compared across properties or time, so overcharges and consumption spikes were found late or not at all.

Solution We Provide

Technostacks built Sense SaaS as a configuration-driven platform that automates the full bill lifecycle without hard-coding a parser per provider.

Multi-Channel Bill Intake

Every account gets a private email address, a WhatsApp number, and a web uploader all three feed the same pipeline, so the user just forwards the bill and does nothing else.

Configuration-Driven Extraction Engine

An Invoice Type Registry holds each provider’s bill format, linked to seven text-extraction and OCR strategies. Adding a provider or handling a redesign is a configuration change, not a code release.

Two-Phase Field Recognition

The system first extracts the account number and billing date to identify the provider, then loads that provider’s field profile to pull the full billing data why one engine handles many unrelated bill layouts.

Billing Cycles & Auto-Forecasting

Each bill attaches to a property and meter as a billing event; when a cycle completes, the system creates the next expected cycle, so a missing bill becomes visible instead of a silent gap.

Maps, Dashboards & Reporting

Properties and meters are drawn on an OpenLayers map served by GeoServer and stored in PostGIS, with dashboards for cost and consumption trends and exports to five formats.

Multi-Tenant Accounts & Billing Ops

Team roles, multichannel alerts, and self-service subscription billing through Zoho Billing and Paystack let the client run commercial operations without a separate admin team.

How It Works

BillSlayer bill-to-dashboard pipeline from email or WhatsApp intake to automated extraction and billing cycle
  • Trigger: The user forwards the bill by email, WhatsApp, or upload — one at a time or in batches.
  • Scan & queue: ClamAV scans every file; clean files publish to Kafka for parallel processing.
  • Identify: Account number and billing date are extracted first to identify the provider.
  • Extract: The provider’s field profile pulls the full data set; OCR runs for scanned bills.
  • Save: The bill matches to its property and meter and is stored as a billing event.3
  • Forecast: The next billing cycle is created automatically, so a missing bill becomes visible.
  • Outcome: Dashboards and reports update, and alerts fire by email, WhatsApp, or SMS.

Technologies Used

Frontend:
Vue 3, TypeScript, Kendo UI, Tailwind CSS

Mapping:
OpenLayers, GeoServer, PostGIS

Backend:
Python, Django REST Framework, Celery, Apache Kafka

Extraction & OCR:
pdfplumber, Camelot, Tesseract OCR, OpenCV

Database:
PostgreSQL 16, PostGIS 3

Integrations:
SendGrid, Twilio, Zoho Billing, Paystack, SAML SSO

Security & DevOps:
ClamAV, JWT, TOTP MFA, Docker, GitLab CI/CD, Sentry

Impact

Sense SaaS replaced a manual, spreadsheet-based process with a system that surfaces problems automatically instead of hiding them:

Manual Bill Capture Removed

Forwarding an email is the whole job — reading the PDF, typing figures and filing the document are all handled by the system.

New Formats Go Live in Hours

Because extraction rules are database configuration, onboarding a new municipality or absorbing a provider’s redesign is a config task, not a code release.

Scanned Bills Are Usable

Seven extraction strategies, including three OCR paths, mean image-only bills are processed the same as text PDFs.

Missing Bills Surface Automatically

Auto-forecasting the next billing cycle turns a bill that never arrived into an open item on the dashboard.

Portfolio-Wide Visibility

Cost and consumption can be compared across properties, meters, services and time on maps, charts and pivots a view that did not exist before.

Conclusion

Technostacks turned a manual, spreadsheet-based chore into an automated data product for Sense SaaS. Bills that used to be opened, read, and retyped one by one now arrive by email, WhatsApp, or upload and become structured, mapped data on their own, moving the client from filing documents to reading dashboards, and from finding an overcharge months later to seeing it in the current cycle.

The client is now set up to grow without adding headcount: new providers and bill formats are added as configuration, not code, and the platform already carries subscriptions, payments, team roles, and support ticketing a foundation ready to extend into new regions and document types like telecom, waste, or fuel invoices.

Automating Bill or Document Capture for Your Portfolio?

Whether it’s utility bills, invoices, or any recurring document type, Technostacks can build a configuration-driven extraction platform that turns paperwork into live dashboards without a code release for every new format.

Our Solutions in Action

Read how we have transformed businesses along the way.

Explore Our Solutions Link
Previous Work
Next Work

Lets Talk

Have a challenge?Let us know.