PerfectParser Docs
User GuidesParser Setup Guides

Set Up Meter and Usage Fields for Utility Bills

Configure utility bill fields in the dashboard — capture usage tables, billing periods, and multi-service charges from electricity, gas, and water bills.

Ready to set this up? Sign up for PerfectParser and get 20 free credits — no credit card required.

What this guide helps you do

This guide shows how to configure a utility bill parser in PerfectParser, define usage and charge fields, run a test batch, and export billing data. Use the prompt below only when you need consistent mapping — skip it on the first pass to let auto-detect find additional line items or service sections.

Why utility bills are hard to parse

Utility bills combine multiple services — electricity, gas, water, sewer — on a single statement with separate usage tables and rate breakdowns. Units vary (kWh, therms, gallons, cubic meters) and often appear in the same table with different column headers. Previous balance, current charges, late fees, and credits each have distinct accounting meaning but may appear as adjacent lines in a summary block. Billing period formats range from "05/01/2026 – 05/31/2026" to "Service dates: May 2026". Multi-service bills sometimes nest usage detail on page two while page one shows only a summary total. A parser that captures total_amount_due without a usage_details table loses the consumption data needed for energy audits or tenant chargebacks.

We suggest configuring the following schema fields for your Utility Bill Parser to capture all essential utility billing data.

Field NameTypeDescription
provider_nameTextThe company billing you (e.g., British Gas, PG&E, Comcast).
account_numberTextThe utility customer account ID.
invoice_numberTextThe unique billing invoice number.
billing_periodTextThe statement date range (e.g., May 10 to June 9, 2026).
due_dateTextThe deadline for the payment.
current_chargesNumberCharges incurred during the current billing cycle.
previous_balanceNumberUnpaid balance carried over from previous months.
total_amount_dueNumberThe overall total balance due.
usage_detailsTableTable containing metrics like service_type (e.g. Electricity, Water), usage_amount (e.g. kWh, Gallons), rate, and total.

AI Prompt (Optional)

Use this only when you want to guide auto-detect toward a specific set of fields.

If you want PerfectParser to discover additional fields on its own, leave the AI Prompt (Optional) box blank for the first pass, review the detected schema, then add a prompt only if you need tighter consistency.

When you do use a prompt, copy and paste the following instructions into the AI Prompt (Optional) field during setup:

Extract the utility provider name, customer account number, billing invoice number, billing period, payment due date, current billing cycle charges, previous balance, and total amount due. Also extract the usage details table containing the service type, usage amount (with units like kWh), rate, and subtotal.

Set up this parser in the dashboard

Create a parser

Go to Parsers → New Parser in the dashboard. Give it a name like "Utility Bill Parser" and optionally select the document category.

Upload a sample document

Drag and drop a representative utility bill (PDF, PNG, or JPEG). Use a combined-service bill if that is your norm — the AI needs to see how multiple usage tables are structured.

Detect fields or use standard fields

Paste the AI Prompt from the section above into the AI Prompt (Optional) box if you want tighter field mapping, then click Auto-Detect. To discover more fields automatically, leave the prompt blank and click Auto-Detect. Or skip auto-detect and add fields manually using the Recommended Fields table above.

Review and save your schema

Check that usage_details is a Table with a service_type column to distinguish electricity from gas rows. Confirm previous_balance and current_charges are separate Number fields. Click Save.

Run a test batch

Navigate to Bulk Extraction, choose how your files are organised, upload a small test set of utility bills, and click Extract All Files. Review the results in Batch History and export to CSV or Excel.

Common mistakes

  • Mapping previous balance and current charges into a single total field — you lose visibility into carry-forward balances vs new usage.
  • Omitting unit information in the usage_details table (kWh vs therms) when multiple services share one bill.
  • Using a single-service water bill as the sample when production files are combined electric-and-gas statements with different table layouts.
  • Storing usage amounts as Text because units are embedded in the cell — keep usage_amount as Text if units vary, or split into amount and unit columns if your workflow requires numeric usage.

Next steps

Test your first extraction free — sign up for PerfectParser, no credit card needed.

FAQs

Do I need a sample utility bill to set up this parser?

Yes. Upload a bill from the provider and service mix you process most often. Combined electricity-and-gas bills use different table layouts than single-service water statements, so pick a representative sample.

How do I separate previous balance from current charges?

Define previous_balance and current_charges as separate Number fields, plus total_amount_due for the payable total. Do not map everything into one amount field — expense audits need to see what is carried forward vs billed this cycle.

How many credits does setup and a test extraction use?

Parser setup is free. Each bill page costs 1 credit. Most residential utility bills are 1–2 pages. Property managers processing portfolio batches should budget 1 credit per page per account.

Looking for product features and use cases?

See the Utility Bill Data Extraction solution page.

On this page