{
    "document_id": 10813,
    "filename": "5169.pdf",
    "engine": "paddleocr_vl",
    "source_run_id": 10924,
    "generated_at": "2026-10-27T00:59:45+00:00",
    "page_count": 1,
    "counts_by_type": {
        "figure": 2,
        "footer": 1,
        "form_field": 2,
        "heading": 1,
        "text": 7,
        "title": 1
    },
    "timings": {
        "total_ms": 5642,
        "structure_ms": 313,
        "text_layer_ms": 10,
        "build_ms": 1
    },
    "pages": [
        {
            "document_id": 10813,
            "page": 1,
            "width": 612,
            "height": 792,
            "rotation": 0,
            "pipeline_version": "paddleocr-vl-1.6+paul-48",
            "width_pt": 612,
            "height_pt": 792,
            "engine": "paddleocr_vl",
            "source_run_id": 10924,
            "item_count": 14,
            "counts_by_type": {
                "figure": 2,
                "footer": 1,
                "form_field": 2,
                "heading": 1,
                "text": 7,
                "title": 1
            },
            "build_ms": 1,
            "items": [
                {
                    "id": "p1.1",
                    "order": 1,
                    "type": "figure",
                    "bbox": {
                        "l": 37.92,
                        "t": 734.4,
                        "r": 103.92,
                        "b": 702
                    },
                    "text": "",
                    "attrs": {
                        "role": "page_header",
                        "block_label": "header_image",
                        "embedded_text": "Precinct Official's Initials"
                    },
                    "reading_order": 0
                },
                {
                    "id": "p1.2",
                    "order": 2,
                    "type": "figure",
                    "bbox": {
                        "l": 446.88,
                        "t": 756.72,
                        "r": 563.76,
                        "b": 650.88
                    },
                    "text": "",
                    "attrs": {
                        "role": "page_header",
                        "block_label": "header_image",
                        "embedded_text": "T"
                    },
                    "reading_order": 1
                },
                {
                    "id": "p1.3",
                    "order": 3,
                    "type": "text",
                    "bbox": {
                        "l": 227.04,
                        "t": 750.96,
                        "r": 388.8,
                        "b": 660
                    },
                    "text": "OFFICIAL BALLOT\nSpecial Election\nDubuque County, Iowa\nTuesday, March 29, 2022\n1",
                    "reading_order": 2
                },
                {
                    "id": "p1.4",
                    "order": 4,
                    "type": "heading",
                    "bbox": {
                        "l": 24.24,
                        "t": 638.4,
                        "r": 189.6,
                        "b": 622.08
                    },
                    "text": "INSTRUCTIONS TO VOTERS",
                    "attrs": {
                        "block_label": "paragraph_title"
                    },
                    "level": 3,
                    "reading_order": 3
                },
                {
                    "id": "p1.5",
                    "order": 5,
                    "type": "text",
                    "bbox": {
                        "l": 23.28,
                        "t": 608.16,
                        "r": 202.08,
                        "b": 582
                    },
                    "text": "Using blue or black ink, completely fill in the oval next to your choice like this: 🌐",
                    "reading_order": 4
                },
                {
                    "id": "p1.6",
                    "order": 6,
                    "type": "text",
                    "bbox": {
                        "l": 5.76,
                        "t": 573.6,
                        "r": 195.84,
                        "b": 535.2
                    },
                    "text": "Write-in: To vote for a valid write-in candidate, write the person's name on the line provided and darken the oval.",
                    "reading_order": 5
                },
                {
                    "id": "p1.7",
                    "order": 7,
                    "type": "title",
                    "bbox": {
                        "l": 6,
                        "t": 527.04,
                        "r": 191.04,
                        "b": 490.56
                    },
                    "text": "Do not cross out. If you change your mind, exchange your ballot for a new one.",
                    "level": 2,
                    "reading_order": 6
                },
                {
                    "id": "p1.8",
                    "order": 8,
                    "type": "text",
                    "bbox": {
                        "l": 23.76,
                        "t": 475.92,
                        "r": 112.56,
                        "b": 458.88
                    },
                    "text": "City of Dubuque",
                    "reading_order": 7
                },
                {
                    "id": "p1.9",
                    "order": 9,
                    "type": "text",
                    "bbox": {
                        "l": 23.28,
                        "t": 450,
                        "r": 165.36,
                        "b": 422.4
                    },
                    "text": "For Council - Ward Four\nTo Fill a Vacancy",
                    "reading_order": 8
                },
                {
                    "id": "p1.10",
                    "order": 10,
                    "type": "text",
                    "bbox": {
                        "l": 23.04,
                        "t": 408.96,
                        "r": 153.6,
                        "b": 347.04
                    },
                    "text": "Vote for no more than One\n○ Katy Wethal\n○ Carla Anderson\nO",
                    "children": [
                        {
                            "id": "p1.10.1",
                            "order": 11,
                            "type": "form_field",
                            "bbox": {
                                "l": 23.04,
                                "t": 393.48,
                                "r": 35.04,
                                "b": 381.48
                            },
                            "text": "",
                            "attrs": {
                                "field_kind": "radio",
                                "label": "Katy Wethal",
                                "source": "glyph_estimate",
                                "bbox_estimated": true,
                                "label_source": "parent_text",
                                "label_ref": "p1.11",
                                "text_offset": 26,
                                "text_span": 1
                            },
                            "reading_order": 0
                        },
                        {
                            "id": "p1.10.2",
                            "order": 12,
                            "type": "form_field",
                            "bbox": {
                                "l": 23.04,
                                "t": 378,
                                "r": 35.04,
                                "b": 366
                            },
                            "text": "",
                            "attrs": {
                                "field_kind": "radio",
                                "label": "Carla Anderson",
                                "source": "glyph_estimate",
                                "bbox_estimated": true,
                                "label_source": "parent_text",
                                "label_ref": "p1.11",
                                "text_offset": 40,
                                "text_span": 1
                            },
                            "reading_order": 1
                        }
                    ],
                    "reading_order": 9
                },
                {
                    "id": "p1.11",
                    "order": 13,
                    "type": "text",
                    "bbox": {
                        "l": 42.96,
                        "t": 335.28,
                        "r": 126.24,
                        "b": 323.04
                    },
                    "text": "(Write-in vote, if any)",
                    "reading_order": 10
                },
                {
                    "id": "p1.12",
                    "order": 14,
                    "type": "footer",
                    "bbox": {
                        "l": 218.4,
                        "t": 69.12,
                        "r": 230.88,
                        "b": 54.96
                    },
                    "text": "-",
                    "attrs": {
                        "block_label": "footer"
                    },
                    "reading_order": 11
                }
            ]
        }
    ]
}