A mobile-first meter-reading and utility-billing tool for mall operators, industrial parks, serviced offices, and any portfolio where someone walks to a clipboard every month. MeterSnap replaces the clipboard with a phone, the spreadsheet with a validated record, and the thirty-day billing lag with a seven-day one. No IoT, no smart meters, no electrician.
Every multi-tenant commercial property has a meter room. In a mid-sized shopping mall, it has 200 to 500 sub-meters — one behind every tenant unit, plus common-area and shared-services meters. In an industrial park, it has a few hundred, spread across multiple blocks. In a serviced-office tower, it has one per floor plus one per private suite. Someone on the engineering team walks to every single one of them, writes the digits down, and takes the sheet back to the office.
The meter-reading run is a two- to three-day job per property. A reader walks the route, opens each enclosure, squints at a display that is sometimes dirty, sometimes water-spotted, sometimes in a cupboard lit by one LED. They write the reading on a paper sheet or — if the operator is ambitious — into a spreadsheet on a phone. They don't have last month's reading in front of them, so they can't sanity-check. They don't see anomalies in the field, so they carry the error back to the office.
At the office, an admin retypes the sheet into a billing spreadsheet. The formula runs. Thirty to forty-five days after the reading was taken, the tenant gets an invoice with one line: Electricity — ฿18,340. They can't see the reading. They can't see the rate. If they dispute it, the office opens a PDF scan of a hand-written sheet.
Retrofitting 10,000 sub-meters with IoT-enabled smart meters costs USD 2.5M–8.6M at typical hardware-plus-electrician pricing, takes 6–18 months of phased electrical work per property, and depends on cellular or LoRaWAN connectivity inside meter rooms that are frequently below ground.
Existing utility-billing software targets residential condos or single-meter B2C usage. It doesn't model tenant-level leases, per-lease rate configs, common-area allocation, Thai Revenue Code debit-note formats, or the reality that one tenant has three meters and another has one shared across two units.
Thailand's 2025 OCPB Notification introduced written-invoice transparency requirements for residential landlords. It doesn't apply to commercial malls today — but it signals where tenant expectations are heading. Hand-written reading sheets and opaque flat-rate charges are increasingly indefensible. Operators need a photo-backed, per-meter audit trail — which the clipboard workflow does not produce.
"We make sure that the meters are metering what they're supposed to do, and that they're accurate. And we share that with the tenant. That gives them confidence that their invoices will be correct."
Ken Stickley, Director of Real Estate Sustainability, Sabey Corporation · via utiliVisor commercial real estate case study
MeterSnap replaces the clipboard with a mobile app, the meter-ID lookup with a QR-code sticker, and the manual transcription with on-device OCR. The reading is validated in the field against last month's value, flagged if it looks wrong, and synced back to a billing reconciliation server that pushes the utility line item to whatever system already invoices the tenant. There is no new hardware on the meter. There is no IoT. There is no electrician.
A phone camera plus a QR sticker is an order of magnitude cheaper than retrofitting smart meters, deploys in weeks instead of months, and avoids the single biggest problem with connected meters: the meters live in basements and cupboards where cellular signal collapses. MeterSnap works offline and syncs when the reader walks back into coverage.
Anomaly detection runs on the phone, in the field, at the moment of reading. "This reading is 45% higher than last month" flashes before the reader moves on. "This reading is lower than the previous reading" blocks the submission and forces a retake. By the time the data reaches the billing admin, the outlier conversation has already happened.
Meter plates frequently carry Thai labels. Rate configurations follow MEA and PEA standards with transformer-loss allowances. Invoice line items ship in a format compatible with Thai Revenue Code requirements for VAT reporting and debit/credit notes. Thai data residency is available for operators whose lease data falls under PDPA.
This isn't a BMS. It's the meter-to-invoice layer that sits between your building-management system and your tenant-facing app.
One-time setup. Each QR encodes a meter ID.
Before the first reading cycle, MeterSnap generates a printable QR label sheet covering every meter in the property. Each sticker encodes the meter's unique ID. A facilities technician walks the property once with the sheet and sticks the label next to each meter display. Labelling a 500-meter property takes one person a single afternoon. If the physical meter is ever replaced, the old meter is decommissioned in MeterSnap and the QR is re-bound to the new meter in the registry. The sticker on the wall doesn't have to move.
Ordered meter list, one route per reader per shift.
The mall supervisor or system admin builds routes in the web dashboard — typically one route per floor, per block, or per reader's daily workload. Each route is an ordered list of meters, chosen so the reader walks the property in the most efficient path. Routes are assigned to named readers and carry a billing-period window (e.g., the 25th to the 28th of each month) during which readings are accepted. Before the reader leaves on the shift, the route syncs to their phone along with the last reading, tenant, and rate config for each meter.
QR scan identifies the meter. OCR reads the digits. One tap to confirm.
The reader opens MeterSnap, taps the route, and walks to the first meter. One tap opens the camera. The phone scans the QR — the meter, tenant, unit, lease terms, and last reading resolve instantly from the local cache (even in a basement with no signal). The OCR pipeline runs on-device in under two seconds, populates the reading field, and displays a confidence score. Analog dials, digital LCDs, segmented LEDs, and smart-meter displays are all handled. Confidence above 95% auto-populates for one-tap confirmation; 85–94% prompts verification; below 85% falls back to manual entry with the photo still saved as evidence.
Anomaly detection runs on the phone. Outliers surface before the reader moves on.
The moment the reading is captured, MeterSnap compares it to the stored previous reading and to the tenant's rolling average. Five rules run in the field: high consumption (>30% increase) flags with a warning; zero consumption flags a possible meter fault or vacant unit; negative consumption (current < previous) blocks the submission and forces a retake; excessive consumption (>3× historical average) flags a possible fault or unauthorised draw; stale reading alerts the supervisor when the window closes. Flagged readings are recorded but routed to the supervisor's review queue before they enter the billing batch.
Offline by default. Syncs the moment a signal is available.
Meter rooms don't have signal. MeterSnap is designed for that. Every reading — photo, OCR value, confirmed value, timestamp, GPS coordinates, reader ID, OCR confidence — is stored locally in an on-device SQLite-backed store. When the reader walks back up the stairs, the app detects connectivity and begins a background sync: readings upload oldest-first, photos compress to roughly 1MB per image before transmission, and the server confirms each submission individually. If a duplicate is detected for the same meter in the same billing period, the server rejects it and the reader sees a one-line notice. Nothing silent fails.
Review, retake, approve, or override — each with an audit record.
Flagged readings surface in the mall supervisor's anomaly queue. Each card shows the meter, tenant, current reading, previous reading, percent delta, photo, OCR confidence, GPS coordinates, and reader ID. The supervisor has three actions: approve (with an optional note), request a re-read (the reader receives the task back on their phone), or override (manually enter a different reading; the original capture remains on the record). Every action is logged. Even an overridden reading keeps its original photo and OCR capture for audit.
One batch per property per period. Calculated, reviewed, pushed in one action.
Once readings for the period are confirmed, the billing admin triggers the calculation batch. The engine computes consumption (current − previous), applies the per-lease rate configuration (MEA/PEA base rate, transformer-loss allowance, peak/off-peak if configured, minimum charge thresholds, common-area allocation), and produces one utility line item per tenant per meter. Anomaly-flagged lines hold until resolved. The admin reviews the batch, approves it, and pushes the line items to whatever system currently invoices the tenant — the operator's existing tenant app, a property-management ERP, or an accounting platform — via a REST API call. Tenants open their monthly invoice and see, for the first time, the evidence behind the utility line.
Every meter carries a printed QR sticker that encodes its ID. Scanning the QR resolves the tenant, unit, lease terms, rate config, and last reading instantly — even offline. Meter replacement rebinds the QR to the new meter without disturbing the sticker.
The OCR pipeline reads analog dials, digital LCDs, segmented LEDs, and smart-meter displays. Pre-processing handles poor lighting and oblique angles. Confidence above 95% auto-populates; 85–94% prompts verification; below 85% falls back to manual entry with the photo still saved.
High consumption, zero consumption, negative consumption, excessive consumption, and stale reading — each surfaces in the field before the reader moves on. Negative readings are blocked outright. The operator never invoices a physically impossible number.
Meter rooms don't have signal. MeterSnap stores every reading locally, compresses photos to approximately 1MB before upload, and syncs in the background the moment connectivity returns. Readers never wait on bars.
Every reading carries a timestamped, GPS-tagged photo. Disputes resolve in one look. The 2025 transparency rules on utility invoicing are satisfied by default — the evidence is already in the record.
Each lease can carry its own rate config: base MEA/PEA rate, transformer-loss allowance, peak/off-peak rates, minimum charge thresholds, and common-area allocation formula. The billing engine applies the right rule for the right meter without manual intervention.
Reader (field capture, own-route scope), Mall Supervisor (review and approve readings, resolve anomalies), Billing Admin (calculate, approve, and push batches), System Admin (meter registry, QR mappings, integrations). Field staff never see billing; billing never sees raw reader queues.
MeterSnap is the meter-to-billing layer, not the invoicing system. Approved batches push utility line items via REST to the operator's existing tenant app, property-management ERP, or accounting platform. No tenant-facing replacement. No reinvention of the monthly invoice.
A mid-sized mall operator running 3,000 tenant meters across a handful of properties typically spends more than 1,000 person-hours a month reading, transcribing, reconciling, and disputing utility charges. MeterSnap's pilot target is to cut that by roughly 80% and compress the end-to-end billing cycle from 30–45 days to under 7 days. The headline is labour saved. The detail is where the labour was being lost.
| Metric | Before MeterSnap | After MeterSnap (8-week pilot target) |
|---|---|---|
| Minutes per meter (walk, read, record) | 3–5 | 1–2 |
| Days to read all meters in one mid-sized property | 2–3 | under 1 |
| Reading error rate | 3–5% | under 1% |
| Billing cycle time (reading to tenant invoice) | 30–45 days | under 7 days |
| Tenant disputes per 1,000 invoices | Regular, poorly tracked | Near-zero with photo evidence |
| Audit-trail completeness per reading | Hand-written sheet, often missing | 100% — photo, GPS, OCR confidence, operator ID |
| Person-hours per month (3,000-meter portfolio) | 1,000+ | ~200 |
Before-state figures drawn from industry baselines for manual mall meter-reading workflows. After-state figures are pilot targets calibrated against our founder's prior enterprise OCR delivery (98.27% printed-text accuracy, 91.56% handwritten character accuracy). Results in production vary by meter condition, property size, and existing workflow.
In operational terms, a mid-sized property-ops department redirects roughly four to five full-time staff from clipboard work back to actual facilities management. In finance terms, billing closes inside the same month instead of trailing it by six weeks, which pulls collections forward by roughly one working-capital cycle. In dispute terms, the conversation changes: "here's the photo, here's the reading, here's the rate" — conducted in thirty seconds, not three days.
| Mobile app | Progressive web app (installable from the browser); iOS Safari 15+ and Android Chrome 12+ supported. Native React Native wrapper available for deployments that require it. |
|---|---|
| OCR engine | On-device (Google ML Kit in pilot; swappable to a commercial meter-OCR SDK in production for higher analog-dial accuracy). All OCR runs offline; no image is transmitted for inference. |
| Meter types supported | Analog mechanical dials, digital LCD (5–7 digit), segmented LED, smart-meter LCD with icon regions. Electricity primary; water on the same workflow with unit-of-measure swap. |
| Languages | Thai (primary), English. Admin dashboard i18n ships with both. |
| Offline capability | Full reading workflow works offline. Readings, photos, and GPS captured locally; sync resumes within ~30 seconds of connectivity. |
| Photo handling | JPEG compressed to ~1MB on-device before upload. Retention configurable; 24 months is the common default for audit purposes. |
| Concurrent readers | 200+ simultaneous readers supported per deployment. |
| Stack (server + admin web) | Laravel 13 + Livewire 4 (+ Volt) + Preline UI 4 + Tailwind CSS 3 + Alpine.js + PostgreSQL 18. Redis for queue and cache. |
| Auth | Laravel Sanctum (token-based) for mobile and admin web. SSO (OIDC/SAML) available per deployment. |
| Integrations | REST push of utility line items to any tenant-billing system or property-management ERP. Inbound tenant/lease sync via REST or CSV. Outbound payload includes consumption, rate, amount, prev/current readings, reading date, and photo URL. |
| Deployment | Hosted (shared or dedicated tenant) or on-premises via Docker Compose on any modern VPS. Minimum 2 vCPU / 4GB RAM for a single-instance pilot. |
| Scale | Single instance handles 20,000 readings per month comfortably; horizontal scaling removes that ceiling for portfolio-wide rollouts. |
MeterSnap is built to clear a Thai-enterprise procurement review without custom exceptions.
Admin server, primary database, and photo object storage can be pinned to Thailand-based infrastructure (Thai DC or Singapore ap-southeast-1 at the operator's choice), satisfying Thai PDPA and the residency requirements typical of public-sector real-estate operators.
Photos are stored in S3-compatible object storage with AES-256 at rest. Access is via pre-signed URLs with a one-hour default expiry; no permanent public URLs. Metadata (device info, EXIF) is stripped on upload. Retention is configurable per deployment — 24 months is the common baseline for audit.
Every reading, every anomaly resolution, every billing-batch approval, and every push to the downstream invoicing system is logged with timestamp, operator, OCR confidence, and outcome. The audit log is append-only and exports to CSV or JSON on request.
Token-based auth (Laravel Sanctum) for mobile and admin web, SSO (OIDC/SAML) available, and RBAC scoped to four roles out of the box (Reader, Supervisor, Billing Admin, System Admin) with middleware enforcing per-property scoping for Reader and Supervisor.
TLS 1.3 in transit; AES-256 at rest for PostgreSQL and object storage. Certificate pinning on the mobile client.
The photo-per-reading capture and the line-item-level audit export are structured for the written-invoice-with-transparency requirements introduced by the 2025 consumer-protection rules for landlord utility billing in Thailand.
MeterSnap deploys as a pilot on a single property, with a written KPI and an honest ending. Either the measured outcome clears the KPI and we scale to the rest of the portfolio, or it doesn't and we part ways with the pilot report in your hands. No open-ended contracts.
Operational walkthrough with the engineering and billing teams. Export the meter registry from whatever the current source is. Generate and print the QR label sheet. A facilities technician walks the property once and labels every meter. Routes are defined. KPIs are written: target minutes-per-meter, target error rate, target billing-cycle time.
MeterSnap deployed to one property's reader team. Two full reading cycles happen during the pilot — one to calibrate (MeterSnap readings compared against a parallel manual run), one to go live (MeterSnap readings become the official source and feed the billing batch). The admin web dashboard goes live in week 3. Rate configurations are loaded per lease in week 4.
Measurement against the written KPIs. Honest gap analysis: where did OCR confidence drop, which meter types caused the most manual overrides, how many anomalies were real vs. false-positive, how much time was actually saved. Recommendation: scale, continue with scoped adjustments, or walk away. All three endings are valid.
If the pilot cleared the KPI: roll out across the remaining properties in prioritised batches, enable per-tenant consumption dashboards, wire in the REST push to the downstream invoicing system, add water-meter support if required. If it didn't: we hand over the pilot findings and part ways.
Fixed-price pilot. Walk-away clause. Roadmap influence for design partners. No surprises.
Deploy to one property. All costs fixed in week 0.
Hosted multi-tenant. Priced per meter per month, volume-tiered.
Annual licence, unlimited meters per named portfolio, on-premises or dedicated-tenant deployment.
The demo takes two minutes. Point your phone at a meter — any meter in your office, if you like — and watch the reader app do its work. If the OCR lands on your meter plate, you've learned everything you need to know about whether this works for your portfolio. If it doesn't, the tool tells you (low confidence score, manual fallback) honestly.
MeterSnap's OCR pipeline, offline-sync architecture, and Thai-ready registry are not built from scratch. They draw on our founder's prior enterprise delivery across Southeast Asia (2017–2026) — including proprietary OCR systems for Thai and Myanmar-script documents that reached 98.27% accuracy on printed text and 91.56% on handwritten characters, and production mobile-capture systems that handled millions of field-collected records under intermittent-connectivity conditions.
That history is why MeterSnap's capture accuracy targets are calibrated against real operational baselines rather than marketing-grade benchmarks, and why the offline-first mobile architecture is treated as the default rather than a nice-to-have.
Read the full track record →