The vendor's unique identifier for THIS invoice document. Labels: 'Invoice Number', 'Invoice #', 'Invoice No', 'Invoice ID', 'INVOICE NUMBER'. Verbatim string including any leading zeros, letters, or dashes (e.g. 'NF67652', '9823373304', '025-479686', 'INUS246402', '2105629'). Do NOT confuse with the Customer/Account Number, the Purchase Order Number, the Order/Sales Order Number, or any product Item Number. Located in the invoice header block, usually top-right near the date.

Classification of the document: 'standard' for an ordinary bill/invoice; 'credit_note' only if the document is explicitly a credit memo / credit note (negative balance owed back to the customer); 'proforma' only if explicitly labeled 'Pro Forma'. Default to 'standard' unless the document text clearly states otherwise. Do NOT infer 'credit_note' from individual negative line/credit rows inside a roll-forward account summary.

For credit notes only, the invoice number of the original invoice being credited (verbatim string). Do NOT confuse with this document's own invoice_number. Null for standard and proforma invoices, or whenever no original invoice is referenced.

The invoice issue date, normalized to YYYY-MM-DD. Labels: 'Invoice Date', 'Date', 'DATE'. Do NOT confuse with the Due Date, the Order Date, a per-line Tax Date / Shipment Date, or 'Samples Received On'. Located in the header block near the invoice number. Convert from the printed format (e.g. '07/19/14' -> '2014-07-19', '01-May-24' -> '2024-05-01').

Payment due date, normalized to YYYY-MM-DD. Labels: 'Due Date', 'Payment Due', 'DUE DATE'. Do NOT confuse with the invoice issue date or the payment-terms string (e.g. 'Net 30'). Located in the header or terms block. Null if no explicit due date is printed.

The customer's Purchase Order number referenced on the invoice. Labels: 'Purchase Order Number', 'PO Number', 'P.O. Number', 'PO NUMBER'. Verbatim string exactly as printed (may be alphanumeric or even a free-text reference, e.g. '95055', '212706', 'WEB2454487473', 'Dish 160R Upton St'). Do NOT confuse with the vendor's Order/Sales Order Number (order_number), the Invoice Number, the Customer/Account Number, or 'Your Ref'/'Our Ref'. Located in the header/terms block. Null if no PO field is present or it is blank.

The vendor-assigned order / sales order number identifying the order this invoice fulfills. Labels: 'Order Number', 'Sales Order Number', 'Ord No', 'ORDER NUMBER'. Verbatim string as printed (e.g. '1491364305', 'S151787147', 'FLDQ324', '189884'). Do NOT confuse with the customer's Purchase Order Number (purchase_order_number), the Invoice Number, the Customer/Account Number, or 'Your Ref'/'Our Ref'. Located in the header block. Null if no order/sales-order number is printed.

The party issuing the invoice and to be paid (the 'Remit To' / letterhead seller, e.g. 'CDW Government', 'Axon Enterprise Inc.'). Do NOT populate from the Bill To / customer block.

The vendor/seller name exactly as printed on the letterhead or remit-to block. Do NOT use the Bill To (customer) name.

Seller/VENDOR postal address. TIEBREAK: use the seller's PRIMARY address printed in the top letterhead/header block next to the vendor name/logo. If a SEPARATE 'Remit To' / 'Please send payment to' / lockbox / 'Dept. <acct>' payment address is also printed, do NOT use it here (that is a remittance address).

Vendor street line from the letterhead/header block; NOT a Remit-To/lockbox 'Dept.' line.

City. Null if not present.

State, province, or region (e.g. 'MA', 'TX'). Do NOT confuse with country. Null if not applicable/printed.

Postal/ZIP code as printed, verbatim string incl any +4 (e.g. '60675-1515'). Null if not present.

Country. Null if not printed (assume domestic; do not invent a country that is not shown).

Vendor phone number as printed. Do NOT confuse with the customer's phone. Null if not present.

Vendor remittance/AR email as printed. Do NOT confuse with the customer's email. Null if not present.

The vendor's tax identifier, verbatim string. Labels: 'FEIN', 'FEI Number', 'TIN', 'Tax ID', 'Federal ID #', 'Fed. ID No.'. Do NOT confuse with the customer's account number or any invoice/order number. Null if not printed.

The party being billed (the 'Bill To' / 'Invoice To' recipient who owes payment, e.g. 'Hingham Town Hall Selectmen', 'City of Mission'). Do NOT populate from the vendor letterhead/remit-to block, nor from the 'Ship To' / delivery address if a distinct Bill To exists.

The customer/Bill To name exactly as printed. Do NOT use the vendor name or the Ship To name when a distinct Bill To exists.

Customer phone number as printed. Do NOT confuse with the vendor's phone. Null if not present in the Bill To block.

Customer email as printed. Do NOT confuse with the vendor's remittance/AR email. Null if not present.

The customer's account number with this vendor. Labels: 'Customer Number', 'Account Number', 'GRAINGER ACCOUNT NUMBER', 'Cust No', 'Invoice Account'. Verbatim string incl leading zeros (e.g. '1095519', 'C2588144', '838233708', '43895', '141848'). Do NOT confuse with the Invoice Number, the Purchase Order Number, or the Order Number. Located in the header/Bill To block. Null if no customer/account number is printed.

The billed line items from the MAIN charges/details table ONLY (e.g. the 'New charges (details below)' table, the per-item 'Detailed Invoice Information' table, or the numbered 'Line No.' table). EXCLUDE: rows from an 'Account Summary'/balance roll-forward block (Balance Forward, payments/credits, 'Other invoices from this date', Total Amount Due), remittance-stub rows, and subtotal/tax/total summary rows. For invoices that group charges under CATEGORY headers where the price is printed at the header level (e.g. Tyler 'ERP Pro Financials Annual Fees'), emit ONE line_item per priced category header row (description = the category header text, amount = its printed Extended Price); do NOT emit separate rows for the unpriced indented component/'Cycle' sublines.

Printed row sequence number of this line item. Labels: 'Line No.', 'Line #', 'Item' (when it is a 1,2,3... counter). If no explicit Line No. column exists, assign 1..N in printed top-to-bottom order. Do NOT confuse with item_code (the product SKU/part number) nor with quantity.

Vendor product code / SKU / part number for this line. Labels: 'Item Number', 'Item #', 'ITEM #', 'Item', 'MFG #' / 'Manufacturer Part Number'. Verbatim string incl leading zeros and letters (e.g. '2856676', '61DE01', 'KID21005779', 'IQ10183', '72036'). Do NOT confuse with line_no (the row sequence counter). Null if the line has no product code column (e.g. service-only invoices).

