ใบแจ้งค่าไฟฟ้า
Reading a Thai utility bill
A meter block, a charge ladder, and a row of reference numbers that have to survive digit for digit.
A Thai utility bill carries three things at once. It reports a meter reading, it prices that reading through a ladder of charges, and it prints the reference numbers a payment has to quote.
It is also the standard proof of address. Banks, landlords and government offices ask for a recent bill, which puts this document in front of far more systems than the utility's own.
The specimen#
This sheet is typeset from the document's real field list. Every name and figure on it is invented, and none of it comes from anyone's paperwork.
บริษัท ไฟฟ้าตัวอย่าง จำกัด (มหาชน)
๑ ถนนสายหลัก แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร ๑๐๐๐๐
ใบแจ้งค่าไฟฟ้า
ELECTRICITY BILL
ใบแจ้งหนี้ ไม่ใช่ใบเสร็จ
ประจำเดือน กรกฎาคม ๒๕๖๙
- ชื่อผู้ใช้ไฟฟ้า
- นางสาวมณีรัตน์ พงศ์เจริญ
- ที่อยู่
- ๗๗ ซอยลาดพร้าว ๗๑ แขวงลาดพร้าว เขตลาดพร้าว กรุงเทพมหานคร ๑๐๒๓๐
- หมายเลขผู้ใช้ไฟฟ้า
- 0000-0000-0000
- หมายเลขเครื่องวัด
- MTR-00-000000
- ประเภทผู้ใช้
- บ้านอยู่อาศัย ๑.๑
| เลขอ่านครั้งหลัง | เลขอ่านครั้งก่อน | จำนวนหน่วย |
|---|---|---|
| ๑๒,๘๔๕ | ๑๒,๕๙๗ | ๒๔๘ |
วันที่จดหน่วย ๒๕ กรกฎาคม ๒๕๖๙กำหนดชำระภายใน ๘ สิงหาคม ๒๕๖๙
ชำระเงินได้ที่
เคาน์เตอร์ธนาคาร ตัวแทนรับชำระ และแอปพลิเคชันธนาคาร
Ref.1 000000000000000Ref.2 000000000000
What the model read#
paxa-ocr-lite-v1 · captured Aug 30, 2026 · unedited
The Markdown it returned
# บริษัท ไฟฟ้าตัวอย่าง จำกัด (มหาชน)
๙ ถนนสายหลัก แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร ๑๐๐๐๐
# ใบแจ้งค่าไฟฟ้า
ELECTRICITY BILL
ใบแจ้งหนี้ ไม่ใช่ใบเสร็จ
ประจำเดือน กรกฎาคม ๒๕๖๙
ชื่อผู้ใช้ไฟฟ้า | นางสาวมณีรัตน์ พงศ์เจริญ
--- | ---
ที่อยู่ | ๗๗ ซอยลาดพร้าว ๗๑ แขวงลาดพร้าว เขตลาดพร้าว กรุงเทพมหานคร ๑๐๒๓๐
หมายเลขผู้ใช้ไฟฟ้า | 0000-0000-0000
หมายเลขเครื่องวัด | MTR-00-000000
ประเภทผู้ใช้ | บ้านอยู่อาศัย ๑.๑
เลขอ่านครั้งหลัง | เลขอ่านครั้งก่อน | จำนวนหน่วย
--- | --- | ---
๑๒,๘๕๕ | ๑๒,๕๙๗ | ๒๕๘
วันที่จดหน่วย ๒๕ กรกฎาคม ๒๕๖๙ กำหนดชำระภายใน ๘ สิงหาคม ๒๕๖๙
ค่าพลังงานไฟฟ้า | 952.16
--- | ---
ค่าบริการรายเดือน | 38.22
ค่าไฟฟ้าผันแปร (Ft) | 48.35
รวมค่าไฟฟ้า | 1,038.73
ภาษีมูลค่าเพิ่ม 7% | 72.71
รวมเงินที่ต้องชำระ | 1,111.44
ชำระเงินได้ที่
เคาน์เตอร์ธนาคาร ตัวแทนรับชำระ และแอปพลิเคชันธนาคาร
Ref.1 00000000000000 Ref.2 000000000000The structured blocks, typeset back into a page
- headingL1
บริษัท ไฟฟ้าตัวอย่าง จำกัด (มหาชน)
- paragraph
๑ ถนนสายหลัก แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร ๑๐๐๐๐
- headingL1
ใบแจ้งค่าไฟฟ้า
- paragraph
ELECTRICITY BILL
- paragraph
ใบแจ้งหนี้ ไม่ใช่ใบเสร็จ
- paragraph
ประจำเดือน กรกฎาคม ๒๕๖๙
- paragraph
ชื่อผู้ใช้ไฟฟ้า นางสาวมณีรัตน์ พงศ์เจริญ
- paragraph
ที่อยู่ ๗๗ ซอยลาดพร้าว ๗๑ แขวงลาดพร้าว เขตลาดพร้าว กรุงเทพมหานคร ๑๐๒๓๐
- paragraph
หมายเลขผู้ใช้ไฟฟ้า 0000-0000-0000
- paragraph
หมายเลขเครื่องวัด MTR-00-000000
- paragraph
ประเภทผู้ใช้ บ้านอยู่อาศัย ๑.๑
- table
The table the model reconstructed เลขอ่านครั้งหลัง เลขอ่านครั้งก่อน จำนวนหน่วย ๑๒,๘๕๕ ๑๒,๕๙๗ ๒๕๘ - paragraph
วันที่จดหน่วย ๒๕ กรกฎาคม ๒๕๖๙ กำหนดชำระภายใน ๘ สิงหาคม ๒๕๖๙
- table
The table the model reconstructed ค่าพลังงานไฟฟ้า 952.16 ค่าบริการรายเดือน 38.22 ค่าไฟฟ้าผันแปร (Ft) 48.35 รวมค่าไฟฟ้า 1,038.73 ภาษีมูลค่าเพิ่ม 7% 72.71 รวมเงินที่ต้องชำระ 1,111.44 - paragraph
ชำระเงินได้ที่
- paragraph
เคาน์เตอร์ธนาคาร ตัวแทนรับชำระ และแอปพลิเคชันธนาคาร
- paragraph
Ref.1 00000000000000 Ref.2 000000000000
What is on this document#
Common commercial shape
- ชื่อผู้ใช้ไฟฟ้า
- The account holder's name.
- ที่อยู่
- The service address, and the reason it is asked for.
- หมายเลขผู้ใช้ไฟฟ้า
- The customer account number.
- หมายเลขเครื่องวัด
- The meter's own identifier.
- เลขอ่านครั้งหลัง และ ครั้งก่อน
- Current and previous readings.
- จำนวนหน่วย
- Units consumed, the difference of the two.
- ค่าพลังงานไฟฟ้า
- The energy charge.
- ค่าไฟฟ้าผันแปร
- The variable component, printed as Ft.
- รวมเงินที่ต้องชำระ
- The amount due.
- กำหนดชำระ
- The payment deadline.
- Ref.1 และ Ref.2
- Payment reference numbers, digit exact.
No statute fixes this layout, and providers differ. What every Thai bill carries is a meter block, a charge ladder, and reference numbers for payment.
Why this one is hard to read#
- Reference numbers cannot drift
- A payment reference is fifteen digits with no checksum a reader can see. One wrong digit routes money to another account, and nothing about the string looks wrong afterwards.
- The readings are Thai digits
- Meter readings often print in Thai numerals while the money prints in Arabic. Both are numbers, and only one of them looks like one to a reader trained mostly on Latin script.
- Three amounts are not the total
- The energy charge, the service charge, and Ft each sit above a subtotal, VAT, and the amount due. Six figures in one column, and only the last is what gets paid.
From blocks to fields#
The charge ladder comes back as rows in reading order, which lets you read the last one as the amount due without matching on a label that differs by provider. Reference numbers come back as text. Keep them as strings, because leading zeros are load-bearing and an integer will eat them.
- Rate
- 6.5 credits per page
- Per request
- 50 pages, 10 MB, PDF, PNG, JPEG, WEBP
- Free credits
- 100 credits, about 15 pages
Questions#
- Does it work for water bills too?
- The shape is the same: a meter block, a charge ladder, and references. Nothing in the reader is specific to electricity, and nothing in it is specific to any provider.
- Will the reference numbers come back exactly?
- They come back as the text on the page. Store them as strings and compare against the barcode when your flow has one, because a reference is the field where a single digit is the whole failure.
- Can I use this for proof of address?
- The reading returns the name and service address as text in their blocks. Whether that satisfies a particular verification policy is that policy's question, and this returns the page it will be judged on.
Send it your own documents.
New accounts start with 100 free credits, enough for about 15 pages. Try it on a real file in the playground.