Skip to content

cityssm/bill-data-extract

Repository files navigation

Bill Data Extract

npm (scoped) DeepSource

Extract data from scanned bill documents into usable details.

Supported Bills

Installation

npm install @cityssm/bill-data-extract

Usage

import { extractEnbridgeBillData } from '@cityssm/bill-data-extract/enbridge.js'

const billData = await extractEnbridgeBillData('path/to/enbridgeBill.pdf')

console.log(billData)

/*
  {
    accountNumber: '123456789012',
    serviceAddress: '123 FAKE ST BIG CITY ON G4S 0I0',
    dueDate: 'May 04, 2024',
    gasUsage: 139,
    gasUsageUnit: 'm3',
    totalAmountDue: 60.35
  } 
*/

How Does It Work?

Enbridge Bill Sample

The extractor takes a bill as input, either as an image or as a PDF. "Zones" are identified within the bill to identify where the key details are. Using tesseract.js on those zones, data is extracted and returned as a Javascript object.

💡 Note that while scanned copies of bills are oftentimes supported, the best source is a bill downloaded directly from the utility company.