PurchaseOrder

The purchase order's own unique identifier, taken ONLY from a field explicitly labeled with a PO-number alias. Label aliases: 'PO Number', 'Purchase Order Number', 'P.O. #', 'PO#', 'PO Number (*Purchasing)'. Verbatim including any leading zeros and internal hyphens (e.g. '303-0-0317'). Do NOT confuse with: the requisition_number, the contract/bid number (e.g. '25-206'), the event number, the vendor number, a quote number, or any stand-alone control/document code printed in a header corner (e.g. 'C-25-0908' on the Lancaster requisition is NOT a PO number). Location: PO header block, usually top-left/top-right beside a 'Purchase Order' title or in a labeled 'PO Number' cell. Return null when the PO-number field is present but BLANK/empty (a requisition not yet assigned a PO number leaves the 'PO Number (*Purchasing)' cell empty) or when no PO-number-labeled field exists at all.

The requisition / requisition-event identifier explicitly labeled as such. Label aliases: 'Requisition Number', 'Requisition Purchase Order', 'Req #'. Verbatim (e.g. '303-0-00473'). Do NOT confuse with po_number (the PO's own id), the contract/bid number, the bid 'Event Number', or a header-corner control code like 'C-25-0908'. Location: header, often directly under the PO number. Return null if no field is explicitly labeled as a requisition number (do NOT substitute a contract/bid number or a corner control code).

The date the purchase order was issued/ordered, normalized to YYYY-MM-DD. Label aliases (in priority order): 'Order Date', 'Purchase Order Date', 'Issue Date', 'Date Prepared'. Do NOT confuse with: 'Date Requested', 'Date Revised', a delivery date, an approval/signature date at the bottom of the form, line-item Start/End dates, or a bid Close Date. Location: PO header (usually top-right). On the Lancaster requisition use 'Date Prepared' (10/29/2025 -> 2025-10-29), NOT the signature 'Date' (11/19/2025). Return null if no issue/order/prepared date is printed.

The purchasing organization / issuing government agency that authorizes and pays for the PO. On these government POs this is the county/commission named in the title block, NOT the vendor and NOT the ship-to recipient.

Name of the buying organization / issuing agency exactly as printed in the title block (e.g. 'LANCASTER COUNTY, NEBRASKA', 'TEXAS FACILITIES COMMISSION'). Do NOT confuse with the vendor name, the bid-event organization (e.g. 'Lincoln Purchasing'), or a sub-department.

Sub-department/division within the buyer, taken ONLY from an explicitly labeled field in the document body such as 'Division', 'Department', or 'Agency'. Use that field's value verbatim (e.g. the Texas PO 'Division' field -> 'Facilities Design and Construction'). Do NOT prepend or repeat buyer.name, and do NOT reconstruct a department from a logo/letterhead graphic (e.g. the word 'ENGINEERING' inside the Lancaster county logo is NOT a labeled field). Return null whenever no labeled department/division/agency field exists in the body (so the Lancaster requisition -> null).

Name of the person who requested/originated the requisition. Label aliases: 'Name ... of Person Requisitioning', 'Requisitioner', 'Requested by'. Return the person name only, without the email/phone that follows it (e.g. 'Kurtis Hunt'). Do NOT confuse with the buyer-side PO contact person, the approver/signer, the purchaser, the buyer org name, or the vendor contact. Return null if no requisitioner person is named.

Name of the buyer-side contact person for this PO (point of contact handling the order), when listed separately from the requisitioner. Label aliases: 'Contact Person for PO', 'TFC Contact', 'Buyer'. Return the person name only, without email/phone (e.g. 'Ron Bohaty', 'Leandra Contreras'). Do NOT confuse with the requisitioner, the purchaser/approver, or the vendor contact. Return null if no separate buyer-side contact is named.

The supplier the order is placed with (the entity being paid). Do NOT confuse with the buyer/issuing agency, the bid-event organization, or the ship-to recipient. On the Lancaster requisition use the single 'Proposed Vendor(s)' (Husker Steel Inc); do NOT pull competing suppliers from the bid-tabulation pages.

Vendor / supplier company name (e.g. 'Husker Steel Inc', 'SHELTON-KELLER GROUP INC'). Label aliases: 'Vendor', 'Proposed Vendor(s)', 'Referenced Source or Vendor', 'Supplier'. Verbatim, excluding the vendor number or contact line. Do NOT use a per-line manufacturer name (e.g. 'Allseating', 'SAFCO Products Company') as the vendor.

Vendor mailing address as a single string: include every printed street/city/state/zip line of the vendor block that sits below the vendor name and above the contact person, in printed order, joined by a single space. PRESERVE every printed comma/punctuation verbatim; only do not ADD separators that are not printed. Do NOT include the vendor name, vendor number, or the contact-person/phone/email lines, and do NOT use the delivery/ship-to address. (Texas PO -> '200 EAST CESAR CHAVEZ ST STE 190 AUSTIN, TX 787014004'.) Return null if not printed.

Buyer's internal vendor/supplier id code printed in the vendor block (e.g. the '17526176577' shown atop the 'Referenced Source or Vendor' box). Verbatim. Do NOT confuse with the po_number, requisition number, or a tax id. Return null if no vendor id is present.

Vendor-side contact lines as printed at the bottom of the vendor block: include the contact person AND every phone/fax/email line, in printed order, joined by a single space, verbatim including any 'Phone:'/'Fax:' labels even when a value is blank (Texas PO -> 'Megan Williams Phone:512-592-5214, Fax: mwilliams@skgtexas.com'). Do NOT drop the email or the 'Fax:' label, and do NOT confuse with the buyer-side contact. Return null if no vendor contact lines are present.

Delivery / ship-to address (where goods are delivered) as a single string. Label aliases: 'Delivery Location', 'Ship To', 'Agency & Delivery Address'. Include EVERY printed line of the delivery block (location/building name, street, any 'ATTN:' recipient line, city/state/zip), in printed order, joined by a single space. PRESERVE every comma and punctuation mark that IS printed verbatim (do NOT strip printed commas); only do not ADD separators that are not printed. Do NOT drop the 'ATTN:' line. EXCLUDE non-address instruction lines such as 'Show numbers on all papers and packages'. (Texas PO -> 'Parking Garage R, Warehouse 1706 San Jacinto Blvd. ATTN: Leandra Contreras Austin, TX 78701'; a single-line printed address keeps its printed commas, e.g. 'Lancaster County Engineer, 444 Cherrycreek Rd, Building B, Lincoln, NE 68528'.) Do NOT confuse with the bill-to/invoice address or the vendor address. Return null if not stated.

Billing / invoice-to address (where the invoice should be sent) as a single string. Label aliases: 'MAIL INVOICE TO AGENCY BELOW', 'Mail Invoice To', 'Bill To', 'Agency & Billing Address'. Include EVERY printed line of the billing block (org name, sub-unit, PO box/street, city/state/zip), in printed order, joined by a single space. PRESERVE every comma and punctuation mark that IS printed verbatim (do NOT strip printed commas); only do not ADD separators that are not printed. STOP at the address itself: EXCLUDE trailing alternate-submission lines such as 'OR' and 'email to: ...'. (Texas PO -> 'TEXAS FACILITIES COMMISSION FISCAL MANAGEMENT / ACCOUNTS PAYABLE P.O. BOX 13047 Austin, Texas 78711-3047'; a single-line printed address keeps its printed commas, e.g. 'Lancaster County Engineer, 444 Cherrycreek Rd, Building B, Lincoln, NE 68528'.) Do NOT confuse with the ship-to/delivery address or the vendor address. Return null if not stated.

Every ordered/requisitioned line item from THIS purchase order's OWN line-item table (the buyer's table whose columns are item/line #, DESCRIPTION, QTY, UNIT/UOM, UNIT PRICE, optional Start/End Date, EXT./Total). Each printed product or service line is exactly one entry. INCLUDE service/fee lines (e.g. 'Labor to install 4 chairs'). EXCLUDE, and never emit as a line item: (a) empty filler rows that show '$0.00' with no description/quantity; (b) subtotal/Total/Grand Total rows; (c) on a requisition that prints a multi-supplier BID TABULATION on later pages, ALL of that comparison table's content — its per-supplier Unit/Extended columns and every 'N ALT1' alternate row (e.g. '1 ALT1 Ace/Eaton Manufactured Sheetpile') belong to the bid tabulation, NOT to this PO. Extract only the requisition's own DESCRIPTION/QTY/UNIT/UNIT PRICE/EXT PRICE rows from page 1.

Sequential line number of the item within this PO's line-item table, 1-based. If the table prints explicit line numbers, use them; otherwise assign 1,2,3... strictly top-to-bottom in printed order. This is the identity key (one entry per ordered line). Do NOT use a GL/Fund code (e.g. '63630', '022'), an NIGP class/item, an Object Class, or a catalog/part/manufacturer number as line_no.

Full item description/specification text for THIS line only. Capture the entire description cell, including a multi-line configuration/option block when it is part of the same line cell (e.g. the chair model code plus its 'FC1:Black Frame / B17:... / E3:...' option lines). Do NOT merge in the next line's description, and do NOT append trailing metadata rows (NIGP Class/Item, Object Class, Reimbursement Type, Notes) that sit below the priced line. When a long product/configuration code is soft-wrapped across display lines (e.g. '...FABRIC-~-FG3-COVERCLOTH...' wrapping after a hyphen, or 'F-OBAY' splitting), reconstruct it as the single continuous code with NO added space at the wrap point (treat a soft wrap as no separator), preserving every printed hyphen.

Quantity ordered for this line, as a number (strip thousands separators; '1.0000' -> 1). Label aliases: 'QTY', 'Qty'. Do NOT confuse with unit_price, total, or a bid-tabulation alternate quantity.

Unit of measure for the quantity, verbatim as printed (e.g. 'Each', 'EACH', 'EA', 'FEE'). Label aliases: 'UNIT', 'Unit', 'UOM'. Do NOT confuse with unit_price.

Price per single unit for this line, as a number (strip currency symbol and thousands separators; '$128.00' -> 128.0). Label aliases: 'UNIT PRICE', 'Unit Price', 'Unit'. Do NOT confuse with the line total/extended_price or the quantity. On the bid tabulation the 'Unit' columns belong to suppliers and are out of scope.

Per-line service/delivery start date, normalized to YYYY-MM-DD, ONLY when the line-item table prints a 'Start Date' column (e.g. Texas PO: '11/7/2019' -> '2019-11-07'). Do NOT use the PO header order date. Return null if the line table has no Start Date column (e.g. the Lancaster requisition).

Per-line service/delivery end date, normalized to YYYY-MM-DD, ONLY when the line-item table prints an 'End Date' column (e.g. Texas PO: '12/6/2019' -> '2019-12-06'). Do NOT use the PO header order date or a signature date. Return null if the line table has no End Date column (e.g. the Lancaster requisition).

Extended / line total for this line (= quantity x unit_price), as a number (strip currency symbol and separators; '$9,600.00' -> 9600.0). Label aliases: 'EXT. PRICE', 'Extended Price', 'Extended', 'Total' (the per-line Total column). Do NOT confuse with unit_price, with a per-supplier bid-tabulation Extended value, or with the document grand total.

Grand total of THIS purchase order (sum of all line extended prices, plus any tax/shipping if shown), as a number (strip currency symbol and thousands separators; '$39,360.00' -> 39360.0, '$2,211.00' -> 2211.0). Label aliases: 'Total Price', 'Grand Total', 'Purchase Order Total', 'Total'. Do NOT confuse with a single line's extended_price or with any per-supplier 'Total Price' / 'Response Total' in the bid tabulation. Location: bottom of the PO line-item table.

ISO 4217 currency code of the amounts (e.g. 'USD'). If the document shows '$' with no other currency indicator on a US government PO, use 'USD'. Return null only if genuinely indeterminate.

AVL SYSTEMS DESIGN LLC

14901 BRISTOL PARK BLVD EDMOND, OK 73013

OK CO EMERGENCY MANAGEMENT 320 ROBERT S KERR ROOM 101 OKLAHOMA CITY, OK 73102

Statewide Contract # SW1021AV - Emergency Operations Center (EOC) audio-visual equipment

Ship To  EMMGT / OK CO EMERGENCY MANAGEMENT / 320 ROBERT S KERR / ROOM 101 / OKLAHOMA CITY, OK 73102

Bill To  EMMGT / OK CO EMERGENCY MANAGEMENT / 320 ROBERT S KERR / ROOM 101 / OKLAHOMA CITY, OK 73102


PurchaseOrder

The purchase order's own unique identifier, taken ONLY from a field explicitly labeled with a PO-number alias. Label aliases: 'PO Number', 'Purchase Order Number', 'P.O. #', 'PO#', 'PO Number (*Purchasing)'. Verbatim including any leading zeros and internal hyphens (e.g. '303-0-0317'). Do NOT confuse with: the requisition_number, the contract/bid number (e.g. '25-206'), the event number, the vendor number, a quote number, or any stand-alone control/document code printed in a header corner (e.g. 'C-25-0908' on the Lancaster requisition is NOT a PO number). Location: PO header block, usually top-left/top-right beside a 'Purchase Order' title or in a labeled 'PO Number' cell. Return null when the PO-number field is present but BLANK/empty (a requisition not yet assigned a PO number leaves the 'PO Number (*Purchasing)' cell empty) or when no PO-number-labeled field exists at all.

The requisition / requisition-event identifier explicitly labeled as such. Label aliases: 'Requisition Number', 'Requisition Purchase Order', 'Req #'. Verbatim (e.g. '303-0-00473'). Do NOT confuse with po_number (the PO's own id), the contract/bid number, the bid 'Event Number', or a header-corner control code like 'C-25-0908'. Location: header, often directly under the PO number. Return null if no field is explicitly labeled as a requisition number (do NOT substitute a contract/bid number or a corner control code).

The date the purchase order was issued/ordered, normalized to YYYY-MM-DD. Label aliases (in priority order): 'Order Date', 'Purchase Order Date', 'Issue Date', 'Date Prepared'. Do NOT confuse with: 'Date Requested', 'Date Revised', a delivery date, an approval/signature date at the bottom of the form, line-item Start/End dates, or a bid Close Date. Location: PO header (usually top-right). On the Lancaster requisition use 'Date Prepared' (10/29/2025 -> 2025-10-29), NOT the signature 'Date' (11/19/2025). Return null if no issue/order/prepared date is printed.

The purchasing organization / issuing government agency that authorizes and pays for the PO. On these government POs this is the county/commission named in the title block, NOT the vendor and NOT the ship-to recipient.

Name of the buying organization / issuing agency exactly as printed in the title block (e.g. 'LANCASTER COUNTY, NEBRASKA', 'TEXAS FACILITIES COMMISSION'). Do NOT confuse with the vendor name, the bid-event organization (e.g. 'Lincoln Purchasing'), or a sub-department.

Sub-department/division within the buyer, taken ONLY from an explicitly labeled field in the document body such as 'Division', 'Department', or 'Agency'. Use that field's value verbatim (e.g. the Texas PO 'Division' field -> 'Facilities Design and Construction'). Do NOT prepend or repeat buyer.name, and do NOT reconstruct a department from a logo/letterhead graphic (e.g. the word 'ENGINEERING' inside the Lancaster county logo is NOT a labeled field). Return null whenever no labeled department/division/agency field exists in the body (so the Lancaster requisition -> null).

Name of the person who requested/originated the requisition. Label aliases: 'Name ... of Person Requisitioning', 'Requisitioner', 'Requested by'. Return the person name only, without the email/phone that follows it (e.g. 'Kurtis Hunt'). Do NOT confuse with the buyer-side PO contact person, the approver/signer, the purchaser, the buyer org name, or the vendor contact. Return null if no requisitioner person is named.

Name of the buyer-side contact person for this PO (point of contact handling the order), when listed separately from the requisitioner. Label aliases: 'Contact Person for PO', 'TFC Contact', 'Buyer'. Return the person name only, without email/phone (e.g. 'Ron Bohaty', 'Leandra Contreras'). Do NOT confuse with the requisitioner, the purchaser/approver, or the vendor contact. Return null if no separate buyer-side contact is named.

The supplier the order is placed with (the entity being paid). Do NOT confuse with the buyer/issuing agency, the bid-event organization, or the ship-to recipient. On the Lancaster requisition use the single 'Proposed Vendor(s)' (Husker Steel Inc); do NOT pull competing suppliers from the bid-tabulation pages.

Vendor / supplier company name (e.g. 'Husker Steel Inc', 'SHELTON-KELLER GROUP INC'). Label aliases: 'Vendor', 'Proposed Vendor(s)', 'Referenced Source or Vendor', 'Supplier'. Verbatim, excluding the vendor number or contact line. Do NOT use a per-line manufacturer name (e.g. 'Allseating', 'SAFCO Products Company') as the vendor.

Vendor mailing address as a single string: include every printed street/city/state/zip line of the vendor block that sits below the vendor name and above the contact person, in printed order, joined by a single space. PRESERVE every printed comma/punctuation verbatim; only do not ADD separators that are not printed. Do NOT include the vendor name, vendor number, or the contact-person/phone/email lines, and do NOT use the delivery/ship-to address. (Texas PO -> '200 EAST CESAR CHAVEZ ST STE 190 AUSTIN, TX 787014004'.) Return null if not printed.

Buyer's internal vendor/supplier id code printed in the vendor block (e.g. the '17526176577' shown atop the 'Referenced Source or Vendor' box). Verbatim. Do NOT confuse with the po_number, requisition number, or a tax id. Return null if no vendor id is present.

Vendor-side contact lines as printed at the bottom of the vendor block: include the contact person AND every phone/fax/email line, in printed order, joined by a single space, verbatim including any 'Phone:'/'Fax:' labels even when a value is blank (Texas PO -> 'Megan Williams Phone:512-592-5214, Fax: mwilliams@skgtexas.com'). Do NOT drop the email or the 'Fax:' label, and do NOT confuse with the buyer-side contact. Return null if no vendor contact lines are present.

Delivery / ship-to address (where goods are delivered) as a single string. Label aliases: 'Delivery Location', 'Ship To', 'Agency & Delivery Address'. Include EVERY printed line of the delivery block (location/building name, street, any 'ATTN:' recipient line, city/state/zip), in printed order, joined by a single space. PRESERVE every comma and punctuation mark that IS printed verbatim (do NOT strip printed commas); only do not ADD separators that are not printed. Do NOT drop the 'ATTN:' line. EXCLUDE non-address instruction lines such as 'Show numbers on all papers and packages'. (Texas PO -> 'Parking Garage R, Warehouse 1706 San Jacinto Blvd. ATTN: Leandra Contreras Austin, TX 78701'; a single-line printed address keeps its printed commas, e.g. 'Lancaster County Engineer, 444 Cherrycreek Rd, Building B, Lincoln, NE 68528'.) Do NOT confuse with the bill-to/invoice address or the vendor address. Return null if not stated.

Billing / invoice-to address (where the invoice should be sent) as a single string. Label aliases: 'MAIL INVOICE TO AGENCY BELOW', 'Mail Invoice To', 'Bill To', 'Agency & Billing Address'. Include EVERY printed line of the billing block (org name, sub-unit, PO box/street, city/state/zip), in printed order, joined by a single space. PRESERVE every comma and punctuation mark that IS printed verbatim (do NOT strip printed commas); only do not ADD separators that are not printed. STOP at the address itself: EXCLUDE trailing alternate-submission lines such as 'OR' and 'email to: ...'. (Texas PO -> 'TEXAS FACILITIES COMMISSION FISCAL MANAGEMENT / ACCOUNTS PAYABLE P.O. BOX 13047 Austin, Texas 78711-3047'; a single-line printed address keeps its printed commas, e.g. 'Lancaster County Engineer, 444 Cherrycreek Rd, Building B, Lincoln, NE 68528'.) Do NOT confuse with the ship-to/delivery address or the vendor address. Return null if not stated.

Every ordered/requisitioned line item from THIS purchase order's OWN line-item table (the buyer's table whose columns are item/line #, DESCRIPTION, QTY, UNIT/UOM, UNIT PRICE, optional Start/End Date, EXT./Total). Each printed product or service line is exactly one entry. INCLUDE service/fee lines (e.g. 'Labor to install 4 chairs'). EXCLUDE, and never emit as a line item: (a) empty filler rows that show '$0.00' with no description/quantity; (b) subtotal/Total/Grand Total rows; (c) on a requisition that prints a multi-supplier BID TABULATION on later pages, ALL of that comparison table's content — its per-supplier Unit/Extended columns and every 'N ALT1' alternate row (e.g. '1 ALT1 Ace/Eaton Manufactured Sheetpile') belong to the bid tabulation, NOT to this PO. Extract only the requisition's own DESCRIPTION/QTY/UNIT/UNIT PRICE/EXT PRICE rows from page 1.

Sequential line number of the item within this PO's line-item table, 1-based. If the table prints explicit line numbers, use them; otherwise assign 1,2,3... strictly top-to-bottom in printed order. This is the identity key (one entry per ordered line). Do NOT use a GL/Fund code (e.g. '63630', '022'), an NIGP class/item, an Object Class, or a catalog/part/manufacturer number as line_no.

Full item description/specification text for THIS line only. Capture the entire description cell, including a multi-line configuration/option block when it is part of the same line cell (e.g. the chair model code plus its 'FC1:Black Frame / B17:... / E3:...' option lines). Do NOT merge in the next line's description, and do NOT append trailing metadata rows (NIGP Class/Item, Object Class, Reimbursement Type, Notes) that sit below the priced line. When a long product/configuration code is soft-wrapped across display lines (e.g. '...FABRIC-~-FG3-COVERCLOTH...' wrapping after a hyphen, or 'F-OBAY' splitting), reconstruct it as the single continuous code with NO added space at the wrap point (treat a soft wrap as no separator), preserving every printed hyphen.

Quantity ordered for this line, as a number (strip thousands separators; '1.0000' -> 1). Label aliases: 'QTY', 'Qty'. Do NOT confuse with unit_price, total, or a bid-tabulation alternate quantity.

Unit of measure for the quantity, verbatim as printed (e.g. 'Each', 'EACH', 'EA', 'FEE'). Label aliases: 'UNIT', 'Unit', 'UOM'. Do NOT confuse with unit_price.

Price per single unit for this line, as a number (strip currency symbol and thousands separators; '$128.00' -> 128.0). Label aliases: 'UNIT PRICE', 'Unit Price', 'Unit'. Do NOT confuse with the line total/extended_price or the quantity. On the bid tabulation the 'Unit' columns belong to suppliers and are out of scope.

Per-line service/delivery start date, normalized to YYYY-MM-DD, ONLY when the line-item table prints a 'Start Date' column (e.g. Texas PO: '11/7/2019' -> '2019-11-07'). Do NOT use the PO header order date. Return null if the line table has no Start Date column (e.g. the Lancaster requisition).

Per-line service/delivery end date, normalized to YYYY-MM-DD, ONLY when the line-item table prints an 'End Date' column (e.g. Texas PO: '12/6/2019' -> '2019-12-06'). Do NOT use the PO header order date or a signature date. Return null if the line table has no End Date column (e.g. the Lancaster requisition).

Extended / line total for this line (= quantity x unit_price), as a number (strip currency symbol and separators; '$9,600.00' -> 9600.0). Label aliases: 'EXT. PRICE', 'Extended Price', 'Extended', 'Total' (the per-line Total column). Do NOT confuse with unit_price, with a per-supplier bid-tabulation Extended value, or with the document grand total.

Grand total of THIS purchase order (sum of all line extended prices, plus any tax/shipping if shown), as a number (strip currency symbol and thousands separators; '$39,360.00' -> 39360.0, '$2,211.00' -> 2211.0). Label aliases: 'Total Price', 'Grand Total', 'Purchase Order Total', 'Total'. Do NOT confuse with a single line's extended_price or with any per-supplier 'Total Price' / 'Response Total' in the bid tabulation. Location: bottom of the PO line-item table.

ISO 4217 currency code of the amounts (e.g. 'USD'). If the document shows '$' with no other currency indicator on a US government PO, use 'USD'. Return null only if genuinely indeterminate.

Statewide Contract # SW1021AV - Emergency Operations Center (EOC) audio-visual equipment

One row per ordered/requisitioned line from THIS PO's own page-1 line-item table. Do not drop or merge real priced lines; include service/fee lines; do NOT include bid-tabulation supplier columns or 'N ALT1' alternate rows, GL/NIGP sublines, subtotal/total rows, or empty $0.00 filler rows.


Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Box 12 entry

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Box 14 entry

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

19 Local income tax

18 Local wages, tips, etc.

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

'Retirement plan' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Retirement plan

'13 Statutory employee' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Statutory employee

'Subtotal' checkbox in the box-13 grid (register variant only). Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Subtotal (register variant only)

'Third-party sick pay' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Third-party sick pay

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

e Employee name (first name and initial, last name, suffix)

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

The 'Void' checkbox printed beside box d. A mark (X or similar) INSIDE the box counts; the box outline alone is not a mark. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

Void checkbox

Form W-2 Wage and Tax Statement (2020)

RISDI

13 Statutory Retirement employee plan X Third-party Subtotal sick pay

RISDI

* **b Employer's identification number**: 05-0517079
* **a Employee's social security number**: ~~XXX-XX-XXXXX~~ XXX-XX-9186
* **1 Wages, tips, other compensation**: 40093.72

* **2 Federal income tax withheld**: 2983.22
* **3 Social security wages**: 41514.13
* **4 Social security tax withheld**: 2573.88

* **5 Medicare wages and tips**: 41514.13
* **6 Medicare tax withheld**: 601.95
* **7 Social security tips**:

**e Employee's name, address, and ZIP code**:
JENNA M ANTHONY
221 EMERSON RD
HARRISVILLE RI 02830

**d Control number**: 0012-0012N426 0000000196-ELECTR
**Void**: [ ]
**c Employer's name, address, and ZIP code**:
PASCOAG UTILITY DISTRICT
PO BOX 107
PASCOAG RI 02859

| d Control number 0012-0012N426 Void 0000000196-ELECTR                                                | C Employer's name, address, and ZIP code Department of the Treasury - Internal Revenue Service PASCOAG UTILITY DISTRICT OMB No. 1545-0008                 |
| b Employer's identification number 05-0517079 | a Employee's social security number XXX -XX-Xxxx [x] | PO BOX PASCOAG    | 107 RI 02859                | 1 Wages,                   | tips, other compensation 40093.72 | 2 Federal income tax withheld 2983.22  |
| 13 Statutory Retirement employee plan X       | Third-party Subtotal sick pay                        |                   |                             | 3 Social                   | security wages 41514.13           | 4 Social security tax withheld 2573.88 |
| 12 See Instrs. for Box 12                     | 14 Other                                             | e Employee's      | name, address, and ZIP code | 5 Medicare                 | wages and tips                    | 6 Medicare tax withheld                |
| --------------------------------------------- | ----------------------------------------- | -------- | ----------------- | --------------------------- | -------------------------- | --------------------------------- | -------------------------------------- |
| C 42.12                                       | RISDI 520.66                                         |                                                 | 41514.13                                                       | 601.95                                 |
| D 1420.41                                     |                                                      | JENNA M ANTHONY 221 EMERSON RD                  | 7 Social                   | security tips                     | 8 Allocated tips                       |
|                                               |                                                      | HARRISVILLE RI 02830                            | 10 Dependent care benefits                                     | 11 Nonqualified plans                  |
| 15 State Employer's state                     | ID No.                                    | 16 State | wages, tips, etc. | 17 State income tax         | 18 Local wages, tips, etc. | 19 Local income tax               | 20 Locality name                       |
| RI 05051707900                                |                                                      | 40093.72          | 1501.96                     |                            |                                   |                                        |
|                                               |                                                      |                   |                             |                            |                                   |                                        |


Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Box 12 entry

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Box 14 entry

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

19 Local income tax

18 Local wages, tips, etc.

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

Box 13 'Retirement plan' checkbox — second cell of the box 13 checkbox grid. True if marked (X); false if the Box 13 grid is printed but this box is unmarked; null only if this copy omits the Box 13 grid.

13 Retirement plan

Box 13 'Statutory employee' checkbox — first cell of the box 13 checkbox grid (the register variant prints the grid compactly under the label '13' with a fourth Subtotal cell). True if marked (X); false if the Box 13 grid is printed but this box is unmarked; null only if this copy omits the Box 13 grid.

13 Statutory employee

'Subtotal' checkbox — the fourth cell of the compact box 13 grid printed only on the employer reference register variant (an employer bookkeeping mark for subtotal rows, not a field of the IRS blank form). True if marked (X); false if the register grid prints the Subtotal checkbox but it is unmarked; null if this copy has no Subtotal checkbox, e.g. the IRS blank form. The register grid ALWAYS prints this checkbox: false when unmarked - null is wrong on these docs.

13 Subtotal (register variant only)

Box 13 'Third-party sick pay' checkbox — third cell of the box 13 checkbox grid. True if marked (X); false if the Box 13 grid is printed but this box is unmarked; null only if this copy omits the Box 13 grid.

13 Third-party sick pay

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

The 'Void' checkbox printed beside box d. True ONLY if a mark (X or similar) is printed INSIDE the Void box; false when the box is printed but empty - the box outline alone is not a mark. Null only if no Void box is printed on this copy.

Void checkbox

Form W-2 Wage and Tax Statement (2020)

RISDI

RISDI


Box 12 entry

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

Box 14 entry

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

18 Local wages, tips, etc.

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

The 'Void' checkbox printed beside box d. A mark (X or similar) INSIDE the box counts; the box outline alone is not a mark. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

Void checkbox

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

'13 Statutory employee' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Statutory employee

'Retirement plan' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Retirement plan

'Third-party sick pay' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Third-party sick pay

'Subtotal' checkbox in the box-13 grid (register variant only). Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Subtotal (register variant only)

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Form W-2 Wage and Tax Statement (2020)

RISDI

* **b Employer's identification number**: 05-0517079

* **1 Wages, tips, other compensation**: 40435.45

* **2 Federal income tax withheld**: 2979.61

* **4 Social security tax withheld**: 2595.78

RISDI


Box 12 entry

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

Box 14 entry

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

18 Local wages, tips, etc.

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

The 'Void' checkbox printed beside box d. A mark (X or similar) INSIDE the box counts; the box outline alone is not a mark. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

Void checkbox

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

'13 Statutory employee' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Statutory employee

'Retirement plan' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Retirement plan

'Third-party sick pay' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Third-party sick pay

'Subtotal' checkbox in the box-13 grid (register variant only). Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Subtotal (register variant only)

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Form W-2 Wage and Tax Statement (2020)

RISDI

| d Control number0012-0012N4260000000188-ELECTR
b Employer's identification number05-0517079
13 Statutory employee \[ ]
12 See Instrs.

1545-0008
2 Federal income tax withheld7596.85
3 Social security wages81355.20
5 Medicare wages and tips81355.20
7 Social security tips
10 Dependent care benefits
18 Local wage...

1545-0008
2 Federal income tax withheld7596.85
4 Social security tax withheld5044.02
6 Medicare tax withheld1179.65
8 Allocated tips
11 Nonqualified plans
19 Local income tax |...

...ral income tax withheld7596.85
4 Social security tax withheld5044.02
6 Medicare tax withheld1179.65
8 Allocated tips
11 Nonqualified plans
19 Local income tax | Department of the T...

for Box 12C 86.32<br/>e Employee's name, address, and ZIP codeGLEN E DERBY744 COLWELL RDHARRISVILLE RI 02830Employer's state ID No.05051707900 | c Employer's name, address, and ZIP codePASCOAG UTILITY...

...>a Employee's social security number~~XXX-XX-XXXX~~
Third-party sick pay \[ ]
14 OtherRISDI 939.90
e Employee's name, address, and ZIP codeGLEN E DERBY744 COLWELL RDHARRISVILLE RI 0283016...

RISDI

for Box 12C 86.32
e Employee's name, address, and ZIP codeGLEN E DERBY744 COLWELL RDHARRISVILLE RI 0283015 StateRI | Void
a Employee's social security number~~XXX-XX-XXXX~~
Retirement plan...

...e's name, address, and ZIP codeGLEN E DERBY744 COLWELL RDHARRISVILLE RI 02830Employer's state ID No.05051707900 | c Employer's name, address, and ZIP codePASCOAG UTILITY DISTRICTPO BOX 107PASCOAG RI 0...

...loyee's name, address, and ZIP codeGLEN E DERBY744 COLWELL RDHARRISVILLE RI 0283017 State income tax3162.82 | Department of the Treasury - Internal Revenue ServiceOMB No.


Box 12 entry

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

Box 14 entry

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

18 Local wages, tips, etc.

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

The 'Void' checkbox printed beside box d. A mark (X or similar) INSIDE the box counts; the box outline alone is not a mark. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

Void checkbox

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

'13 Statutory employee' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Statutory employee

'Retirement plan' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Retirement plan

'Third-party sick pay' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Third-party sick pay

'Subtotal' checkbox in the box-13 grid (register variant only). Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Subtotal (register variant only)

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Form W-2 Wage and Tax Statement (2020)

RISDI

**b Employer's identification number**: 05-0517079

**e Employee's name, address, and ZIP code**:
DESARAE DOLAN
615 CENTRAL ST
MAPLEVILLE RI 02839

**1 Wages, tips, other compensation**: 76377.31

**2 Federal income tax withheld**: 11636.10

**4 Social security tax withheld**: 4885.49

RISDI

**Employer's state ID No.**: 05051707900


Box 12 entry

The letter code of a Box 12 entry (values like C, D, DD, W), verbatim uppercase as printed in the vertical 'Code' rail of the blank form or at the left edge of the register column '12 See Instrs. for Box 12'. Identifies the row — Box 12 rows are aligned by this code at eval time, not by position.

Box 12 code

Dollar amount printed beside the Box 12 code in any printed slot: '12a See instructions for box 12', '12b', '12c', or '12d' on the IRS blank, or in the register column '12 See Instrs. for Box 12'. JSON number exactly as printed; null if a code prints with no amount.

Box 12 amount

Box 14 entry

Text label of a box '14 Other' entry, verbatim as printed, e.g. RISDI on this wave. Identifies the row — Box 14 rows are aligned by this description at eval time, not by position.

Box 14 description

Dollar amount printed beside the description in box '14 Other'. JSON number exactly as printed; null if a description prints with no amount.

Box 14 amount

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 1 of the two printed 'boxes 15-20' entry rows).

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 1 of the two printed 'boxes 15-20' entry rows).

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 1 of the two printed 'boxes 15-20' entry rows).

