Technical Overview

How UtilityGuard works.

From a PDF uploaded by your team to a ready-to-send dispute letter — here is the complete technical picture of every step in the audit pipeline.

Pipeline Stages

01 · Document ingestion
02 · Automated extraction
03 · Tariff lookup
04 · Audit checks (4 types)
05 · Letter generation
ONGOING · Bill monitoring

UtilityGuard is an independent bill-audit service. We surface rate-class errors, surcharge mistakes, duplicate charges, and overcharges for you to dispute with your utility. We are not a licensed energy broker, marketer, or aggregator under NY PSL §66-t or any state equivalent. We do not negotiate, switch, or place customers on alternative supply contracts.

Step 01

Document ingestion

Bills are uploaded as PDF files from your dashboard. Each file is stored securely on AWS S3 with server-side encryption — your raw bill data never passes through our application servers unencrypted.

Any utility, any format

PDFs from all 30+ covered utilities are accepted. The same pipeline handles digital-native PDFs from modern utilities and scanned paper bills from older providers.

Secure storage

Files are stored in a private S3 bucket with server-side AES-256 encryption. Presigned URLs with a 1-hour expiry are used for upload and download.

Async processing

Uploads trigger a background job on a dedicated worker process. The UI stays responsive while parsing and auditing happen asynchronously.

Status tracking

Each bill tracks a parseStatus field: pending → parsing → parsed → audited (or failed). You can see real-time progress from the dashboard.

Step 02

Automated extraction

Each PDF is processed through our extraction engine, which reads every charge using structured document parsing and returns each line item as a typed data object with per-field confidence scoring.

Confidence Threshold

0.70

Fields below 70% confidence are logged but still processed — no manual review gate.

Extracted Fields Per Bill

// ParsedBill structure
{ accountNumber, billingPeriodStart, billingPeriodEnd,
  totalBilled, usageKwh, meterReadPrev, meterReadCurrent,
  lineItems: [ { chargeType, description, quantity,
               unit, rate, amount, confidenceScore } ]
} 

30+ parsers

One parser configuration per covered utility. Each uses the shared extraction engine — utility-specific logic is added when needed.

Auto-proceeds

No human confirmation step. Low-confidence extractions are logged; the audit runs regardless. Speed over perfection.

Step 03

Tariff lookup

Every US utility files an official tariff with its state Public Utilities Commission. The tariff is a public document listing the exact rates, tiers, surcharges, and taxes the utility is legally authorised to charge for each rate class.

The audit engine looks up the relevant tariff on demand at audit time so every charge on your bill can be checked against what your utility is allowed to bill you for.

Data is sourced from official state regulatory filings and cross-referenced against the OpenEI USURDB. Lookup snapshots are cached for 90 days and re-verified on the next audit run.

What we look up (and what we don't)

We look up

The effective tariff for your utility and rate class — the same document a state regulator would open to verify a charge. Used for bill verification only.

We don't maintain

A private catalogue of alternative supply contracts, rate-class offers, or broker pricing. UtilityGuard never places customers on rate schedules or negotiates supply — see /terms §2.

We don't collect

Utility account credentials, banking data, or supply-contract details from your provider. See /privacy §1.

30+

Utilities covered

90d

Lookup-cache refresh

Public

Tariff source

Step 04

Audit engine

Four independent check types run against every parsed bill. Each produces an AuditResult record with status, expected vs. billed amount, and discrepancy in dollars. All four checks verify charges against the tariff your utility has filed with the state regulator — we do not recommend rate-class moves or supply changes.

Rate VerificationSurcharge VerificationAnomaly DetectionDuplicate Detection

Rate Verification

Line-item rate verification

Every charge on every bill is matched against the official tariff rate for that utility, rate class, and charge type. We calculate what you should have paid, compare it to what you were billed, and flag discrepancies above $5 or 3%.

Looks up the effective tariff on demand. Handles tiered pricing structures automatically.

Surcharge Verification

Surcharge & tax verification

Surcharges and taxes are verified against the utility's filed tariff. Any surcharge not present in the official schedule is flagged as unverified — a common source of phantom fees.

Matches by charge type against the tariff in effect for the billing period.

Anomaly Detection

Usage anomaly detection

Your trailing 12-month usage average is computed per location. Bills with usage more than 30% above or 50% below that average are flagged for review — often indicating meter errors or vacant periods being billed at peak rates.

Spike threshold: 30% above trailing average. Drop threshold: 50% below.

Duplicate Detection

Duplicate billing detection

Overlapping billing periods and identical total amounts for the same location and billing period are cross-checked. Duplicate bills — a surprisingly common occurrence after utility system migrations — are caught immediately.

Checks billing-period overlap and exact amount matches within the same location.

Step 05

Dispute letters

Flagged audit results are grouped into a dispute and exported as a professional PDF letter — ready for youto send to your utility's billing department. UtilityGuard never submits disputes on your behalf or negotiates with the utility.

  • Your company header with account number and service address
  • Itemized table of each disputed charge with expected vs. billed amounts
  • Reference to the specific tariff the utility filed with the state regulator
  • Total dollar amount disputed
  • Signature block and submission instructions — you file the dispute with the utility
Ongoing

Bill monitoring

Every month, as you upload new bills, the audit engine runs the same four checks and flags any new discrepancies. Findings roll into ongoing dispute packets you can export and file with your utility. No broker-style "rate monitoring" — we never recommend rate-class moves or supply changes.

Weekly email reports

Summary of bills audited, discrepancies flagged, and cumulative disputes outstanding — delivered every Monday.

90-day tariff re-verification

Tariff lookups are cached for 90 days and re-verified on the next audit run to catch rate changes filed with the state regulator since the last check.

Inactivity alerts

If no bill is uploaded from a location in 45 days, we send a reminder so your audit coverage stays current.

Stop reading. Start auditing.

Flat $99/month. No setup fee. Pay and get your login link instantly.

Get Started →