The product or service NAME for this line as printed in the Description column, including an inline manufacturer/part number if printed on the same item line (e.g. 'OFFICE DEHUMID ... MANUFACTURER # FFAP5033W1'). Tolerate OCR artifacts. EXCLUDE: (a) shipment/delivery/tracking metadata (Delivery#, Date, Carrier, No. of pkgs, Wt, Trk#, SHIPPED FROM); (b) Tax-Date / Shipment-Date / 'Cycle: Start.../End...' / service-period sublines; (c) customer-service annotations or 'Customer has indicated to invoice to...' / 'archived the PO' notes; (d) the item_code, quantity, unit_price, or amount columns. Normalize internal whitespace to single spaces. Do NOT confuse with item_code (the SKU/part-number column) or notes (free-text message block).

Quantity billed for this line. Labels: 'Quantity', 'QTY', 'Units', 'QTY SHIP'. May be fractional for hourly/weight-based services. Do NOT confuse with line_no or with unit_price.

Price per unit for this line as a number (strip currency symbols and thousands separators; e.g. '$2,340.00' -> 2340.00). Labels: 'Unit Price', 'Price', 'Rate', 'Adjusted Price'. Do NOT confuse with the line amount/extended price (that is the quantity-times-unit total). Null if no per-unit price is printed for the line.

Line-level discount as a percentage number (e.g. 10 for 10%). Do NOT confuse with tax_rate or with a 'Rush %' surcharge. Null if no discount percent is printed for the line.

Line-level tax rate as a percentage number (e.g. 8.25 for 8.25%). Do NOT confuse with discount_percent. Null if no per-line tax rate is printed.

The extended line amount (quantity times unit price, after any line discount, before invoice-level tax) as a number; strip currency symbols and separators. Labels: 'Amount', 'Total', 'EXT PRICE', 'Extended Price', 'TOTAL'. Do NOT confuse with unit_price (per-unit) or with the invoice subtotal/total.

Sum of all line item amounts before invoice-level tax, shipping, and discounts, as a number (strip currency symbols/separators). Labels: 'Subtotal', 'SUBTOTAL', 'INVOICE SUB TOTAL', 'Sub Total', 'Sales Amount'. Do NOT confuse with total_amount (the final amount due) or with a per-line amount. Located in the totals block.

Total invoice-level discount amount as a number. Labels: 'Discount', 'Total Discount'. Do NOT confuse with a per-line discount_percent or with negative account-summary credit rows. Null if no invoice-level discount line is printed.

Total tax amount on the invoice as a number. Labels: 'Sales Tax', 'Tax', 'TAX & BOTTLE DEPOSITS TOTAL'. Do NOT confuse with a per-line tax_rate (a percentage) or with the subtotal. Null if no tax total line is printed.

Shipping / freight charge total as a number. Labels: 'Shipping', 'Freight'. Do NOT confuse with the subtotal or tax_total. Null if no shipping line is printed.

The final total amount due on the invoice as a number (strip currency symbols/separators). Labels: 'Amount Due', 'Total', 'Invoice Total', 'Total Due', 'BALANCE DUE', 'Order Total'. Do NOT confuse with the subtotal, with a per-line amount, or with an 'Account Summary' balance-forward figure. Located in the totals block, usually the last/boldest figure.

Payment terms text as printed. Labels: 'Terms', 'Payment Terms', 'Payment'. Verbatim string (e.g. 'Net 30 Days', 'NET 45', 'NET30'). Do NOT confuse with the due_date (a date). Null if no terms text is printed.

Name of the bank for remittance (e.g. 'The Northern Trust', 'JPMorgan Chase'). Null if not printed.

The vendor's bank account number for payment, verbatim string. Do NOT confuse with the customer's account_number or the invoice/order numbers. Null if not printed.

The bank routing / ABA number for payment, verbatim string. Labels: 'Routing No', 'Bank Routing No'. Null if not printed.

Vendor bank/remittance details for electronic payment, if an ACH/wire/routing block is present. Null if no bank details are printed on the invoice.

USD EUR GBP CAD AUD JPY CNY INR BRL CHF KRW

The ISO 4217 currency code of the invoice amounts. Read from an explicit 'Currency' field or a printed code (e.g. 'USD'); otherwise infer from the currency symbol ('$' on a US vendor invoice -> 'USD'). Do NOT guess beyond what the symbol/locale supports.

Verbatim content of an EXPLICITLY LABELED free-text block on the invoice (label one of: Notes, Comments, Message, Remarks, Special Instructions, Important Messages). EXCLUDE payment/remittance boilerplate, marketing ('Go Green', paperless-billing promos), received/paid stamps, finance-charge terms, and vendor address-change notices. Null if the invoice has no such explicitly labeled notes block. Do NOT confuse with line_items.description or payment_terms. If a labeled block's content is entirely excluded categories (marketing/paperless/remittance boilerplate), return null.

A postal address parsed into components.

Street line(s) of the address as printed (incl suite/PO box). Null if not present.

City. Null if not present.

ANNUAL SANDBOX MAINTENANCE

IQ SANDBOX ENVIRONMENT SETUP

Updated Purchase Orders can be sent to accounting@operativeiq.com.

FORT BEND COUNTY EMS / FORT BEND COUNTY AUDITOR / ATTN: ACCOUNTS PAYABLE / 301 JACKSON, SUITE 701 / RICHMOND, TX 77469

ANNUAL SANDBOX MAINTENANCE

IQ SANDBOX ENVIRONMENT SETUP


A single point-of-sale purchase RECEIPT (retail or restaurant). DOC-TYPE / SCOPE RULE: if one file bundles MULTIPLE distinct receipts or transactions (e.g. a Lowe's email containing several purchases, each with its own 'Transaction #' and 'Order #'), extract ONLY the FIRST receipt — the one that appears FIRST in reading order (top of the document, earliest Order Date/time). Ignore all later receipts; do NOT merge line items, totals, or payments across receipts. A receipt is NOT an invoice: there is no bill-to customer, no due date, no PO terms.

Merchant street address as printed on the receipt header.

Street line (number + street name), e.g. '600 N CLARK', '729 BRIDGE STREET'. Null if the receipt prints no street address. Do NOT confuse with the merchant name line above it or the city/state line below it.

City/town, e.g. 'CHICAGO', 'Weymouth'. Null if absent.

Two-letter US state code, e.g. 'IL', 'MA'. Null if absent. Do NOT confuse with the ZIP.

Postal/ZIP code verbatim including leading zeros, e.g. '60610', '02191'. Null if absent.

The selling merchant / store brand printed at the top of the receipt. May appear as a logo word, a 'THANK YOU FOR CHOOSING <X>' line, or a legal entity name. Examples: 'MCDONALDS', 'GOLDEN CORRAL', "LOWE'S HOME CENTERS, LLC". Use the brand/legal name verbatim; strip a trailing store number (that goes in store_number). Do NOT confuse with a cardholder, server, or 'sold to' name.

The store/location identifier for this merchant outlet. Label aliases: 'Store#', 'Store #', a '#NNNN' suffix on the brand line (e.g. 'GOLDEN CORRAL #0938' -> '0938'), or 'MCDONALDS 6676'. Return digits only, verbatim including leading zeros. Do NOT confuse with Terminal #, Register/KS#, Transaction #, Order #, or MER# (merchant id). Null if no store number is printed.

The merchant's street address block from the receipt header. Null if the receipt prints no address at all (e.g. a receipt that shows only the brand name).

Merchant phone number from the header, verbatim as printed (keep the format the receipt uses, e.g. '312-867-0455' or '(781) 340-5964'). Label aliases: 'TEL#', 'TEL', 'PHONE'. Null if not printed. Do NOT confuse with a card authorization code or transaction id.

The date the purchase/transaction occurred, normalized to ISO 'YYYY-MM-DD'. Sources: a header date line ('Dec.08\'12 (Sat)' -> '2012-12-08'), 'Order Date : 01/21/26' -> '2026-01-21', or a 'MM/DD/YY' near the total ('02/27/15' -> '2015-02-27'). Interpret 2-digit years as 20YY. Do NOT confuse with an AuthTime date if it differs from the order date — prefer the Order/Transaction date. If only 'MM/DD' (no year) is printed, use the year from elsewhere on the same receipt; if truly absent, use the printed value's year.

Time of the transaction in 24-hour 'HH:MM' format. Sources: '(Sat) 00:34' -> '00:34', 'Order Date : 01/21/26 08:13:57' -> '08:13', '1:28p' -> '13:28'. Convert 12-hour am/pm to 24-hour. Null if no time is printed. Do NOT confuse with AuthTime (use the order/transaction time when both exist).

The primary transaction/receipt identifier for this purchase. Label aliases: 'Transaction #', 'Order #', 'F-NNNN' check id, 'Rec:' number, 'Order'. Prefer the value explicitly labeled 'Transaction #'; else the 'Order #'; else the check/receipt id printed nearest the items. Return the FULL printed token VERBATIM, including any leading letter prefix and hyphen and leading zeros (e.g. 'F-0298' -> 'F-0298', NOT '0298'; 'Transaction # : 11847985' -> '11847985'). Do NOT confuse with store_number, Terminal #, SEQ#, MER#, or the card authorization code. Null if none is printed.

The list of purchased line items, one entry per printed item row, in top-to-bottom reading order. Include ONLY real purchased items; EXCLUDE subtotal/tax/total rows, 'Invoice NNNN Subtotal' roll-up rows, 'Total # of items' lines, and survey/marketing text. For the multi-receipt scope rule above, include only the first receipt's items.

1-based sequential position of this item in the printed item list (first item = 1, second = 2, ...). This is a positional ordinal assigned by reading order, NOT a value printed on the receipt. It is the identity_key for row alignment.

The item name/description exactly as printed on its row, e.g. 'MED VANILLA SHAKE', 'BIG MAC', 'PS 6-IN JR HACKSAW', 'SR LUNCH BUFFET', 'TEA'. Verbatim text minus the leading quantity and trailing price. Do NOT include the SKU/Item # (that is its own field).

Quantity purchased for this row. Sources: a leading QTY column ('5 MED VANILLA SHAKE' -> 5), or a '1 @ 8.98' unit line -> 1. If no quantity is printed for the row, default to 1. Do NOT confuse with unit_price or item_total.

Price per single unit, populated ONLY when a per-unit price is explicitly printed SEPARATELY from the line total — e.g. the value after '@' in '1 @ 8.98' -> 8.98, or a dedicated per-unit price column. If the row shows only ONE price (the extended/line amount) with no explicit per-unit notation, that price is the item_total and unit_price MUST be null — even when quantity is 1 (do NOT copy the line total into unit_price, and do NOT compute it by dividing total by quantity). Do NOT confuse with item_total.

The extended amount charged for this row as printed in the line's price/TOTAL column, e.g. '5 MED VANILLA SHAKE  14.25' -> 14.25, 'PS 6-IN JR HACKSAW $ 8.98' -> 8.98. This is the per-row total, NOT the receipt subtotal/total. Do NOT confuse with unit_price (equal only when quantity is 1).

The merchant item/SKU number for this row when printed, label alias 'Item #:' (e.g. 'Item #: 587724' -> '587724'). Return digits verbatim including leading zeros. Null when no item number is printed (most restaurant receipts). Do NOT confuse with line_no, store_number, or transaction_id.

Pre-tax subtotal = sum of line item totals, as PRINTED. Label aliases: 'Subtotal', 'Sub Total', 'Sub Total :'. For multi-receipt files use the first receipt's subtotal. Do NOT confuse with 'Invoice NNNN Subtotal' roll-up duplicates (same value), with tax, or with total.

Total sales tax charged, as PRINTED. Label aliases: 'Tax', 'Total Tax', 'Tax :'. Do NOT confuse with subtotal or total. Return the printed amount (0 only if the receipt prints a zero tax).

The grand total amount due/charged for the purchase, as PRINTED. Label aliases: 'Total', 'TOTAL', 'Eat-In Total', 'TOTAL :', 'TOTAL SALES'. Equals subtotal + tax. For multi-receipt files use the first receipt's total. Do NOT confuse with subtotal, tax, amount_paid/tendered (often equal), or a per-line item_total.

The tender / card brand used to pay. Normalize to one of: 'VISA', 'MASTERCARD', 'AMEX', 'DISCOVER', 'DEBIT', 'CASH', 'GIFT_CARD', 'OTHER'. Sources: 'Payment: VISA ending in 3954' -> 'VISA', 'MASTERCARD' memo -> 'MASTERCARD', 'Debit SALE' / 'Cashless' debit -> 'DEBIT'. Null if the tender is not identifiable. Do NOT confuse with the card last-4 or auth code.

The last four digits of the card account used, as a 4-character string. Sources: 'ACCOUNT# ************0093' -> '0093', 'VISA ending in 3954' -> '3954', a masked 'xxxxxxxxxxxxx5760' -> '5760'. Null if no card digits are printed (e.g. cash). Do NOT confuse with store_number, auth_code, or transaction_id.

The card authorization/approval code for the payment, taken ONLY from a token EXPLICITLY labeled as such. Label aliases (one must be present): 'AUTHORIZATION CODE', 'AUTH CODE', 'AuthCD', 'Approval', 'Approval Code'. Return verbatim (may be alphanumeric, e.g. '861336', '05391D'). Return null if no explicitly-labeled authorization/approval code is printed. Do NOT pull a value from a 'Memo:' line, a 'Rec:' receipt number, REFID, SEQ#, or any unlabeled alphanumeric token. Do NOT confuse with card_last4 or transaction_id.

The amount actually tendered/charged to the payment method. Label aliases: 'AMT-TEND', 'Cashless', 'Payment: ... $X', 'TALLY', 'AMOUNT'. Usually equals total. Null if not separately printed. Do NOT confuse with 'Change', subtotal, or tax.

ISO 4217 currency code of the receipt amounts. US receipts default to 'USD' (amounts shown with '$' or no symbol on a US merchant receipt). Infer from the merchant locale/currency symbol.

SR LUNCH BUFFET

SR. LUNCH BUFFET

TEA

TEA

SR LUNCH BUFFET

SR LUNCH BUFFET

TEA

TEA

List of purchased items on the (first) receipt. Aligned across extractors by line_no (1-based printed reading-order position). Long-Doc List Completeness scores don't-drop / don't-hallucinate on this list.


The vendor's unique identifier for THIS invoice document. Labels: 'Invoice Number', 'Invoice #', 'Invoice No', 'Invoice ID', 'INVOICE NUMBER'. Verbatim string including any leading zeros, letters, or dashes (e.g. 'NF67652', '9823373304', '025-479686', 'INUS246402', '2105629'). Do NOT confuse with the Customer/Account Number, the Purchase Order Number, the Order/Sales Order Number, or any product Item Number. Located in the invoice header block, usually top-right near the date.

Classification of the document: 'standard' for an ordinary bill/invoice; 'credit_note' only if the document is explicitly a credit memo / credit note (negative balance owed back to the customer); 'proforma' only if explicitly labeled 'Pro Forma'. Default to 'standard' unless the document text clearly states otherwise. Do NOT infer 'credit_note' from individual negative line/credit rows inside a roll-forward account summary.

For credit notes only, the invoice number of the original invoice being credited (verbatim string). Do NOT confuse with this document's own invoice_number. Null for standard and proforma invoices, or whenever no original invoice is referenced.

The invoice issue date, normalized to YYYY-MM-DD. Labels: 'Invoice Date', 'Date', 'DATE'. Do NOT confuse with the Due Date, the Order Date, a per-line Tax Date / Shipment Date, or 'Samples Received On'. Located in the header block near the invoice number. Convert from the printed format (e.g. '07/19/14' -> '2014-07-19', '01-May-24' -> '2024-05-01').

Payment due date, normalized to YYYY-MM-DD. Labels: 'Due Date', 'Payment Due', 'DUE DATE'. Do NOT confuse with the invoice issue date or the payment-terms string (e.g. 'Net 30'). Located in the header or terms block. Null if no explicit due date is printed.

The customer's Purchase Order number referenced on the invoice. Labels: 'Purchase Order Number', 'PO Number', 'P.O. Number', 'PO NUMBER'. Verbatim string exactly as printed (may be alphanumeric or even a free-text reference, e.g. '95055', '212706', 'WEB2454487473', 'Dish 160R Upton St'). Do NOT confuse with the vendor's Order/Sales Order Number (order_number), the Invoice Number, the Customer/Account Number, or 'Your Ref'/'Our Ref'. Located in the header/terms block. Null if no PO field is present or it is blank.

The vendor-assigned order / sales order number identifying the order this invoice fulfills. Labels: 'Order Number', 'Sales Order Number', 'Ord No', 'ORDER NUMBER'. Verbatim string as printed (e.g. '1491364305', 'S151787147', 'FLDQ324', '189884'). Do NOT confuse with the customer's Purchase Order Number (purchase_order_number), the Invoice Number, the Customer/Account Number, or 'Your Ref'/'Our Ref'. Located in the header block. Null if no order/sales-order number is printed.

The party issuing the invoice and to be paid (the 'Remit To' / letterhead seller, e.g. 'CDW Government', 'Axon Enterprise Inc.'). Do NOT populate from the Bill To / customer block.

The vendor/seller name exactly as printed on the letterhead or remit-to block. Do NOT use the Bill To (customer) name.

Seller/VENDOR postal address. TIEBREAK: use the seller's PRIMARY address printed in the top letterhead/header block next to the vendor name/logo. If a SEPARATE 'Remit To' / 'Please send payment to' / lockbox / 'Dept. <acct>' payment address is also printed, do NOT use it here (that is a remittance address).

Vendor street line from the letterhead/header block; NOT a Remit-To/lockbox 'Dept.' line.

City. Null if not present.

State, province, or region (e.g. 'MA', 'TX'). Do NOT confuse with country. Null if not applicable/printed.

Postal/ZIP code as printed, verbatim string incl any +4 (e.g. '60675-1515'). Null if not present.

Country. Null if not printed (assume domestic; do not invent a country that is not shown).

Vendor phone number as printed. Do NOT confuse with the customer's phone. Null if not present.

Vendor remittance/AR email as printed. Do NOT confuse with the customer's email. Null if not present.

The vendor's tax identifier, verbatim string. Labels: 'FEIN', 'FEI Number', 'TIN', 'Tax ID', 'Federal ID #', 'Fed. ID No.'. Do NOT confuse with the customer's account number or any invoice/order number. Null if not printed.

The party being billed (the 'Bill To' / 'Invoice To' recipient who owes payment, e.g. 'Hingham Town Hall Selectmen', 'City of Mission'). Do NOT populate from the vendor letterhead/remit-to block, nor from the 'Ship To' / delivery address if a distinct Bill To exists.

The customer/Bill To name exactly as printed. Do NOT use the vendor name or the Ship To name when a distinct Bill To exists.

Customer phone number as printed. Do NOT confuse with the vendor's phone. Null if not present in the Bill To block.

Customer email as printed. Do NOT confuse with the vendor's remittance/AR email. Null if not present.

The customer's account number with this vendor. Labels: 'Customer Number', 'Account Number', 'GRAINGER ACCOUNT NUMBER', 'Cust No', 'Invoice Account'. Verbatim string incl leading zeros (e.g. '1095519', 'C2588144', '838233708', '43895', '141848'). Do NOT confuse with the Invoice Number, the Purchase Order Number, or the Order Number. Located in the header/Bill To block. Null if no customer/account number is printed.

The billed line items from the MAIN charges/details table ONLY (e.g. the 'New charges (details below)' table, the per-item 'Detailed Invoice Information' table, or the numbered 'Line No.' table). EXCLUDE: rows from an 'Account Summary'/balance roll-forward block (Balance Forward, payments/credits, 'Other invoices from this date', Total Amount Due), remittance-stub rows, and subtotal/tax/total summary rows. For invoices that group charges under CATEGORY headers where the price is printed at the header level (e.g. Tyler 'ERP Pro Financials Annual Fees'), emit ONE line_item per priced category header row (description = the category header text, amount = its printed Extended Price); do NOT emit separate rows for the unpriced indented component/'Cycle' sublines.

Printed row sequence number of this line item. Labels: 'Line No.', 'Line #', 'Item' (when it is a 1,2,3... counter). If no explicit Line No. column exists, assign 1..N in printed top-to-bottom order. Do NOT confuse with item_code (the product SKU/part number) nor with quantity.

Vendor product code / SKU / part number for this line. Labels: 'Item Number', 'Item #', 'ITEM #', 'Item', 'MFG #' / 'Manufacturer Part Number'. Verbatim string incl leading zeros and letters (e.g. '2856676', '61DE01', 'KID21005779', 'IQ10183', '72036'). Do NOT confuse with line_no (the row sequence counter). Null if the line has no product code column (e.g. service-only invoices).

The product or service NAME for this line as printed in the Description column, including an inline manufacturer/part number if printed on the same item line (e.g. 'OFFICE DEHUMID ... MANUFACTURER # FFAP5033W1'). Tolerate OCR artifacts. EXCLUDE: (a) shipment/delivery/tracking metadata (Delivery#, Date, Carrier, No. of pkgs, Wt, Trk#, SHIPPED FROM); (b) Tax-Date / Shipment-Date / 'Cycle: Start.../End...' / service-period sublines; (c) customer-service annotations or 'Customer has indicated to invoice to...' / 'archived the PO' notes; (d) the item_code, quantity, unit_price, or amount columns. Normalize internal whitespace to single spaces. Do NOT confuse with item_code (the SKU/part-number column) or notes (free-text message block).

Quantity billed for this line. Labels: 'Quantity', 'QTY', 'Units', 'QTY SHIP'. May be fractional for hourly/weight-based services. Do NOT confuse with line_no or with unit_price.

Price per unit for this line as a number (strip currency symbols and thousands separators; e.g. '$2,340.00' -> 2340.00). Labels: 'Unit Price', 'Price', 'Rate', 'Adjusted Price'. Do NOT confuse with the line amount/extended price (that is the quantity-times-unit total). Null if no per-unit price is printed for the line.

Line-level discount as a percentage number (e.g. 10 for 10%). Do NOT confuse with tax_rate or with a 'Rush %' surcharge. Null if no discount percent is printed for the line.

Line-level tax rate as a percentage number (e.g. 8.25 for 8.25%). Do NOT confuse with discount_percent. Null if no per-line tax rate is printed.

The extended line amount (quantity times unit price, after any line discount, before invoice-level tax) as a number; strip currency symbols and separators. Labels: 'Amount', 'Total', 'EXT PRICE', 'Extended Price', 'TOTAL'. Do NOT confuse with unit_price (per-unit) or with the invoice subtotal/total.

Sum of all line item amounts before invoice-level tax, shipping, and discounts, as a number (strip currency symbols/separators). Labels: 'Subtotal', 'SUBTOTAL', 'INVOICE SUB TOTAL', 'Sub Total', 'Sales Amount'. Do NOT confuse with total_amount (the final amount due) or with a per-line amount. Located in the totals block.

Total invoice-level discount amount as a number. Labels: 'Discount', 'Total Discount'. Do NOT confuse with a per-line discount_percent or with negative account-summary credit rows. Null if no invoice-level discount line is printed.

Total tax amount on the invoice as a number. Labels: 'Sales Tax', 'Tax', 'TAX & BOTTLE DEPOSITS TOTAL'. Do NOT confuse with a per-line tax_rate (a percentage) or with the subtotal. Null if no tax total line is printed.

Shipping / freight charge total as a number. Labels: 'Shipping', 'Freight'. Do NOT confuse with the subtotal or tax_total. Null if no shipping line is printed.

The final total amount due on the invoice as a number (strip currency symbols/separators). Labels: 'Amount Due', 'Total', 'Invoice Total', 'Total Due', 'BALANCE DUE', 'Order Total'. Do NOT confuse with the subtotal, with a per-line amount, or with an 'Account Summary' balance-forward figure. Located in the totals block, usually the last/boldest figure.

Payment terms text as printed. Labels: 'Terms', 'Payment Terms', 'Payment'. Verbatim string (e.g. 'Net 30 Days', 'NET 45', 'NET30'). Do NOT confuse with the due_date (a date). Null if no terms text is printed.

Name of the bank for remittance (e.g. 'The Northern Trust', 'JPMorgan Chase'). Null if not printed.

The vendor's bank account number for payment, verbatim string. Do NOT confuse with the customer's account_number or the invoice/order numbers. Null if not printed.

The bank routing / ABA number for payment, verbatim string. Labels: 'Routing No', 'Bank Routing No'. Null if not printed.

Vendor bank/remittance details for electronic payment, if an ACH/wire/routing block is present. Null if no bank details are printed on the invoice.

The ISO 4217 currency code of the invoice amounts. Read from an explicit 'Currency' field or a printed code (e.g. 'USD'); otherwise infer from the currency symbol ('$' on a US vendor invoice -> 'USD'). Do NOT guess beyond what the symbol/locale supports.

Verbatim content of an EXPLICITLY LABELED free-text block on the invoice (label one of: Notes, Comments, Message, Remarks, Special Instructions, Important Messages). EXCLUDE payment/remittance boilerplate, marketing ('Go Green', paperless-billing promos), received/paid stamps, finance-charge terms, and vendor address-change notices. Null if the invoice has no such explicitly labeled notes block. Do NOT confuse with line_items.description or payment_terms. If a labeled block's content is entirely excluded categories (marketing/paperless/remittance boilerplate), return null.

A postal address parsed into components.

Street line(s) of the address as printed (incl suite/PO box). Null if not present.

City. Null if not present.

Town of Grafton, Mass.

Memorial Municipal Center 30 Providence Rd.

David Maxson, WCP: Dish 160R Upton St: August-September 2024 Review and analyze application, consult with staff, prepare report, participate in public hearing, consult on draft decision.

BILL TO Town of Grafton, Mass. / Memorial Municipal Center / 30 Providence Rd. / Grafton, MA 01519 (no country printed in Bill To)


LaborRow

Special Item Number (SIN) under which this labor category is awarded. Read it from the SIN heading DIRECTLY ABOVE the rate table that contains this labor row (e.g. 'SIN 54151S' on page 4, 'SIN 334512' on page 6, 'SINS 518210C, 541370GEO, 54151, 54151S, 611420, OLM' on page 8). This is NOT the awarded-SIN index on the 'Table of Awarded Special Item Numbers' (CUSTOMER INFORMATION section, item 1a) on page 2 or 3 — that page lists SINs like '54151S/54151SRC' or '54151 / 54151SRC' as a SIN+RecoveredContent pair, but the rate table itself shows only the primary SIN '54151S'. When BOTH forms appear in the document, use the form printed on the rate table heading (e.g. '54151S', NOT '54151S/54151SRC'). When the rate-table heading lists MULTIPLE SINs separated by commas (e.g. 'SINS 518210C, 541370GEO, 54151, 54151S, 611420, OLM'), capture the FULL comma-separated string verbatim (including spaces) as a single value — do not split it into multiple rows and do not drop the secondary SINs. Capture exactly as printed including any trailing letters (S, RC, GEO, C) and dashes ('132-51' style). Do NOT confuse with: the document's contract number (e.g. '47QTCA23D00DX', 'GS-35F-285DA') which identifies the whole pricelist not a single row; UEI/DUNS/CAGE codes; SCLS WD numbers (e.g. '2015-4281'); or the Item # in Leidos-style tables (the small sequence 1..N to the left of Labor Category). If the rate-table heading literally reads 'SIN ANCILLARY' (Leidos) or 'Ancillary Services' (a known group name, not a numeric SIN), capture that exact word ('Ancillary' or 'ANCILLARY' as printed). If no SIN heading exists on or above the row's rate table, return null.

SIN

Verbatim labor category / labor class title as printed in the GSA hourly-rate table (NOT the labor-category descriptions section). Examples: 'Information Technology Engineer III', 'Sr Energy Engineer', 'Executive - Senior', 'Comp Systems Architect Sr Stf', 'Administration Rep Asc'. May appear under labels: 'Labor Category', 'Contract Labor Category', 'Labor Class', 'LABOR CATEGORY', 'Position Title', 'Job Title'. Preserve EXACT casing, abbreviations, hyphens, spacing, and seniority suffixes ('Sr', 'Stf', 'Prin', 'I', 'II', 'III', '- Senior', '- Junior', '- Intermediate', 'Asc'). Do NOT expand abbreviations (do not change 'Sr' to 'Senior', 'Anlst' to 'Analyst', 'Engr' to 'Engineer'). Do NOT confuse with: the SCA Equivalent Code Title in the SCLS matrix (e.g. '14160 - Personal Computer Support Technician'), the SCLS labor category title, the labor-category description heading in the prose Labor Category Descriptions section (which may differ in casing or use the un-abbreviated form), or any SKU / training-course title. If the same title appears in both the rate table AND the descriptions section with different casing/dash style (en-dash vs hyphen), use the form printed in the RATE TABLE.

Labor Category Title

Minimum education / certification requirement for this labor category, captured VERBATIM as printed. Common forms: 'Bachelors Degree', 'BA or BS', 'BA/BS', 'BS', 'MS', 'PhD', 'HS', 'AA or AS', 'Bachelor of Science', 'High School Diploma'. RESOLUTION RULE — read in this priority order: (1) If the same rate-table row has a 'Minimum Education' / 'Min Edu' / 'Minimum Education/Certification Level' column, use ONLY the degree token(s) from the FIRST line of that cell (e.g. for the multi-line AECOM cell 'BA or BS\nMaster's degree and 3 years of relevant experience, or Bachelor's degree with over 5 years of relevant experience.' → return exactly 'BA or BS'). DO NOT capture the equivalency clause that follows. (2) If the rate table has NO education column, find the row in the document's 'Labor Category Descriptions' / 'Skill Category Descriptions' table whose Labor Class matches this row's labor_category_title verbatim and read its 'Minimum Education/Certification Level' cell, again using ONLY the first-line degree token. (3) If neither location exists for this category, return null. Do NOT normalize ('Bachelors Degree' must NOT become 'BA/BS'; 'BA or BS' must NOT become 'BA/BS'). Do NOT confuse with: the per-row Description column (the prose role responsibility text), the SCA Equivalent Code Title, or the substitution-equivalency table on later pages (which lists alternate experience-years per substituted degree). When the FIRST-LINE degree token contains a slash form like 'BA/BS' OR an 'or' form like 'BA or BS', preserve whichever form is actually printed.

Minimum Education

Minimum years of relevant experience required for this labor category, captured VERBATIM as a string (NOT cast to a number). Examples that MUST round-trip verbatim: '3', '3 years', '5', '1 year', '<5', '2-5', '0-2', '10', 'Extensive experience including 6 years of leadership'. Preserve any unit suffix ('year', 'years'), comparison operator ('<', '>=', '<=', '>'), range hyphen, and free-text qualifications. RESOLUTION RULE — same priority order as minimum_education: (1) If the rate-table row has a 'Minimum Experience' / 'Min Exp' / 'Minimum Years of Experience' column, use the cell's value verbatim. (2) Else, find the matching row in the document's Labor Category Descriptions / Skill Category Descriptions table and use its 'Minimum Years of Experience' value verbatim. (3) Else return null. Do NOT confuse with: minimum education (see minimum_education), substitution equivalency tables, or the role's prose Description text. Do NOT split a range string like '2-5' into two numbers — keep it as the printed string '2-5'.

Minimum Years of Experience

Work-location designation for this rate row. Allowed verbatim values: 'Government', 'Contractor', 'Both', 'Customer Facility', 'Contractor Facility', 'Government Site', 'Contractor Site'. Some GSA MAS pricelists publish TWO rate rows for the same labor category — one at Government site and one at Contractor site — at different prices. In that case capture each row separately and set this field to distinguish them. If the document publishes a single rate for both, or annotates the entire table with a footer like '*Contractor (Office) or Customer Site (Field)' meaning the same rate applies to both sites, return 'Both'. If the document is silent about site entirely (no column, no header annotation), return null. Do NOT confuse with: the contractor's address city/state, the Point of Production, or the Geographic Coverage clause (worldwide/CONUS) — those are pricelist-wide, not per-row. Location hint: a column in the rate table labeled 'Site' / 'Location' / 'Govt/Contr', OR an asterisked footer below the rate-table header.

Site

Hourly rate (inclusive of IFF / fully-burdened) for the FIRST contract year column in the rate table, as a number with cents preserved (e.g. 89.5, 221.88, 90.83). Drop the '$' sign and any '(w/IFF)' annotation. The first contract-year column is whichever column appears LEFT-MOST after the Labor Category column — it may be labeled 'Year 1', 'BASE YR 1', '2021', or with a date range like '09/14/2023 - 09/13/2024' or '4/22/2021 to 4/21/22'. Use the column ORDER on the page (left-to-right), NOT calendar year, to assign year_1..year_5. May appear under labels: 'Year 1', 'YR 1', 'BASE YR 1', 'Base Year', or a date-range header. SOURCE-OF-TRUTH RULE: when the SAME labor category has rate values printed in TWO locations of the same pricelist — (a) a consolidated 'LCATs & Rates' / 'Labor Category Rates' / 'GSA Awarded Pricing' summary table that lists EVERY LCAT for the SIN in a single block, AND (b) a small 2-row mini-table ('Unit of Issue / Per Hour Price IFF Included' style) embedded inside the LCAT's own description section elsewhere in the document — ALWAYS use the value from the consolidated summary table (a). The summary table is the awarded GSA price; the per-LCAT mini-table inside a description block can have stale or pre-modification numbers. If only the per-LCAT mini-table exists (no consolidated summary table for this SIN), use it. Do NOT confuse with: the contractor's commercial list price (some pricelists show a separate 'Commercial Price' column — capture only the GSA awarded rate), the SCLS WD-based rate, or any price under a non-IT SIN you are not extracting. Return null only when this column genuinely does not exist for this row (e.g. the labor category was added in a later option year and the early-year cell is blank).

Year 1 Rate

Hourly rate for the SECOND contract-year column (second from left after Labor Category), same conventions as year_1_rate. May appear under: 'Year 2', 'YR 2', 'BASE YR 2', '2022', '09/14/2024 - 09/13/2025', '4/22/2022 to 4/21/23'. Position-based, NOT calendar-year based.

Year 2 Rate

Hourly rate for the THIRD contract-year column (third from left after Labor Category), same conventions as year_1_rate. May appear under: 'Year 3', 'YR 3', 'BASE YR 3', '2023', or a date-range header. Position-based, NOT calendar-year based.

Year 3 Rate

Hourly rate for the FOURTH contract-year column, same conventions as year_1_rate. Position-based, NOT calendar-year based.

Year 4 Rate

Hourly rate for the FIFTH contract-year column (right-most). Same conventions as year_1_rate. If the table only has fewer than 5 year columns for this row, leave year_5_rate (and any missing intermediate years) null. Position-based, NOT calendar-year based.

Year 5 Rate

GsaMasItLaborPricelist

GSA contract number that identifies the entire MAS / Schedule pricelist. Examples: '47QTCA23D00DX', 'GS-35F-285DA', '47QSWA19D006S'. May appear under labels: 'Contract Number', 'Contract No.', 'Contract #', 'GSA Contract Number', 'GS Contract'. Located on the cover page or page header. Capture verbatim including all dashes and letters. Do NOT confuse with: a SIN code (e.g. '54151S'), UEI (e.g. 'KJ2QKVQM1VE7'), SAM CAGE code, contract modification number ('PS-0002', 'Mod# PA-0026'), or wage-determination number ('2015-4281').

Contract Number

Legal name of the contractor / vendor whose pricelist this is, verbatim as printed on the cover page. Examples: 'Spahr Solutions Group, LLC', 'AECOM Technical Services, Inc.', 'Leidos, Inc.', 'LEIDOS, INC.'. May appear under: 'Contractor', 'Vendor', 'Company Name', or simply as the centered top-of-cover-page name. Preserve casing and punctuation as printed. Do NOT confuse with: the schedule title ('Multiple Award Schedule', 'Federal Supply Group: Information Technology'), the contract administrator's personal name, or any subcontractor name.

Contractor Name

The GSA schedule / supply-group title under which this pricelist is published. Typical values: 'Multiple Award Schedule', 'GSA Multiple Award Schedule (MAS)', 'Federal Supply Group: Information Technology', 'Authorized Federal Supply Schedule FSS Price List'. May appear under labels: 'Schedule Title', 'Schedule', 'Federal Supply Group'. Located on the cover page. Capture verbatim. Do NOT confuse with: the SIN description (e.g. 'Information Technology Professional Services'), the contract number, or the contractor name. If multiple banner lines are equally plausible, prefer the one explicitly labeled 'Schedule Title:' — if no such label exists, prefer 'Multiple Award Schedule' if printed, otherwise the most specific title on the cover.

Schedule Title

Each entry is ONE row from a GSA awarded hourly-rate table — i.e. one (SIN, labor category, site) combination with its 5-year rate columns. A row is identified in the source by appearing as a data row INSIDE a GSA hourly-rate table (a table that has 'Labor Category' / 'Contract Labor Category' / 'LABOR CATEGORY' / 'Labor Class' in its left-most data column AND at least one column whose header is a year, 'Year N', 'BASE YR N', or a contract-period date range). Include rows from EVERY rate-table block in the document, across ALL SINs and ALL section banners (e.g. include both AECOM's ESPC SIN 334512 table AND AECOM's IT Services SINs 518210C/541370GEO/54151/54151S/611420/OLM table; include both Leidos's SIN 54151S table (items 1..93) AND Leidos's SIN ANCILLARY table (items 94..106)). COMPLETENESS IS MANDATORY: if a rate table has 93 numbered rows you MUST return 93 labor_categories entries from that table — do not stop after the first N. Do NOT include: rows from the Labor Category Descriptions / Skill Category Descriptions section (those are prose definitions, NOT rate rows — their data goes into minimum_education / minimum_years_experience of the matching rate row); rows from the Experience & Degree Substitution Equivalencies table (those show substitution math, not awarded rates); rows from the SCLS / Service Contract Labor Standards matrix (those map GSA labels to SCA Equivalent Codes / WD numbers, they do not carry awarded GSA rates); rows from product/software/SaaS tables (those have SKU / Plan / Price-per-License columns, not Labor Category columns — e.g. PlanEngage PE001-ENV-HS-3); rows from training-course catalogs (course-code column); and pricelist-wide header/footer text. If a single labor category appears in TWO separate rate tables (e.g. once under Government Site and once under Contractor Site, or once at Year 1-5 and again at Option Years 6-10), capture each as a SEPARATE entry with the appropriate site or year columns. Order the list in document order (top-to-bottom, left-to-right within a page).

Labor Categories

Long-doc list of every awarded GSA labor-category rate row. Identity is composite [sin, labor_category_title, site] because (a) the same title may legitimately repeat under different SINs in one pricelist, (b) labor_category_title alone is not unique across SINs, and (c) many GSA pricelists publish split Government-site / Contractor-site rate columns for the same SIN+title — site is required to disambiguate.

Labor Categories


LaborRow

SIN

Labor Category Title

Minimum Education

Minimum Years of Experience

Site

Year 1 Rate

Year 2 Rate

Year 3 Rate

Year 4 Rate

Year 5 Rate

GsaMasItLaborPricelist

Contract Number

Contractor Name

Schedule Title

Labor Categories

Labor Categories


Which fixed row of the Item 15 'WELL COMPLETION' grid this record describes. The grid (top-center of page 1, columns Size / Depth set / TOC) has one fixed labeled row per casing/tubing string. The captured rows are 'Surface Casing', 'Long String Casing', and 'Tubing or Hanging String' (the last is printed simply as 'Tubing' on the paper H-5); not every filing fills every row, so a given document may have two or three rows. Set this to the row label verbatim as the render uses it ('Surface Casing', 'Long String Casing', or 'Tubing or Hanging String') so the row can be identified. This is the row identity (the printed left-hand label), NOT a value the operator hand-enters. Do NOT confuse the row label with the three column cells (Casing/Tubing Size, Depth Set (ft.), Top Of Cement) of that same row, and do NOT confuse adjacent rows with one another.

String Type

Value in the 'Size' column (Item 15 'WELL COMPLETION' grid, page 1) for this string row: the outer diameter of the casing or tubing (e.g. '5 1/2', '2 7/8'). Extract the typed/handwritten value verbatim as printed including any fraction; null if this cell is blank. Do NOT confuse with the same row's 'Depth Set (ft.)' or 'Top Of Cement' columns, nor with Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer'.

Casing Tubing Size

Value in the 'Depth set' column (printed 'Depth Set (ft.)', Item 15 'WELL COMPLETION' grid, page 1) for this string row: the depth in feet at which this casing/tubing string is set. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Casing/Tubing Size' or 'Top Of Cement' columns, with Item 16b 'Depth Packer', or with the injection-interval Top/Bottom depths in Item 18.

Depth Set

Value in the 'TOC' column (printed 'Top Of Cement', Item 15 'WELL COMPLETION' grid, page 1) for this string row: the depth to which cement rises behind this string. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Depth Set (ft.)' column (where the string is set, a different depth) or with any Item 18 injection-interval depth.

Top Of Cement

WellCompletionCasingString

Which fixed injection-interval block this record describes (Item 18 region, page 2 of the render). The render exposes four labeled interval blocks, each with a Top and a Bottom depth: 'Permitted Injection' (Item 18a, the interval the permit authorizes), 'Completed Injection' (Item 18b, the interval actually completed/perforated), 'Authorized Liquid Injection', and 'Authorized Gas Injection'. Set this to the block label verbatim ('Permitted Injection', 'Completed Injection', 'Authorized Liquid Injection', or 'Authorized Gas Injection') so the row can be identified. This is the row identity (the printed block heading), NOT an operator entry. Do NOT confuse 'Permitted Injection' (what the permit allows) with 'Completed Injection' (what was actually completed), and do NOT confuse either with the 'Authorized Liquid Injection' / 'Authorized Gas Injection' blocks.

Interval Type

The 'Top:' depth value for this injection-interval block (Item 18 region, page 2): the shallower (upper) depth of the interval in feet. Extract verbatim as printed; null if blank. Do NOT confuse with the same block's 'Bottom:' value (the deeper depth) directly to its right, with the Top value of a different interval block (Permitted vs Completed vs Authorized Liquid vs Authorized Gas), or with the Item 15 casing 'Top Of Cement' depth.

Top

The 'Bottom:' depth value for this injection-interval block (Item 18 region, page 2): the deeper (lower) depth of the interval in feet. Extract verbatim as printed; null if blank. Do NOT confuse with the same block's 'Top:' value (the shallower depth) to its left, or with the Bottom value of a different interval block (Permitted vs Completed vs Authorized Liquid vs Authorized Gas).

Bottom

InjectionInterval

Which time row of the Item 19 'TEST PRESSURE (PSIG)' grid this record describes (page 2 of the render). The grid has one labeled row per elapsed-time reading, printed at the left of each row, starting with 'Initial' and then 15-minute increments for as long as the operator ran the test: 'After 15 minutes' (printed '15 min.'), 'After 30 minutes' (printed '30 min.'), and — on filings with a longer test — 'After 45 minutes', 'After 60 minutes', 'After 75 minutes', 'After 90 minutes', etc. The row count is NOT fixed at 3; capture every row actually printed on the grid, however many there are. Set this to the time-point label verbatim so the row can be identified. This is the row identity (the printed time label), NOT a pressure value. Do NOT confuse the time label with the three pressure columns of that same row (Tubing or Hanging String, Casing, Surface Casing), and do NOT confuse one time point with another.

Time Point

Value in the 'Tubing or Hanging String' column (printed 'TUBING', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the tubing/hanging-string pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Casing' or 'Surface Casing' pressure columns, nor with the pressure recorded at a different time point (Initial vs After 15 minutes vs After 30 minutes), nor with Item 17 'Authorized Injection Pressure (PSIG)'.

Tubing Or Hanging String

Value in the 'Casing' column (printed 'CASING', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the casing/annulus pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Tubing or Hanging String' or 'Surface Casing' pressure columns, nor with the casing pressure at a different time point (Initial vs After 15 minutes vs After 30 minutes).

Casing

Value in the 'Surface Casing' column (printed 'SURFACE CSG', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the surface-casing pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Tubing or Hanging String' or 'Casing' pressure columns, nor with the surface-casing pressure at a different time point (Initial vs After 15 minutes vs After 30 minutes), nor with the Item 15 'Surface Casing' completion row.

Surface Casing

TestPressureReading

The 'UIC CONTROL NO.' value in the 'FOR RRC USE ONLY' box at the top-right of page 1: the Underground Injection Control number assigned to the well. Extract verbatim as a string, preserving any leading zeros and exact casing; null if blank. Do NOT confuse with 'Filing No.' (the submission/transaction number) or with Item 2 'RRC Operator No.', Item 8 'API No.', or Item 10a 'Oil Lease No.'.

UIC No

The 'Filing No.' value (online-filing transaction/submission number) shown in the RRC-use header area of page 1. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'UIC No.' (the UIC control number for the well), 'Version' (the filing version), or 'Submittal Date'.

Filing No

The 'Submittal Date' shown in the RRC-use header area of page 1: the date this report was submitted/filed online. Extract verbatim as printed (preserve the printed date format, e.g. MM/DD/YYYY); null if blank. Do NOT confuse with Item 13 'Date of Test' (when the pressure test was performed), 'For a Retest, Date of Previous Test', or the certificate 'Date' near the signature.

Submittal Date

The 'Version' value shown in the RRC-use header area of page 1: the version/revision number of this online filing. Extract verbatim as printed; null if blank. Do NOT confuse with 'Filing No.', 'UIC No.', or the printed form revision stamp ('Form H-5 11/04/2020') at the top-right of the page.

Version

The 'Evaluation' value shown in the RRC-use status header of page 1: the RRC evaluation date assigned to this filing (an administrative date stamp in MM/DD/YYYY form, e.g. '06/01/2023', not operator-entered). Extract verbatim as printed; null if blank. Do NOT confuse with 'Test Status' (the test-level status), Item 25 'Well Status', or Item 22 'Test Witnessed by RRC'.

Evaluation

The 'Test Status' value shown in the RRC-use status header of page 1: the administrative status of the pressure test for this filing. Extract verbatim as printed; null if blank. Do NOT confuse with 'Evaluation' (the overall filing evaluation), Item 25 'Well Status' (Active / Temporarily Abandoned / Other), or the Item 12 'Reason for' test selection.

Test Status

The 'Preparer' name under the 'PREPARER INFORMATION' section of page 1: the name of the person who prepared this online filing. Extract verbatim as printed (preserve casing); null if blank. Do NOT confuse with Item 1 'Operator's Name' (the operating company), with the certificate 'Name of Person (type or print)', or with Item 22 'Name of RRC Representative'.

Preparer

The 'Phone' value under the 'PREPARER INFORMATION' section of page 1: the preparer's telephone number. Extract verbatim as a string, preserving dashes, parentheses, and any leading digits; null if blank. Do NOT confuse with the preparer's 'E-mail' beside it, or with the certificate 'Telephone No.' near the signature block.

Preparer Phone

The 'E-mail' value under the 'PREPARER INFORMATION' section of page 1: the preparer's email address. Extract verbatim as printed (preserve exact casing and the full address); null if blank. Do NOT confuse with the preparer's 'Phone' beside it or with the operator address fields in the 'OPERATOR INFORMATION' section.

Preparer Email

Item 1 'Operator's Name' (top-left of page 1, under 'OPERATOR INFORMATION'): the name of the operator (company or individual) responsible for the well. Extract verbatim as printed (preserve casing and any '&', 'LLC', 'INC' suffixes); null if blank. Do NOT confuse with Item 2 'RRC Operator No.' (the numeric operator code), the 'Preparer' name, the certificate 'Name of Person', or Item 9 'Lease Name'.

Operator Name

Item 2 'RRC Operator No.' (top-right of page 1, under 'OPERATOR INFORMATION'): the operator's RRC P-5 organization number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with Item 1 'Operator's Name' (the text name), Item 4 'RRC District No.', Item 8 'API No.', or Item 10a 'Oil Lease No.'.

Operator No

Item 3 'Address' first line ('Address Line 1' under 'OPERATOR INFORMATION', page 1): the first line of the operator's mailing address (typically street/PO box). Extract verbatim as printed; null if blank. Do NOT confuse with 'Address Line 2' below it, with the City / State / Postal Code fields, or with the preparer contact fields.

Operator Address Line 1

Item 3 'City' (operator mailing-address city under 'OPERATOR INFORMATION', page 1). Extract verbatim as printed; null if blank. Do NOT confuse with the operator 'State' or 'Postal Code' fields beside it, with Item 5 'County' (the well's county), or with the address line fields.

Operator City

Item 3 'Address' second line ('Address Line 2' under 'OPERATOR INFORMATION', page 1): the second/overflow line of the operator's mailing address (suite, unit, etc.). Extract verbatim as printed; null if blank. Do NOT confuse with 'Address Line 1' above it or with the City / State / Postal Code fields.

Operator Address Line 2

Item 3 'State' (operator mailing-address state under 'OPERATOR INFORMATION', page 1). Extract verbatim as printed (usually a two-letter abbreviation, e.g. 'TX'); null if blank. Do NOT confuse with the operator 'City' or 'Postal Code' fields, or with Item 5 'County'.

Operator State

Item 3 'Postal Code' (operator mailing-address ZIP/postal code under 'OPERATOR INFORMATION', page 1). Extract verbatim as a string, preserving leading zeros and any ZIP+4 hyphen; null if blank. Do NOT confuse with the operator 'City' or 'State' fields, with Item 4 'RRC District No.', or with any well-identifier number.

Operator Postal Code

Item 8 'API No.' (under the 'LEASE AND WELL' section, page 1): the American Petroleum Institute well number. Extract verbatim as a string, preserving dashes and leading zeros exactly as printed (Texas API numbers are typically '42-XXX-XXXXX'); null if blank. Do NOT confuse with Item 2 'RRC Operator No.', Item 10a 'Oil Lease No.', Item 11 'Well No.', or the 'UIC No.'.

API

The 'Injection Well' identifier under the 'LEASE AND WELL' section of the render (page 1): the injection/disposal well designation tied to this UIC permit. Extract verbatim as printed; null if blank. Do NOT confuse with Item 11 'Well No.' (the well number on the lease), Item 8 'API No.', or the 'UIC No.'.

Injection Well

Item 4 'RRC District No.' (under the 'LEASE AND WELL' section, page 1): the Railroad Commission district number for the well's location (e.g. '7B', '08', '6'). Extract verbatim as a string, preserving any leading zero or letter suffix; null if blank. Do NOT confuse with Item 7 'Field No.', Item 2 'RRC Operator No.', or Item 5 'County'.

District

Item 10a 'Oil Lease No.' / 10b 'Gas ID No.' captured under the 'LEASE AND WELL' section as 'Lease (No.)' (page 1): the numeric RRC lease/gas identification number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Lease (Name)' (Item 9, the text lease name) which is a SEPARATE field, nor with Item 7 'Field No.', Item 8 'API No.', or Item 11 'Well No.'.

Lease No

Item 11 'Well No.' (under the 'LEASE AND WELL' section, page 1): the well number on the lease. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Lease (No.)' (Item 10a/10b, the lease number), Item 8 'API No.', or the 'Injection Well' designation.

Well No

Item 9 'Lease Name' captured under the 'LEASE AND WELL' section as 'Lease (Name)' (page 1): the text name of the lease. Extract verbatim as printed (preserve casing); null if blank. Do NOT confuse with 'Lease (No.)' (Item 10a/10b, the numeric lease number) which is a SEPARATE field, nor with Item 6 'Field Name' or Item 1 'Operator's Name'.

Lease Name

Item 7 'Field No.' (under the 'LEASE AND WELL' section, page 1): the numeric RRC field identification number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Field Name' (Item 6, the text field name) beside it, Item 4 'RRC District No.', or 'Lease (No.)'.

Field Number

Item 6 'Field Name' (under the 'LEASE AND WELL' section, page 1; printed 'exactly as shown on proration schedule'): the RRC field name. Extract verbatim as printed; null if blank. Do NOT confuse with Item 7 'Field No.' (the numeric field code), Item 9 'Lease (Name)', or Item 5 'County'.

Field Name

Item 5 'County' (under the 'LEASE AND WELL' section, page 1): the Texas county in which the well is located. Extract verbatim as printed; null if blank. Do NOT confuse with Item 4 'RRC District No.' (a district code), the operator-address 'City'/'State', or Item 6 'Field Name'.

County

Item 12 'Reason for Test' under the 'TEST REPORT INFORMATION' section (page 1): the selected reason for this test. On the paper form the choices are 'Initial Test Prior to Injection', 'After Workover', 'Annual Test Required By Permit', 'Five-Year Test Required By Rule', and 'Other (Specify)'. Capture the selected reason verbatim (including any 'Other' specification text); null if blank. Do NOT confuse with Item 14 'Retest?', 'Test Status', or Item 13 'Date of Test'.

Reason For

Item 13 'Date of Test' (printed 'Date Test Performed' under the 'TEST REPORT INFORMATION' section, page 1): the date the pressure test was performed. Extract verbatim as printed (preserve the printed date format, e.g. MM/DD/YYYY); null if blank. Do NOT confuse with 'Submittal Date' (when the filing was submitted), 'For a Retest, Date of Previous Test', or the certificate 'Date'.

Date Test Performed

Item 14 'Retest?' under the 'TEST REPORT INFORMATION' section (page 1): the Yes/No answer indicating whether this report documents a retest (the paper form prints 'YES' and 'NO' boxes; 'If YES, see Instruction No. 5'). Capture the selected answer verbatim as it appears on the render (e.g. 'YES' or 'NO'); null if blank. Do NOT confuse with 'For a Retest, Date of Previous Test' (the prior-test date) or 'Remedial Actions Prior to' (the remedial-action narrative).

Retest

The 'For a Retest, Date of Previous Test' field under the 'TEST REPORT INFORMATION' section (page 1): the date of the last (unsuccessful) test, filled only when Item 14 'Retest?' is YES. Extract verbatim as printed (preserve the date format); null if blank. Do NOT confuse with Item 13 'Date of Test' (the current test date), 'Submittal Date', or the 'Retest' Yes/No answer.

Retest Date Of Previous Test

The 'Remedial Actions Prior to' narrative under the 'TEST REPORT INFORMATION' section (page 1): free-text describing remedial actions taken to prepare the well for a retest (casing repair, tubing/packer replacement, etc., per Instruction 5). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 24 'Operator Comments On Test' or with the 'For a Retest, Date of Previous Test' field.

Remedial Actions Prior To

Item 15 'WELL COMPLETION' grid (top-center of page 1). The grid has three columns - Size, Depth set, TOC (Top Of Cement) - and one fixed labeled row per casing/tubing string. The possible rows are 'Surface Casing', 'Long String Casing', and 'Tubing or Hanging String'; a filing may fill two or three of them. Return one WellCompletionCasingString object per row, with string_type set to that row's label and the three cell values (casing_tubing_size, depth_set, top_of_cement) filled from that row. Emit a row object only for rows that have at least one filled cell; null (or an empty list) when the whole grid is blank. Preserve all cell values verbatim. Do NOT merge rows, and do NOT pull Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer' into this grid.

Well Completion Casing

Item 16a 'Packer Make and Model' (printed 'Packer Make/Model' under 'WELL COMPLETION', page 1): the make and model of the injection packer. Extract verbatim as printed; null if blank. Do NOT confuse with Item 16b 'Depth Set' (printed 'Depth Packer', the packer set depth) beside it, with the Item 15 grid's 'Casing/Tubing Size' column, or with the 'No Packer / Injection Down Casing' checkbox.

Packer Make Model

Item 16b 'Depth Set' (printed 'Depth Packer' under 'WELL COMPLETION', page 1): the depth in feet at which the packer is set. Extract verbatim as printed; null if blank. Do NOT confuse with Item 16a 'Packer Make/Model' (the make/model text) beside it, with the Item 15 grid 'Depth Set (ft.)' columns, or with the 'No Packer / Injection Down Casing' checkbox.

Depth Packer

The 'No Packer / Injection Down Casing' checkbox in the well-completion area of page 1: marked when the well has no packer and injects down the casing. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the text fields Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer', nor with the page-2 checkboxes 'No Completed Intervals', 'Well did not pressure up', or 'Digital Recorder readings are attached'.

No Packer Injection Down Casing

Item 18 injection-interval region (page 2 of the render). Four fixed labeled interval blocks, each with a Top and Bottom depth (in feet): 'Permitted Injection' (Item 18a, the interval the permit authorizes), 'Completed Injection' (Item 18b, the interval actually completed), 'Authorized Liquid Injection', and 'Authorized Gas Injection'. Return one InjectionInterval object per block, with interval_type set to the block label and top/bottom filled from that block. Emit a block only when it has at least one filled cell; null (or an empty list) when no intervals are filled. Preserve depths verbatim. Do NOT merge the four blocks, do NOT confuse 'Permitted' (allowed) with 'Completed' (actual), and do NOT pull the Item 15 casing depths or Item 17 'Authorized Injection Pressure' into this grid.

Injection Intervals

The 'No Completed Intervals' checkbox in the Item 18 injection-interval region (page 2): marked when there are no completed injection intervals to report. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Completed Injection' interval Top/Bottom values, with the 'No Packer / Injection Down Casing' checkbox (page 1), or with the page-2 'Well did not pressure up' checkbox.

No Completed Intervals

Item 25 'Well Status' on the render (page 2): the well's status. On the paper form the choices are 'Active', 'Temporarily Abandoned', and 'Other (Specify)'. Capture the selected status verbatim (including any 'Other' specification text); null if blank. Do NOT confuse with 'Test Status' or 'Evaluation' in the header, or with Item 22 'Test Witnessed by RRC'.

Well Status

The 'Well did not pressure up. No test pressures to report.' checkbox in the test-pressures area of page 2: marked when the well would not hold/pressure up so no Item 19 pressures are reported. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Digital Recorder readings are attached to filing' checkbox beside it, the 'No Completed Intervals' checkbox, or any Item 19 pressure cell.

Well Did Not Pressure Up

The 'Digital Recorder readings are attached to filing.' checkbox in the test-pressures area of page 2: marked when digital pressure-recorder readings are attached to this filing. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Well did not pressure up' checkbox beside it or with the Item 19 manually-entered pressure cells.

Digital Recorder Attached

Item 19 'TEST PRESSURE (PSIG)' grid (page 2 of the render; see Instructions 4(c) and 4(d)). The grid has three pressure columns - Tubing or Hanging String (printed 'TUBING'), Casing (printed 'CASING'), Surface Casing (printed 'SURFACE CSG') - and one labeled time row per elapsed-time reading, starting with 'Initial' and continuing in 15-minute increments for as long as the operator ran the test (e.g. 'After 15 minutes', 'After 30 minutes', 'After 45 minutes', 'After 60 minutes', etc.) -- the row count is NOT fixed at 3; some filings print more rows. Return one TestPressureReading object per time row actually printed, with time_point set to that row's label and the three pressure values filled from that row. Emit a row only when it has at least one filled cell; null (or an empty list) when no pressures are reported. Preserve all values verbatim. Do NOT merge the time rows, and do NOT confuse these readings with Item 17 'Authorized Injection Pressure'.

Test Pressures

Item 22 'Test Witnessed by RRC?' under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2): the Yes/No answer indicating whether an RRC representative witnessed the test (the paper form prints 'YES' and 'NO' boxes; 'If NO, see Instruction 4(a)'). Capture the selected answer verbatim (e.g. 'YES' or 'NO'); null if blank. Do NOT confuse with 'Name of RRC' (the representative's name) which is a separate field, or with Item 23 'Were other tests/surveys performed'.

Test Witnessed By RRC

The 'Name of RRC' field (printed 'If YES. Name of RRC Representative') under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2): the name of the Railroad Commission representative who witnessed the test, filled when Item 22 is YES. Extract verbatim as printed; null if blank. Do NOT confuse with the Item 22 'Test Witnessed by RRC' Yes/No answer, Item 1 'Operator's Name', or the certificate 'Name of Person'.

Name Of RRC

Item 20 'Characteristics of Injection Fluid' (printed 'Injection Fluid Description' under 'TEST PRESSURES AND OTHER INFORMATION', page 2; see Instruction 4(e)): free-text describing the injection fluid (e.g. temperature, specific gravity). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 21 'Annulus Fluid Description' (the fluid in the annulus) beside it, or with Item 24 'Operator Comments On Test'.

Injection Fluid Description

Item 21 'Characteristics of Annulus Fluid' (printed 'Annulus Fluid Description' under 'TEST PRESSURES AND OTHER INFORMATION', page 2; see Instructions 4(e) and 4(f)): free-text describing the fluid in the annulus (or an explanation if the annulus is not loaded with fluid). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 20 'Injection Fluid Description' (the injected fluid) beside it, or with Item 24 'Operator Comments On Test'.

Annulus Fluid Description

Item 23 'Were other tests/surveys performed at this time?' captured as 'Other Tests/Surveys Performed on this Well' under 'TEST PRESSURES AND OTHER INFORMATION' (page 2): the Yes/No answer and, 'If YES. List:', the list of other tests/surveys. Capture the answer and any listed tests verbatim; null if blank. Do NOT confuse with Item 22 'Test Witnessed by RRC' or with Item 24 'Operator Comments On Test'.

Other Tests Surveys Performed

Item 24 'Operator Comments On Test' under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2; 'attach separate sheet if necessary'): free-text operator comments on the test, including any retest remedial-action explanation per Instruction 5. Extract the full text verbatim as printed; null if blank. Do NOT confuse with 'Remedial Actions Prior to' (page 1), Item 20/21 fluid descriptions, or Item 23 'Other Tests/Surveys Performed'.

Operator Comments On Test

RRCH5Extraction


Which fixed row of the Item 15 'WELL COMPLETION' grid this record describes. The grid (top-center of page 1, columns Size / Depth set / TOC) has one fixed labeled row per casing/tubing string. The captured rows are 'Surface Casing', 'Long String Casing', and 'Tubing or Hanging String' (the last is printed simply as 'Tubing' on the paper H-5); not every filing fills every row, so a given document may have two or three rows. Set this to the row label verbatim as the render uses it ('Surface Casing', 'Long String Casing', or 'Tubing or Hanging String') so the row can be identified. This is the row identity (the printed left-hand label), NOT a value the operator hand-enters. Do NOT confuse the row label with the three column cells (Casing/Tubing Size, Depth Set (ft.), Top Of Cement) of that same row, and do NOT confuse adjacent rows with one another.

String Type

Value in the 'Size' column (Item 15 'WELL COMPLETION' grid, page 1) for this string row: the outer diameter of the casing or tubing (e.g. '5 1/2', '2 7/8'). Extract the typed/handwritten value verbatim as printed including any fraction; null if this cell is blank. Do NOT confuse with the same row's 'Depth Set (ft.)' or 'Top Of Cement' columns, nor with Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer'.

Casing Tubing Size

Value in the 'Depth set' column (printed 'Depth Set (ft.)', Item 15 'WELL COMPLETION' grid, page 1) for this string row: the depth in feet at which this casing/tubing string is set. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Casing/Tubing Size' or 'Top Of Cement' columns, with Item 16b 'Depth Packer', or with the injection-interval Top/Bottom depths in Item 18.

Depth Set

Value in the 'TOC' column (printed 'Top Of Cement', Item 15 'WELL COMPLETION' grid, page 1) for this string row: the depth to which cement rises behind this string. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Depth Set (ft.)' column (where the string is set, a different depth) or with any Item 18 injection-interval depth.

Top Of Cement

WellCompletionCasingString

Which fixed injection-interval block this record describes (Item 18 region, page 2 of the render). The render exposes four labeled interval blocks, each with a Top and a Bottom depth: 'Permitted Injection' (Item 18a, the interval the permit authorizes), 'Completed Injection' (Item 18b, the interval actually completed/perforated), 'Authorized Liquid Injection', and 'Authorized Gas Injection'. Set this to the block label verbatim ('Permitted Injection', 'Completed Injection', 'Authorized Liquid Injection', or 'Authorized Gas Injection') so the row can be identified. This is the row identity (the printed block heading), NOT an operator entry. Do NOT confuse 'Permitted Injection' (what the permit allows) with 'Completed Injection' (what was actually completed), and do NOT confuse either with the 'Authorized Liquid Injection' / 'Authorized Gas Injection' blocks.

Interval Type

The 'Top:' depth value for this injection-interval block (Item 18 region, page 2): the shallower (upper) depth of the interval in feet. Extract verbatim as printed; null if blank. Do NOT confuse with the same block's 'Bottom:' value (the deeper depth) directly to its right, with the Top value of a different interval block (Permitted vs Completed vs Authorized Liquid vs Authorized Gas), or with the Item 15 casing 'Top Of Cement' depth.

Top

The 'Bottom:' depth value for this injection-interval block (Item 18 region, page 2): the deeper (lower) depth of the interval in feet. Extract verbatim as printed; null if blank. Do NOT confuse with the same block's 'Top:' value (the shallower depth) to its left, or with the Bottom value of a different interval block (Permitted vs Completed vs Authorized Liquid vs Authorized Gas).

Bottom

InjectionInterval

Which time row of the Item 19 'TEST PRESSURE (PSIG)' grid this record describes (page 2 of the render). The grid has one labeled row per elapsed-time reading, printed at the left of each row, starting with 'Initial' and then 15-minute increments for as long as the operator ran the test: 'After 15 minutes' (printed '15 min.'), 'After 30 minutes' (printed '30 min.'), and — on filings with a longer test — 'After 45 minutes', 'After 60 minutes', 'After 75 minutes', 'After 90 minutes', etc. The row count is NOT fixed at 3; capture every row actually printed on the grid, however many there are. Set this to the time-point label verbatim so the row can be identified. This is the row identity (the printed time label), NOT a pressure value. Do NOT confuse the time label with the three pressure columns of that same row (Tubing or Hanging String, Casing, Surface Casing), and do NOT confuse one time point with another.

Time Point

Value in the 'Tubing or Hanging String' column (printed 'TUBING', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the tubing/hanging-string pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Casing' or 'Surface Casing' pressure columns, nor with the pressure recorded at a different time point (Initial vs After 15 minutes vs After 30 minutes), nor with Item 17 'Authorized Injection Pressure (PSIG)'.

Tubing Or Hanging String

Value in the 'Casing' column (printed 'CASING', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the casing/annulus pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Tubing or Hanging String' or 'Surface Casing' pressure columns, nor with the casing pressure at a different time point (Initial vs After 15 minutes vs After 30 minutes).

Casing

Value in the 'Surface Casing' column (printed 'SURFACE CSG', Item 19 'TEST PRESSURE (PSIG)' grid, page 2) for this time row: the surface-casing pressure in psig recorded at this time point. Extract verbatim as printed; null if this cell is blank. Do NOT confuse with the same row's 'Tubing or Hanging String' or 'Casing' pressure columns, nor with the surface-casing pressure at a different time point (Initial vs After 15 minutes vs After 30 minutes), nor with the Item 15 'Surface Casing' completion row.

Surface Casing

TestPressureReading

The 'UIC CONTROL NO.' value in the 'FOR RRC USE ONLY' box at the top-right of page 1: the Underground Injection Control number assigned to the well. Extract verbatim as a string, preserving any leading zeros and exact casing; null if blank. Do NOT confuse with 'Filing No.' (the submission/transaction number) or with Item 2 'RRC Operator No.', Item 8 'API No.', or Item 10a 'Oil Lease No.'.

UIC No

The 'Filing No.' value (online-filing transaction/submission number) shown in the RRC-use header area of page 1. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'UIC No.' (the UIC control number for the well), 'Version' (the filing version), or 'Submittal Date'.

Filing No

The 'Submittal Date' shown in the RRC-use header area of page 1: the date this report was submitted/filed online. Extract verbatim as printed (preserve the printed date format, e.g. MM/DD/YYYY); null if blank. Do NOT confuse with Item 13 'Date of Test' (when the pressure test was performed), 'For a Retest, Date of Previous Test', or the certificate 'Date' near the signature.

Submittal Date

The 'Version' value shown in the RRC-use header area of page 1: the version/revision number of this online filing. Extract verbatim as printed; null if blank. Do NOT confuse with 'Filing No.', 'UIC No.', or the printed form revision stamp ('Form H-5 11/04/2020') at the top-right of the page.

Version

The 'Evaluation' value shown in the RRC-use status header of page 1: the RRC evaluation date assigned to this filing (an administrative date stamp in MM/DD/YYYY form, e.g. '06/01/2023', not operator-entered). Extract verbatim as printed; null if blank. Do NOT confuse with 'Test Status' (the test-level status), Item 25 'Well Status', or Item 22 'Test Witnessed by RRC'.

Evaluation

The 'Test Status' value shown in the RRC-use status header of page 1: the administrative status of the pressure test for this filing. Extract verbatim as printed; null if blank. Do NOT confuse with 'Evaluation' (the overall filing evaluation), Item 25 'Well Status' (Active / Temporarily Abandoned / Other), or the Item 12 'Reason for' test selection.

Test Status

The 'Preparer' name under the 'PREPARER INFORMATION' section of page 1: the name of the person who prepared this online filing. Extract verbatim as printed (preserve casing); null if blank. Do NOT confuse with Item 1 'Operator's Name' (the operating company), with the certificate 'Name of Person (type or print)', or with Item 22 'Name of RRC Representative'.

Preparer

The 'Phone' value under the 'PREPARER INFORMATION' section of page 1: the preparer's telephone number. Extract verbatim as a string, preserving dashes, parentheses, and any leading digits; null if blank. Do NOT confuse with the preparer's 'E-mail' beside it, or with the certificate 'Telephone No.' near the signature block.

Preparer Phone

The 'E-mail' value under the 'PREPARER INFORMATION' section of page 1: the preparer's email address. Extract verbatim as printed (preserve exact casing and the full address); null if blank. Do NOT confuse with the preparer's 'Phone' beside it or with the operator address fields in the 'OPERATOR INFORMATION' section.

Preparer Email

Item 1 'Operator's Name' (top-left of page 1, under 'OPERATOR INFORMATION'): the name of the operator (company or individual) responsible for the well. Extract verbatim as printed (preserve casing and any '&', 'LLC', 'INC' suffixes); null if blank. Do NOT confuse with Item 2 'RRC Operator No.' (the numeric operator code), the 'Preparer' name, the certificate 'Name of Person', or Item 9 'Lease Name'.

Operator Name

Item 2 'RRC Operator No.' (top-right of page 1, under 'OPERATOR INFORMATION'): the operator's RRC P-5 organization number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with Item 1 'Operator's Name' (the text name), Item 4 'RRC District No.', Item 8 'API No.', or Item 10a 'Oil Lease No.'.

Operator No

Item 3 'Address' first line ('Address Line 1' under 'OPERATOR INFORMATION', page 1): the first line of the operator's mailing address (typically street/PO box). Extract verbatim as printed; null if blank. Do NOT confuse with 'Address Line 2' below it, with the City / State / Postal Code fields, or with the preparer contact fields.

Operator Address Line 1

Item 3 'City' (operator mailing-address city under 'OPERATOR INFORMATION', page 1). Extract verbatim as printed; null if blank. Do NOT confuse with the operator 'State' or 'Postal Code' fields beside it, with Item 5 'County' (the well's county), or with the address line fields.

Operator City

Item 3 'Address' second line ('Address Line 2' under 'OPERATOR INFORMATION', page 1): the second/overflow line of the operator's mailing address (suite, unit, etc.). Extract verbatim as printed; null if blank. Do NOT confuse with 'Address Line 1' above it or with the City / State / Postal Code fields.

Operator Address Line 2

Item 3 'State' (operator mailing-address state under 'OPERATOR INFORMATION', page 1). Extract verbatim as printed (usually a two-letter abbreviation, e.g. 'TX'); null if blank. Do NOT confuse with the operator 'City' or 'Postal Code' fields, or with Item 5 'County'.

Operator State

Item 3 'Postal Code' (operator mailing-address ZIP/postal code under 'OPERATOR INFORMATION', page 1). Extract verbatim as a string, preserving leading zeros and any ZIP+4 hyphen; null if blank. Do NOT confuse with the operator 'City' or 'State' fields, with Item 4 'RRC District No.', or with any well-identifier number.

Operator Postal Code

Item 8 'API No.' (under the 'LEASE AND WELL' section, page 1): the American Petroleum Institute well number. Extract verbatim as a string, preserving dashes and leading zeros exactly as printed (Texas API numbers are typically '42-XXX-XXXXX'); null if blank. Do NOT confuse with Item 2 'RRC Operator No.', Item 10a 'Oil Lease No.', Item 11 'Well No.', or the 'UIC No.'.

API

The 'Injection Well' identifier under the 'LEASE AND WELL' section of the render (page 1): the injection/disposal well designation tied to this UIC permit. Extract verbatim as printed; null if blank. Do NOT confuse with Item 11 'Well No.' (the well number on the lease), Item 8 'API No.', or the 'UIC No.'.

Injection Well

Item 4 'RRC District No.' (under the 'LEASE AND WELL' section, page 1): the Railroad Commission district number for the well's location (e.g. '7B', '08', '6'). Extract verbatim as a string, preserving any leading zero or letter suffix; null if blank. Do NOT confuse with Item 7 'Field No.', Item 2 'RRC Operator No.', or Item 5 'County'.

District

Item 10a 'Oil Lease No.' / 10b 'Gas ID No.' captured under the 'LEASE AND WELL' section as 'Lease (No.)' (page 1): the numeric RRC lease/gas identification number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Lease (Name)' (Item 9, the text lease name) which is a SEPARATE field, nor with Item 7 'Field No.', Item 8 'API No.', or Item 11 'Well No.'.

Lease No

Item 11 'Well No.' (under the 'LEASE AND WELL' section, page 1): the well number on the lease. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Lease (No.)' (Item 10a/10b, the lease number), Item 8 'API No.', or the 'Injection Well' designation.

Well No

Item 9 'Lease Name' captured under the 'LEASE AND WELL' section as 'Lease (Name)' (page 1): the text name of the lease. Extract verbatim as printed (preserve casing); null if blank. Do NOT confuse with 'Lease (No.)' (Item 10a/10b, the numeric lease number) which is a SEPARATE field, nor with Item 6 'Field Name' or Item 1 'Operator's Name'.

Lease Name

Item 7 'Field No.' (under the 'LEASE AND WELL' section, page 1): the numeric RRC field identification number. Extract verbatim as a string, preserving leading zeros; null if blank. Do NOT confuse with 'Field Name' (Item 6, the text field name) beside it, Item 4 'RRC District No.', or 'Lease (No.)'.

Field Number

Item 6 'Field Name' (under the 'LEASE AND WELL' section, page 1; printed 'exactly as shown on proration schedule'): the RRC field name. Extract verbatim as printed; null if blank. Do NOT confuse with Item 7 'Field No.' (the numeric field code), Item 9 'Lease (Name)', or Item 5 'County'.

Field Name

Item 5 'County' (under the 'LEASE AND WELL' section, page 1): the Texas county in which the well is located. Extract verbatim as printed; null if blank. Do NOT confuse with Item 4 'RRC District No.' (a district code), the operator-address 'City'/'State', or Item 6 'Field Name'.

County

Item 12 'Reason for Test' under the 'TEST REPORT INFORMATION' section (page 1): the selected reason for this test. On the paper form the choices are 'Initial Test Prior to Injection', 'After Workover', 'Annual Test Required By Permit', 'Five-Year Test Required By Rule', and 'Other (Specify)'. Capture the selected reason verbatim (including any 'Other' specification text); null if blank. Do NOT confuse with Item 14 'Retest?', 'Test Status', or Item 13 'Date of Test'.

Reason For

Item 13 'Date of Test' (printed 'Date Test Performed' under the 'TEST REPORT INFORMATION' section, page 1): the date the pressure test was performed. Extract verbatim as printed (preserve the printed date format, e.g. MM/DD/YYYY); null if blank. Do NOT confuse with 'Submittal Date' (when the filing was submitted), 'For a Retest, Date of Previous Test', or the certificate 'Date'.

Date Test Performed

Item 14 'Retest?' under the 'TEST REPORT INFORMATION' section (page 1): the Yes/No answer indicating whether this report documents a retest (the paper form prints 'YES' and 'NO' boxes; 'If YES, see Instruction No. 5'). Capture the selected answer verbatim as it appears on the render (e.g. 'YES' or 'NO'); null if blank. Do NOT confuse with 'For a Retest, Date of Previous Test' (the prior-test date) or 'Remedial Actions Prior to' (the remedial-action narrative).

Retest

The 'For a Retest, Date of Previous Test' field under the 'TEST REPORT INFORMATION' section (page 1): the date of the last (unsuccessful) test, filled only when Item 14 'Retest?' is YES. Extract verbatim as printed (preserve the date format); null if blank. Do NOT confuse with Item 13 'Date of Test' (the current test date), 'Submittal Date', or the 'Retest' Yes/No answer.

Retest Date Of Previous Test

The 'Remedial Actions Prior to' narrative under the 'TEST REPORT INFORMATION' section (page 1): free-text describing remedial actions taken to prepare the well for a retest (casing repair, tubing/packer replacement, etc., per Instruction 5). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 24 'Operator Comments On Test' or with the 'For a Retest, Date of Previous Test' field.

Remedial Actions Prior To

Item 15 'WELL COMPLETION' grid (top-center of page 1). The grid has three columns - Size, Depth set, TOC (Top Of Cement) - and one fixed labeled row per casing/tubing string. The possible rows are 'Surface Casing', 'Long String Casing', and 'Tubing or Hanging String'; a filing may fill two or three of them. Return one WellCompletionCasingString object per row, with string_type set to that row's label and the three cell values (casing_tubing_size, depth_set, top_of_cement) filled from that row. Emit a row object only for rows that have at least one filled cell; null (or an empty list) when the whole grid is blank. Preserve all cell values verbatim. Do NOT merge rows, and do NOT pull Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer' into this grid.

Well Completion Casing

Item 16a 'Packer Make and Model' (printed 'Packer Make/Model' under 'WELL COMPLETION', page 1): the make and model of the injection packer. Extract verbatim as printed; null if blank. Do NOT confuse with Item 16b 'Depth Set' (printed 'Depth Packer', the packer set depth) beside it, with the Item 15 grid's 'Casing/Tubing Size' column, or with the 'No Packer / Injection Down Casing' checkbox.

Packer Make Model

Item 16b 'Depth Set' (printed 'Depth Packer' under 'WELL COMPLETION', page 1): the depth in feet at which the packer is set. Extract verbatim as printed; null if blank. Do NOT confuse with Item 16a 'Packer Make/Model' (the make/model text) beside it, with the Item 15 grid 'Depth Set (ft.)' columns, or with the 'No Packer / Injection Down Casing' checkbox.

Depth Packer

The 'No Packer / Injection Down Casing' checkbox in the well-completion area of page 1: marked when the well has no packer and injects down the casing. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the text fields Item 16a 'Packer Make/Model' or Item 16b 'Depth Packer', nor with the page-2 checkboxes 'No Completed Intervals', 'Well did not pressure up', or 'Digital Recorder readings are attached'.

No Packer Injection Down Casing

Item 18 injection-interval region (page 2 of the render). Four fixed labeled interval blocks, each with a Top and Bottom depth (in feet): 'Permitted Injection' (Item 18a, the interval the permit authorizes), 'Completed Injection' (Item 18b, the interval actually completed), 'Authorized Liquid Injection', and 'Authorized Gas Injection'. Return one InjectionInterval object per block, with interval_type set to the block label and top/bottom filled from that block. Emit a block only when it has at least one filled cell; null (or an empty list) when no intervals are filled. Preserve depths verbatim. Do NOT merge the four blocks, do NOT confuse 'Permitted' (allowed) with 'Completed' (actual), and do NOT pull the Item 15 casing depths or Item 17 'Authorized Injection Pressure' into this grid.

Injection Intervals

The 'No Completed Intervals' checkbox in the Item 18 injection-interval region (page 2): marked when there are no completed injection intervals to report. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Completed Injection' interval Top/Bottom values, with the 'No Packer / Injection Down Casing' checkbox (page 1), or with the page-2 'Well did not pressure up' checkbox.

No Completed Intervals

Item 25 'Well Status' on the render (page 2): the well's status. On the paper form the choices are 'Active', 'Temporarily Abandoned', and 'Other (Specify)'. Capture the selected status verbatim (including any 'Other' specification text); null if blank. Do NOT confuse with 'Test Status' or 'Evaluation' in the header, or with Item 22 'Test Witnessed by RRC'.

Well Status

The 'Well did not pressure up. No test pressures to report.' checkbox in the test-pressures area of page 2: marked when the well would not hold/pressure up so no Item 19 pressures are reported. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Digital Recorder readings are attached to filing' checkbox beside it, the 'No Completed Intervals' checkbox, or any Item 19 pressure cell.

Well Did Not Pressure Up

The 'Digital Recorder readings are attached to filing.' checkbox in the test-pressures area of page 2: marked when digital pressure-recorder readings are attached to this filing. True if this box is marked/checked on the scan, false/null if left blank. Do NOT confuse with the 'Well did not pressure up' checkbox beside it or with the Item 19 manually-entered pressure cells.

Digital Recorder Attached

Item 19 'TEST PRESSURE (PSIG)' grid (page 2 of the render; see Instructions 4(c) and 4(d)). The grid has three pressure columns - Tubing or Hanging String (printed 'TUBING'), Casing (printed 'CASING'), Surface Casing (printed 'SURFACE CSG') - and one labeled time row per elapsed-time reading, starting with 'Initial' and continuing in 15-minute increments for as long as the operator ran the test (e.g. 'After 15 minutes', 'After 30 minutes', 'After 45 minutes', 'After 60 minutes', etc.) -- the row count is NOT fixed at 3; some filings print more rows. Return one TestPressureReading object per time row actually printed, with time_point set to that row's label and the three pressure values filled from that row. Emit a row only when it has at least one filled cell; null (or an empty list) when no pressures are reported. Preserve all values verbatim. Do NOT merge the time rows, and do NOT confuse these readings with Item 17 'Authorized Injection Pressure'.

Test Pressures

Item 22 'Test Witnessed by RRC?' under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2): the Yes/No answer indicating whether an RRC representative witnessed the test (the paper form prints 'YES' and 'NO' boxes; 'If NO, see Instruction 4(a)'). Capture the selected answer verbatim (e.g. 'YES' or 'NO'); null if blank. Do NOT confuse with 'Name of RRC' (the representative's name) which is a separate field, or with Item 23 'Were other tests/surveys performed'.

Test Witnessed By RRC

The 'Name of RRC' field (printed 'If YES. Name of RRC Representative') under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2): the name of the Railroad Commission representative who witnessed the test, filled when Item 22 is YES. Extract verbatim as printed; null if blank. Do NOT confuse with the Item 22 'Test Witnessed by RRC' Yes/No answer, Item 1 'Operator's Name', or the certificate 'Name of Person'.

Name Of RRC

Item 20 'Characteristics of Injection Fluid' (printed 'Injection Fluid Description' under 'TEST PRESSURES AND OTHER INFORMATION', page 2; see Instruction 4(e)): free-text describing the injection fluid (e.g. temperature, specific gravity). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 21 'Annulus Fluid Description' (the fluid in the annulus) beside it, or with Item 24 'Operator Comments On Test'.

Injection Fluid Description

Item 21 'Characteristics of Annulus Fluid' (printed 'Annulus Fluid Description' under 'TEST PRESSURES AND OTHER INFORMATION', page 2; see Instructions 4(e) and 4(f)): free-text describing the fluid in the annulus (or an explanation if the annulus is not loaded with fluid). Extract the full text verbatim as printed; null if blank. Do NOT confuse with Item 20 'Injection Fluid Description' (the injected fluid) beside it, or with Item 24 'Operator Comments On Test'.

Annulus Fluid Description

Item 23 'Were other tests/surveys performed at this time?' captured as 'Other Tests/Surveys Performed on this Well' under 'TEST PRESSURES AND OTHER INFORMATION' (page 2): the Yes/No answer and, 'If YES. List:', the list of other tests/surveys. Capture the answer and any listed tests verbatim; null if blank. Do NOT confuse with Item 22 'Test Witnessed by RRC' or with Item 24 'Operator Comments On Test'.

Other Tests Surveys Performed

Item 24 'Operator Comments On Test' under the 'TEST PRESSURES AND OTHER INFORMATION' section (page 2; 'attach separate sheet if necessary'): free-text operator comments on the test, including any retest remedial-action explanation per Instruction 5. Extract the full text verbatim as printed; null if blank. Do NOT confuse with 'Remedial Actions Prior to' (page 1), Item 20/21 fluid descriptions, or Item 23 'Other Tests/Surveys Performed'.

Operator Comments On Test

RRCH5Extraction

5-Year Test as Required by Statewide Rule