17 State income tax

18 Local wages, tips, etc.

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 1 of the two printed 'boxes 15-20' entry rows).

20 Locality name

Box '15 State' — the two-letter state abbreviation of the single printed state row, verbatim, e.g. RI. This copy prints one state row only; a multi-state W-2 (a second row in boxes 15-20) is out of scope for this schema version. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 State

Box 15 'Employer’s state ID number' (the register variant caption reads 'state ID No.'). The state identification number verbatim as printed, keeping leading zeros, e.g. 05051707900. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

15 Employer’s state ID number

Box '16 State wages, tips, etc.' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

16 State wages, tips, etc.

Box '17 State income tax' for the single printed state row. Dollar amount as a JSON number, exactly as printed; null if the box is blank. (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

17 State income tax

Amount in box '18 Local wages, tips, etc.' - the LOCAL wages column, distinct from box '16 State wages, tips, etc.' (do not copy the state amount here). Null when box 18 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

18 Local wages, tips, etc.

Amount in box '19 Local income tax' - the LOCAL tax column, distinct from box '17 State income tax' (do not copy the state amount here). Null when box 19 is blank, as it is on all RI register docs. (row 2 of the two printed 'boxes 15-20' entry rows).

19 Local income tax

Box '20 Locality name' for the single printed state row, verbatim as printed; null if the box is blank (blank on all wave docs). (row 2 of the two printed 'boxes 15-20' entry rows). The employer-reference register variant prints only one row - null there.

20 Locality name

Box 'a Employee's social security number'. These copies print a masked value, often with overstruck characters. Policy: if the last four digits are legibly printed (e.g. 'XXX-XX-9186'), return 'XXX-XX-' plus those digits; if the tail is fully masked/overstruck, return exactly 'XXX-XX-XXXX' (canonical 4-X form) - do NOT try to count the struck-out X characters. Null only if box a is entirely absent.

a Employee’s social security number

Box 'b Employer identification number (EIN)'; the register variant caption under letter b reads 'identification number'. The employer federal EIN verbatim as printed, keeping the hyphen, e.g. 05-0517079.

b Employer identification number (EIN)

First line of box 'c Employer’s name, address, and ZIP code' — the employer name only, verbatim as printed, e.g. PASCOAG UTILITY DISTRICT.

c Employer name

The lines of box 'c Employer’s name, address, and ZIP code' after the employer name — street or PO box, then city, state and ZIP, verbatim. Join printed lines with comma + space, e.g. PO BOX 107, PASCOAG RI 02859.

c Employer address and ZIP code

The 'Void' checkbox printed beside box d. A mark (X or similar) INSIDE the box counts; the box outline alone is not a mark. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

Void checkbox

Employee full name as printed. Blank form boxes: 'e Employee’s first name and initial', 'Last name', 'Suff.'; the register variant prints the name as the first line of the combined block 'e Employee’s name, address, and ZIP code'. Keep middle initial and any suffix verbatim, e.g. JENNA M ANTHONY.

Employee address: box 'f Employee’s address and ZIP code' on the blank form; the register variant prints it as the lines after the name inside the combined block 'e Employee’s name, address, and ZIP code'. Join printed lines with comma + space — street, then city, state and ZIP, verbatim, e.g. 221 EMERSON RD, HARRISVILLE RI 02830.

f Employee address and ZIP code

Box '1 Wages, tips, other compensation'. Dollar amount as a JSON number, exactly as printed (this register prints plain decimals such as 40093.72 — no thousands separators or dollar signs); null if the box is blank.

1 Wages, tips, other compensation

Box '2 Federal income tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

2 Federal income tax withheld

Box '3 Social security wages'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

3 Social security wages

Box '4 Social security tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

4 Social security tax withheld

Box '5 Medicare wages and tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

5 Medicare wages and tips

Box '6 Medicare tax withheld'. Dollar amount as a JSON number, exactly as printed; null if the box is blank.

6 Medicare tax withheld

Box '7 Social security tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

7 Social security tips

Box '8 Allocated tips'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

8 Allocated tips

Box '10 Dependent care benefits'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

10 Dependent care benefits

Box '11 Nonqualified plans'. Dollar amount as a JSON number, exactly as printed; null if the box is blank (printed but typically empty on this wave).

11 Nonqualified plans

Box 12 coded amounts. The blank form prints four slots '12a See instructions for box 12', '12b', '12c', '12d', each with a vertical 'Code' rail; the register variant prints a single column headed '12 See Instrs. for Box 12' with one code letter and amount per line. One row per printed code entry, in print order; null if this copy prints no Box 12 entries.

12 Box 12 coded amounts

'13 Statutory employee' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Statutory employee

'Retirement plan' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Retirement plan

'Third-party sick pay' checkbox in the box-13 grid. Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Third-party sick pay

'Subtotal' checkbox in the box-13 grid (register variant only). Two-state policy: true ONLY if a mark is printed inside the box; false otherwise (unmarked, or this checkbox not printed on this copy). Never return null for this field.

13 Subtotal (register variant only)

Box '14 Other' — employer-defined deductions and benefits, e.g. RISDI on this wave. One row per printed description and amount pair, in print order; null if box 14 is blank.

14 Other

The first printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 1

The second printed entry row of boxes '15 State' through '20 Locality name'. Null when this row is entirely blank or not printed.

State/Local Row 2

Box 'd Control number' - the FIRST printed line only (e.g. '0012-0012N426'). Verbatim.

Control Number Line 1

Box 'd Control number' - the SECOND printed line only (e.g. '0000000165-ELECTR'), the register sequence/type line. Verbatim; null if the box prints a single line.

Control Number Line 2

Form W-2 Wage and Tax Statement (2020)

RISDI

* **b Employer's identification number**: 05-0517079

* **2 Federal income tax withheld**: 4362.13

* **4 Social security tax withheld**: 2736.92

RISDI