← Paul Test
doc267 b16c09c9-6c97-4a0b-8e14-cf52b3689cf7_Recreation-Guide-Summer-Spring-2026-artifacted.pdf
⬇ Export JSONBadge numbers are the reading order (depth-first). Nested children have dashed borders; grandchildren dotted. Hover a box for its type, text and attributes.
Page 1
5 item(s)
JSON
caption (1)
figure (1)
heading (1)
text (1)
title (1)
1 · HEADING
2 · FIGURE
3 · TITLE
4 · TEXT
5 · CAPTION
AI review
(claude-opus-5, conf 70%)
—
Page 1 JSON
{
"document_id": 267,
"page": 1,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 5,
"counts_by_type": {
"caption": 1,
"figure": 1,
"heading": 1,
"text": 1,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p1.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 86.88,
"t": 752.88,
"r": 521.76,
"b": 683.76
},
"text": "PASADENA PARKS · RECREATION · COMMUNITY SERVICES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p1.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 0,
"t": 656.88,
"r": 611.04,
"b": 107.52
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p1.3",
"order": 3,
"type": "title",
"bbox": {
"l": 177.36,
"t": 108.72,
"r": 458.4,
"b": 73.2
},
"text": "SPRING/SUMMER 2026"
},
{
"id": "p1.4",
"order": 4,
"type": "text",
"bbox": {
"l": 25.92,
"t": 62.16,
"r": 587.04,
"b": 22.08
},
"text": "RECREATION PROGRAM GUIDE\nCITYOFPASADENA.NET/PARKS-AND-REC | f @PASADENAPARKSANDREC"
},
{
"id": "p1.5",
"order": 5,
"type": "caption",
"bbox": {
"l": 496.8,
"t": 95.28,
"r": 563.76,
"b": 80.64
},
"text": "SCAN QR CODE",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "footnote",
"ai_reason": "'SCAN QR CODE' is a label/caption for the QR code graphic, not a footnote."
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 76,
"added": 0,
"retyped": 1
}
}
Page 2
14 item(s)
JSON
figure (6)
text (7)
title (1)
1 · FIGURE
2 · TITLE
3 · FIGURE
4 · FIGURE
5 · TEXT
6 · FIGURE
7 · TEXT
8 · FIGURE
9 ·✨
10 · TEXT
11 · TEXT
12 · FIGURE
13
14 · TEXT
AI review
(claude-opus-5, conf 78%)
— Most of the poster's text is captured, but the main title is mis-transcribed ("Egg Boul" instead of "Egg Bowl"), the info paragraph is truncated, several figure boxes have impossible/out-of-page coordinates (>100%), and reading order/nesting of the logo captions is inconsistent.
major
text_mismatch #3: Title transcribed as "Egg Boul"; the image reads "Egg Bowl".
major
text_mismatch #12: Paragraph text is truncated: should read "For more information, please visit CityOfPasadena.net/Parks-And-Rec or call (626) 744-7311." The phone number ending and period are cut off.
major
wrong_bbox #2: Bounding box (102,2,199,78) lies entirely off the page (left >100%); the box is invalid.
major
wrong_bbox #15: Bounding box (164,92,196,97) is entirely off-page (left/right >100%); invalid figure box.
minor
nesting #16: "AMERICA'S STADIUM" is part of the Rose Bowl logo (figure #9 / with #10) but is emitted as a top-level item after the Pasadena logo, breaking reading order and nesting consistency.
minor
reading_order #16: Reading order places #16 (top of page area ~76%) after #13/#14; the Rose Bowl logo caption should follow #10 within the same logo group.
minor
other #5: Several figure items (#4, #5, #7, #9, #13) appear to be duplicate/overlapping wrappers around text blocks rather than real graphics, adding noise.
Page 2 JSON
{
"document_id": 267,
"page": 2,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 14,
"counts_by_type": {
"figure": 6,
"text": 7,
"title": 1
},
"build_ms": 6,
"items": [
{
"id": "p2.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 425.248,
"t": 793.993,
"r": 457.2663,
"b": 682.93
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p2.2",
"order": 2,
"type": "title",
"bbox": {
"l": 62.88,
"t": 745.2,
"r": 548.88,
"b": 576.96
},
"text": "Egg Boul",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "\"Egg Bowl\" is the large display title of the flyer, not body text."
}
},
{
"id": "p2.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 61.292,
"t": 717.697,
"r": 567.5811,
"b": 552.603
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p2.4",
"order": 4,
"type": "figure",
"bbox": {
"l": 181.109,
"t": 571.866,
"r": 458.267,
"b": 426.783
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p2.5",
"order": 5,
"type": "text",
"bbox": {
"l": 183.84,
"t": 561.6,
"r": 440.16,
"b": 508.32
},
"text": "SAVE THE DATE"
},
{
"id": "p2.6",
"order": 6,
"type": "figure",
"bbox": {
"l": 31.0229,
"t": 498.8246,
"r": 552.3209,
"b": 399.768
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p2.7",
"order": 7,
"type": "text",
"bbox": {
"l": 33.84,
"t": 487.92,
"r": 534.24,
"b": 425.04
},
"text": "SATURDAY, APRIL 4, 2026"
},
{
"id": "p2.8",
"order": 8,
"type": "figure",
"bbox": {
"l": 23.0183,
"t": 413.776,
"r": 602.3493,
"b": 170.637
},
"text": "",
"attrs": {
"source": "pdf_image"
},
"children": [
{
"type": "text",
"bbox": {
"l": 358.02,
"t": 237.6,
"r": 498.78,
"b": 186.12
},
"text": "Rose Bowl",
"attrs": {
"source": "ai_vision",
"reason": "Rose Bowl logo wordmark text is visible but not captured by any text item."
},
"children": [],
"order": 9,
"id": "p2.8.1"
}
]
},
{
"id": "p2.9",
"order": 10,
"type": "text",
"bbox": {
"l": 30.96,
"t": 407.76,
"r": 583.2,
"b": 370.08
},
"text": "10 A.M. TO 1 P.M. // FREE ADMISSION // ROSE BOWL STADIUM"
},
{
"id": "p2.10",
"order": 11,
"type": "text",
"bbox": {
"l": 37.68,
"t": 344.64,
"r": 575.52,
"b": 293.52
},
"text": "For more information, please visit\nCityOfPasadena.net/Parks-And-Rec or call (626) 744-7311."
},
{
"id": "p2.11",
"order": 12,
"type": "figure",
"bbox": {
"l": 0,
"t": 259.92,
"r": 612,
"b": 0
},
"text": "",
"attrs": {
"block_label": "image",
"embedded_text": "2 Spring/Summer I 2026 Recreation Guide"
},
"children": [
{
"id": "p2.11.1",
"order": 13,
"type": "text",
"bbox": {
"l": 140.88,
"t": 204.24,
"r": 261.12,
"b": 175.68
},
"text": "PASADENA\nPARKS · RECREATION · COMMUNITY SERVICES"
}
]
},
{
"id": "p2.12",
"order": 14,
"type": "text",
"bbox": {
"l": 358.8,
"t": 190.08,
"r": 493.2,
"b": 174.96
},
"text": "AMERICA'S STADIUM",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "footnote",
"ai_reason": "\"AMERICA'S STADIUM\" is part of the Rose Bowl logo lockup, not a footnote."
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 1,
"retyped": 2
}
}
Page 3
10 item(s)
JSON
figure (3)
footer (3)
heading (1)
text (3)
1 · FIGURE
2 · HEADING
3 · TEXT
4 · TEXT
5 · TEXT
6 · FIGURE
7 · FIGURE
8 · FOOTER
9 · FOOTER
10 · FOOTER
AI review
(claude-opus-5, conf 78%)
— All visible text content is captured with correct types and mostly correct reading order, but the extraction contains numerous phantom figure items with negative/off-page coordinates, a duplicated logo figure, and the "Presented By" line is ordered after the logos and typed as a footer.
major
wrong_bbox #2: Figure box is entirely off-page (left/right negative: -31 to -25). Phantom item with no visible counterpart.
major
wrong_bbox #5: Figure bbox (-90,9,-7,30) lies completely off the page; phantom item.
major
wrong_bbox #7: Figure bbox (-70,28,-25,46) is entirely off-page; phantom item.
major
wrong_bbox #8: Figure bbox (-95,37,-10,50) is entirely off-page; phantom item.
major
wrong_bbox #10: Figure bbox (-96,48,-2,78) is entirely off-page; phantom item.
major
wrong_bbox #12: Figure bbox (-58,72,-42,88) is entirely off-page; phantom item.
major
wrong_bbox #14: Figure bbox (-103,77,3,111) is mostly off-page and extends past the bottom (111%); phantom item.
minor
other #18: Duplicate of item #15 (Pasadena Parks logo at roughly the same coordinates); one should be removed.
minor
reading_order #17: "Presented By" (top ~88%) appears above the two logos (#15, #16 at ~91-97%) but is ordered after them.
minor
wrong_type #17: "Presented By" is a caption/label for the sponsor logos rather than a page footer.
Page 3 JSON
{
"document_id": 267,
"page": 3,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 10,
"counts_by_type": {
"figure": 3,
"footer": 3,
"heading": 1,
"text": 3
},
"build_ms": 0,
"items": [
{
"id": "p3.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 9.7584,
"t": 777.358,
"r": 603.4334,
"b": 176.489
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p3.2",
"order": 2,
"type": "heading",
"bbox": {
"l": 53.28,
"t": 735.36,
"r": 559.44,
"b": 649.92
},
"text": "PASADENA CELEBRATES\nOlder Americans Month",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p3.3",
"order": 3,
"type": "text",
"bbox": {
"l": 96.72,
"t": 616.08,
"r": 512.16,
"b": 459.84
},
"text": "Wednesday, May 20, 2026\n10 a.m.-1 p.m.\nVictory Park\n2575 Paloma St., Pasadena, CA 91107"
},
{
"id": "p3.4",
"order": 4,
"type": "text",
"bbox": {
"l": 97.2,
"t": 411.12,
"r": 515.76,
"b": 270.24
},
"text": "Back for a fifth year, the City of Pasadena Parks, Recreation and Community Services Department, Senior Commission and Pasadena Village invite you to enjoy a day of presentations, food, and community resources."
},
{
"id": "p3.5",
"order": 5,
"type": "text",
"bbox": {
"l": 36,
"t": 186.96,
"r": 577.2,
"b": 134.16
},
"text": "FREE AND OPEN TO ALL!\nFor more information, please visit CityOfPasadena.net/OAM or call (626) 744-7300."
},
{
"id": "p3.6",
"order": 6,
"type": "figure",
"bbox": {
"l": 0,
"t": 144,
"r": 10,
"b": 124
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p3.7",
"order": 7,
"type": "figure",
"bbox": {
"l": 390.412,
"t": 64.9883,
"r": 587.335,
"b": 24.5381
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p3.8",
"order": 8,
"type": "footer",
"bbox": {
"l": 29.76,
"t": 69.12,
"r": 221.28,
"b": 28.8
},
"text": "",
"attrs": {
"block_label": "footer_image"
}
},
{
"id": "p3.9",
"order": 9,
"type": "footer",
"bbox": {
"l": 266.16,
"t": 96,
"r": 345.84,
"b": 77.52
},
"text": "Presented By",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p3.10",
"order": 10,
"type": "footer",
"bbox": {
"l": 393.36,
"t": 62.88,
"r": 583.68,
"b": 30.48
},
"text": "",
"attrs": {
"block_label": "footer_image"
}
}
]
}
Page 4
9 item(s)
JSON
figure (2)
footer (1)
heading (1)
text (5)
1 · TEXT
2 · FIGURE
3 · FIGURE
4 · HEADING
5 · TEXT
6 · TEXT
7 · TEXT
8 · TEXT
9 · FOOTER
AI review: page OK
(claude-opus-5, conf 80%)
— All visible content is captured in a sensible reading order with correct types; only minor issues remain (a seemingly truncated paragraph in #5 and loose/duplicated figure boxes for the logo).
minor
other #5: Text appears truncated with an ellipsis ('unforget…'); the full line reads 'diversity, and unforgettable performances to Memorial Park.'
minor
wrong_bbox #2: Figure box (5,28,94,72) is far wider than the actual rainbow logo graphic; item #3 seems to be a duplicate figure covering the same artwork.
Page 4 JSON
{
"document_id": 267,
"page": 4,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 9,
"counts_by_type": {
"figure": 2,
"footer": 1,
"heading": 1,
"text": 5
},
"build_ms": 0,
"items": [
{
"id": "p4.1",
"order": 1,
"type": "text",
"bbox": {
"l": 168.24,
"t": 738.48,
"r": 433.44,
"b": 609.12
},
"text": "You voted.\nYou made it happen.\nTen nights of music."
},
{
"id": "p4.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 30.5716,
"t": 568.4081,
"r": 574.3486,
"b": 225.051
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p4.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 193.92,
"t": 555.36,
"r": 410.88,
"b": 408.96
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p4.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 91.68,
"t": 388.08,
"r": 512.16,
"b": 253.44
},
"text": "LEVITT VIBE\nPASADENA\nmusic series",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p4.5",
"order": 5,
"type": "text",
"bbox": {
"l": 65.04,
"t": 190.08,
"r": 538.56,
"b": 152.88
},
"text": "This summer, the Levitt Vibe Pasadena Music Series brings energy, diversity, and unforgettable performances to Memorial Park."
},
{
"id": "p4.6",
"order": 6,
"type": "text",
"bbox": {
"l": 142.08,
"t": 136.56,
"r": 461.28,
"b": 118.56
},
"text": "Ten concerts. One community. Endless Vibes."
},
{
"id": "p4.7",
"order": 7,
"type": "text",
"bbox": {
"l": 225.6,
"t": 101.76,
"r": 378.48,
"b": 82.8
},
"text": "Lineup coming soon."
},
{
"id": "p4.8",
"order": 8,
"type": "text",
"bbox": {
"l": 155.04,
"t": 62.16,
"r": 448.08,
"b": 48.48
},
"text": "Sponsored by the Pasadena Recreation and Parks Foundation."
},
{
"id": "p4.9",
"order": 9,
"type": "footer",
"bbox": {
"l": 32.64,
"t": 19.92,
"r": 212.88,
"b": 7.68
},
"text": "4 Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
]
}
Page 5
16 item(s)
JSON
figure (7)
footer (2)
text (5)
title (2)
1 · FIGURE
2 · TITLE
3 · TITLE
4 · TEXT
5 · TEXT
6 · TEXT
7 · TEXT
8 · TEXT
9 · FIGURE
10 · FIGURE
11 · FIGURE
12 · FIGURE
13 · FOOTER
14 · FOOTER
15 · FIGURE
16 · FIGURE
AI review
(claude-opus-5, conf 78%)
— The main text content of the flyer is captured accurately and in correct reading order, but the bottom logo strip is handled inconsistently: the Rose Bowl logo is duplicated as both a figure (#9) and footers (#13/#14), and reading order of the logo row is scrambled (rightmost-ish logo before the leftmost ones).
minor
reading_order #9: The Rose Bowl logo (#9, x≈54-71%) is emitted before the leftmost logos (#10 at x≈2%, #11, #12), breaking left-to-right order of the footer logo row.
minor
other #13: Duplicate coverage of the Rose Bowl logo: #9 (figure), #13 (empty footer) and #14 (footer with 'AMERICA'S STADIUM') all cover the same region; #13 is an empty duplicate.
minor
wrong_type #13: Logo images typed as 'footer' (#13, #14) while the sibling logos are typed 'figure' — inconsistent typing of the same visual element class.
Page 5 JSON
{
"document_id": 267,
"page": 5,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 16,
"counts_by_type": {
"figure": 7,
"footer": 2,
"text": 5,
"title": 2
},
"build_ms": 0,
"items": [
{
"id": "p5.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 167.52,
"t": 766.56,
"r": 445.68,
"b": 723.6
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p5.2",
"order": 2,
"type": "title",
"bbox": {
"l": 158.64,
"t": 702.24,
"r": 452.64,
"b": 652.56
},
"text": "PASADENA",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "This is the first line of the poster's main title in the largest type, not body text."
}
},
{
"id": "p5.3",
"order": 3,
"type": "title",
"bbox": {
"l": 43.44,
"t": 635.76,
"r": 565.2,
"b": 514.56
},
"text": "MEMORIAL DAY\nCOMMEMORATION",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "'MEMORIAL DAY COMMEMORATION' is the poster's main title, rendered in the largest display type, not plain text."
}
},
{
"id": "p5.4",
"order": 4,
"type": "text",
"bbox": {
"l": 22.08,
"t": 461.52,
"r": 587.28,
"b": 414.72
},
"text": "Monday, May 25, 2026 | 10:30 a.m."
},
{
"id": "p5.5",
"order": 5,
"type": "text",
"bbox": {
"l": 159.12,
"t": 394.32,
"r": 449.04,
"b": 322.32
},
"text": "MEMORIAL PARK\n85 E. Holly St."
},
{
"id": "p5.6",
"order": 6,
"type": "text",
"bbox": {
"l": 51.36,
"t": 296.64,
"r": 556.32,
"b": 219.12
},
"text": "Join us for this solemn ceremony as we will honor and remember those men and women who made the ultimate sacrifice for our country."
},
{
"id": "p5.7",
"order": 7,
"type": "text",
"bbox": {
"l": 88.8,
"t": 205.92,
"r": 522.96,
"b": 180.96
},
"text": "For more information please call (626) 744-7311."
},
{
"id": "p5.8",
"order": 8,
"type": "text",
"bbox": {
"l": 15.36,
"t": 150.72,
"r": 596.88,
"b": 112.56
},
"text": "For accessibility information or to request an accommodation, please contact (626) 744-7311 or CSC@CityOfPasadena.net. Providing at least 72 hours advance notice will help ensure availability."
},
{
"id": "p5.9",
"order": 9,
"type": "figure",
"bbox": {
"l": 332.814,
"t": 63.287,
"r": 437.164,
"b": 7.0601
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p5.10",
"order": 10,
"type": "figure",
"bbox": {
"l": 12,
"t": 54.96,
"r": 101.76,
"b": 15.6
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "This is the DAR logo image, not footer text."
}
},
{
"id": "p5.11",
"order": 11,
"type": "figure",
"bbox": {
"l": 116.88,
"t": 57.36,
"r": 159.36,
"b": 16.32
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "This is the Vietnam Veterans of America logo image, not footer text."
}
},
{
"id": "p5.12",
"order": 12,
"type": "figure",
"bbox": {
"l": 170.16,
"t": 47.76,
"r": 318.72,
"b": 21.12
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "This is the City of Pasadena logo image, not footer text."
}
},
{
"id": "p5.13",
"order": 13,
"type": "footer",
"bbox": {
"l": 335.52,
"t": 59.76,
"r": 435.36,
"b": 15.12
},
"text": "",
"attrs": {
"block_label": "footer_image"
}
},
{
"id": "p5.14",
"order": 14,
"type": "footer",
"bbox": {
"l": 336,
"t": 20.64,
"r": 434.64,
"b": 10.56
},
"text": "AMERICA'S STADIUM",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p5.15",
"order": 15,
"type": "figure",
"bbox": {
"l": 456.72,
"t": 59.28,
"r": 540,
"b": 14.64
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "This is the PMA logo image, not footer text."
}
},
{
"id": "p5.16",
"order": 16,
"type": "figure",
"bbox": {
"l": 546.72,
"t": 59.04,
"r": 590.64,
"b": 14.4
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "This is the American Legion logo image, not footer text."
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 7
}
}
Page 6
26 item(s)
JSON
figure (2)
heading (1)
list (1)
table (1)
table_cell (17)
text (4)
1 · FIGURE
2 · TABLE
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 · TEXT
21 · TEXT
22 · HEADING
23 · LIST
24 · FIGURE
25 · TEXT
26 · TEXT
Table integrity:
3 of 17 cells don't match the text layer at their coordinates.
r1c1 (0%): “Miguel Marquez”
r4c0 (25%): “The City of Pasadena City Council Meets Mondays at 5:00 p.m…”
r8c0 (47%): “Meets the second Tuesday of each month at 6:30 p.m. at Jack…”
AI review
(claude-opus-5, conf 70%)
—
Page 6 JSON
{
"document_id": 267,
"page": 6,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 26,
"counts_by_type": {
"figure": 2,
"heading": 1,
"list": 1,
"table": 1,
"table_cell": 17,
"text": 4
},
"build_ms": 11,
"items": [
{
"id": "p6.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 319,
"b": 0
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p6.2",
"order": 2,
"type": "table",
"bbox": {
"l": 19.92,
"t": 777.12,
"r": 306.24,
"b": 9.149999999999977
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 14,
"n_cols": 2,
"integrity": {
"cells_checked": 17,
"cells_flagged": 3,
"flags": [
{
"row": 1,
"col": 1,
"coverage": 0,
"text": "Miguel Marquez"
},
{
"row": 4,
"col": 0,
"coverage": 0.25,
"text": "The City of Pasadena City Council Meets Mondays at 5:00 p.m…"
},
{
"row": 8,
"col": 0,
"coverage": 0.47,
"text": "Meets the second Tuesday of each month at 6:30 p.m. at Jack…"
}
]
}
},
"children": [
{
"id": "p6.2.1",
"order": 3,
"type": "table_cell",
"bbox": {
"l": 67.96012,
"t": 716.59,
"r": 127.720191,
"b": 695.15
},
"text": "MAYOR\nVICE MAYOR",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.2",
"order": 4,
"type": "table_cell",
"bbox": {
"l": 137.719745,
"t": 716.59,
"r": 211.198954,
"b": 695.15
},
"text": "Victor M. Gordo\nJessica Rivas",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.3",
"order": 5,
"type": "table_cell",
"bbox": {
"l": 54.71992,
"t": 694.59,
"r": 128.65688,
"b": 684.15
},
"text": "CITY MANAGER",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p6.2.4",
"order": 6,
"type": "table_cell",
"bbox": {
"l": 163.08,
"t": 718.3015,
"r": 306.24,
"b": 688.8923
},
"text": "Miguel Marquez",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p6.2.5",
"order": 7,
"type": "table_cell",
"bbox": {
"l": 99.04062,
"t": 672.59,
"r": 219.679296,
"b": 662.15
},
"text": "CITY COUNCIL MEMBERS",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p6.2.6",
"order": 8,
"type": "table_cell",
"bbox": {
"l": 84.83012,
"t": 661.59,
"r": 127.72092,
"b": 585.15
},
"text": "District 1\nDistrict 2\nDistrict 3\nDistrict 4\nDistrict 5\nDistrict 6\nDistrict 7",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.7",
"order": 9,
"type": "table_cell",
"bbox": {
"l": 137.71973,
"t": 661.59,
"r": 211.260373,
"b": 585.15
},
"text": "Tyron Hampton\nRick Cole\nJustin Jones\nGene Masuda\nJessica Rivas\nSteve Madison\nJason Lyon",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.8",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 19.92,
"t": 453.6185,
"r": 306.24,
"b": 424.2092
},
"text": "The City of Pasadena City Council Meets Mondays at 5:00 p.m. at City Hall Council Chambers",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 2
}
},
{
"id": "p6.2.9",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 50.18672,
"t": 527.0899999999999,
"r": 268.533576,
"b": 483.65
},
"text": "RECREATION AND PARKS COMMISSION\\nTerri Ashley-MacQuarrie, Chair\\nMeets the first Tuesday of each month at 6:00 p.m. at City Yards (Public Works Building)",
"attrs": {
"row": 5,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p6.2.10",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 45.8164,
"t": 458.59,
"r": 273.143209,
"b": 410.65
},
"text": "HUMAN SERVICES COMMISSION\\nRabbi Joshua Levine Grater, Chair\nMeets the second Wednesday of each month at 6:00 p.m. at Jackie Robinson Community Center",
"attrs": {
"row": 6,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.11",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 93.8758,
"t": 383.59,
"r": 224.845241,
"b": 362.15
},
"text": "NORTHWEST COMMISSION\\nChristian Jones, Chair",
"attrs": {
"row": 7,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p6.2.12",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 19.92,
"t": 306.5723,
"r": 306.24,
"b": 277.1631
},
"text": "Meets the second Tuesday of each month at 6:30 p.m. at Jackie Robinson Community Center",
"attrs": {
"row": 8,
"col": 0,
"rowspan": 1,
"colspan": 2
}
},
{
"id": "p6.2.13",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 42.61168,
"t": 313.09,
"r": 276.347862,
"b": 265.15
},
"text": "SENIOR COMMISSION\\nDawneen Lorance, Chair\nMeets the second Tuesday of each month at 2:00 p.m. at Jackie Robinson Community Center",
"attrs": {
"row": 9,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.14",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 45.81636,
"t": 240.09000000000003,
"r": 273.143169,
"b": 192.14999999999998
},
"text": "COMMISSION ON THE STATUS OF WOMEN\\nMaura Harrington Roggero, Chair\nMeets the first Wednesday of each month at 6:00 p.m. at Jackie Robinson Community Center",
"attrs": {
"row": 10,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.15",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 40.12656,
"t": 169.59000000000003,
"r": 278.833063,
"b": 121.64999999999998
},
"text": "HUMAN RELATIONS COMMISSION\\nJonathan Horton, Chair\nMeets the first Tuesday of each month at 6:30 p.m. at Jackie Robinson Community Center",
"attrs": {
"row": 11,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p6.2.16",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 20.25116,
"t": 96.59000000000003,
"r": 298.468778,
"b": 53.14999999999998
},
"text": "HAHAMONGNA WATERSHED PARK ADVISORY COMMITTEE\\nHoward Tan, Chair\\nMeets fourth Tuesday of the odd-numbered months at 6:00 p.m. at City Yards (Public Works Building)",
"attrs": {
"row": 12,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p6.2.17",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 25.20626,
"t": 30.590000000000032,
"r": 293.513056,
"b": 9.149999999999977
},
"text": "Visit\nCityOfPasadena.net/Commissions for more information.",
"attrs": {
"row": 13,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p6.3",
"order": 20,
"type": "text",
"bbox": {
"l": 23.28,
"t": 20.88,
"r": 295.44,
"b": 7.92
},
"text": "CityOfPasadena.net/Commissions for more information."
},
{
"id": "p6.4",
"order": 21,
"type": "text",
"bbox": {
"l": 330.48,
"t": 774.48,
"r": 587.04,
"b": 708
},
"text": "Please note the Parks, Recreation, and Community Services Department is closed on the following days in observance of City holidays:\nMemorial Day Monday, May 25, 2026\nIndependence Day Friday, July 3, 2026"
},
{
"id": "p6.5",
"order": 22,
"type": "heading",
"bbox": {
"l": 331.44,
"t": 677.04,
"r": 445.92,
"b": 652.8
},
"text": "ACTIVITY GUIDE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p6.6",
"order": 23,
"type": "list",
"bbox": {
"l": 329.76,
"t": 649.68,
"r": 546.48,
"b": 319.44
},
"text": "7 REGISTRATION INFORMATION \n8 SPECIAL EVENTS \n12 SUMMER CAMPS \n14 AQUATICS \n18 YOUTH \n24 TEEN \n27 ADULT \n29 OLDER ADULT \n35 COMMUNITY SERVICES \n38 LOCATIONS \n40 RESERVATIONS \n41 FARMERS MARKET \n42 PARKS AFTER DARK",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "The activity guide contents is a list of page-number/section rows, not a single text block."
}
},
{
"id": "p6.7",
"order": 24,
"type": "figure",
"bbox": {
"l": 331.92,
"t": 292.8,
"r": 417.6,
"b": 180.96
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p6.8",
"order": 25,
"type": "text",
"bbox": {
"l": 423.6,
"t": 294.96,
"r": 567.12,
"b": 181.2
},
"text": "PASSPORT TO FUN!\nYOUTH SCHOLARSHIP PROGRAM"
},
{
"id": "p6.9",
"order": 26,
"type": "text",
"bbox": {
"l": 328.32,
"t": 162.24,
"r": 578.88,
"b": 40.08
},
"text": "The City provides scholarships to eligible participants ages 18 and under who live in Pasadena or attend a Pasadena Unified School District school. Scholarships are approved based on available funding, the total gross family income, number of members in the household, and guidelines established by the Community Development Block Grant (CDBG) program for Housing and other programs for individuals and families of very-low to extremely-low income. For more information on the Passport To Fun Youth Scholarship Program, contact (626) 744-6500 or email parksandrec@cityofpasadena.net."
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 62,
"added": 0,
"retyped": 1
}
}
Page 7
20 item(s)
JSON
caption (1)
figure (2)
heading (4)
text (12)
title (1)
1 · TITLE
2 · FIGURE
3 · TEXT
4 · TEXT
5 · TEXT
6 · TEXT
7 · TEXT
8 · TEXT
9 · TEXT
10 · HEADING
11 · TEXT
12 · HEADING
13 · HEADING
14 · FIGURE
15 · HEADING
16 · TEXT
17 · TEXT
18 · TEXT
19 · TEXT
20 · CAPTION
AI review
(claude-opus-5, conf 70%)
—
Page 7 JSON
{
"document_id": 267,
"page": 7,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 20,
"counts_by_type": {
"caption": 1,
"figure": 2,
"heading": 4,
"text": 12,
"title": 1
},
"build_ms": 2,
"items": [
{
"id": "p7.1",
"order": 1,
"type": "title",
"bbox": {
"l": 46.32,
"t": 770.88,
"r": 565.92,
"b": 722.4
},
"text": "A MESSAGE FROM THE DIRECTOR",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p7.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 45.12,
"t": 696,
"r": 173.28,
"b": 537.36
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p7.3",
"order": 3,
"type": "text",
"bbox": {
"l": 180.72,
"t": 708.24,
"r": 565.68,
"b": 667.92
},
"text": "Parks and recreation areas are a vital part of a thriving community. They serve to bring the community together, enhance health and wellness, and provide opportunities for people of all ages to come together and grow. The Parks, Recreation, and Community Services Department is dedicated to offering welcoming programs and spaces that keep our community active and connected."
},
{
"id": "p7.4",
"order": 4,
"type": "text",
"bbox": {
"l": 180.96,
"t": 660.72,
"r": 571.68,
"b": 610.32
},
"text": "We are proud to offer inclusive recreation classes for all ages, summer day camps for youth, aquatics programming, and numerous events through our Parks After Dark program, which will run July 9 – August 8. Additionally, we look forward to the return of the Levitt Concert Series to Memorial Park along with a variety of special events that honor cultural heritage, champion diversity, and embrace our resilient and united community."
},
{
"id": "p7.5",
"order": 5,
"type": "text",
"bbox": {
"l": 180.72,
"t": 603.12,
"r": 570.24,
"b": 552.48
},
"text": "All are invited and encouraged to participate in our programming this spring and summer. From art and music to fitness and team sports, we offer recreation that meets all needs and abilities. Our robust aquatics program offers year-round swim lessons, water exercise, youth swim team, water polo, and more. PRCS facilities and Pasadena Senior Center invite older adults to various exercise, educational, and social activities. Scholarships to participate in some programs are available for those who are eligible."
},
{
"id": "p7.6",
"order": 6,
"type": "text",
"bbox": {
"l": 180.96,
"t": 545.28,
"r": 560.16,
"b": 514.32
},
"text": "We look forward to seeing you enjoying our parks and facilities. Follow us on Facebook and Instagram @PasadenaParksAndRec for the latest information on our events. For assistance, please contact us at ParksAndRec@CityOfPasadena.net, or call (626) 744-4386."
},
{
"id": "p7.7",
"order": 7,
"type": "text",
"bbox": {
"l": 192.96,
"t": 504.96,
"r": 569.52,
"b": 471.84
},
"text": "We are PRCS: Improving Lives through Safe Parks, Programs, and Services"
},
{
"id": "p7.8",
"order": 8,
"type": "text",
"bbox": {
"l": 174.96,
"t": 448.32,
"r": 448.32,
"b": 416.88
},
"text": "REGISTRATION INFORMATION"
},
{
"id": "p7.9",
"order": 9,
"type": "text",
"bbox": {
"l": 161.76,
"t": 408.48,
"r": 460.8,
"b": 351.36
},
"text": "REGISTER ONLINE: CityOfPasadena.net/Reserve"
},
{
"id": "p7.10",
"order": 10,
"type": "heading",
"bbox": {
"l": 233.28,
"t": 340.56,
"r": 375.84,
"b": 314.16
},
"text": "PUSD STUDENTS:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p7.11",
"order": 11,
"type": "text",
"bbox": {
"l": 36,
"t": 312.24,
"r": 558.24,
"b": 261.6
},
"text": "Pasadena Unified School District (PUSD) students who live outside of Pasadena pay the resident fee rate to participate in recreational classes, programs and camps. If your child attends a PUSD school and you do not reside in Pasadena, please contact the Recreation Center listed on the activity prior to registering your child(ren) and provide one of the following proof of enrollment documents to qualify: current student ID badge, current copy of student's report card, enrollment print out, or current communication/letter (i.e. free/reduced lunch approval, enrollment confirmation, etc.) If you have any questions or need more information, please email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p7.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 58.08,
"t": 201.84,
"r": 133.2,
"b": 167.04
},
"text": "Program Title\nDescription",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p7.13",
"order": 13,
"type": "heading",
"bbox": {
"l": 158.16,
"t": 241.2,
"r": 444.24,
"b": 211.68
},
"text": "ACTIVITY GUIDE PROGRAM KEY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p7.14",
"order": 14,
"type": "figure",
"bbox": {
"l": 459.12,
"t": 233.28,
"r": 530.64,
"b": 221.28
},
"text": "□□□□□□□□□",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "This is the dotted decorative border segment of the key box, not text characters."
}
},
{
"id": "p7.15",
"order": 15,
"type": "heading",
"bbox": {
"l": 182.16,
"t": 201.6,
"r": 233.52,
"b": 186.24
},
"text": "BALLET",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p7.16",
"order": 16,
"type": "text",
"bbox": {
"l": 180.96,
"t": 182.16,
"r": 499.92,
"b": 120
},
"text": "Point your toes in the direction of fun! Develop rhythm, strength, and coordination with the fundamentals of ballet movement. Learn the basic ballet positions, jumps, turns, dances, and ballet vocabulary. Students will achieve proper placement and alignment necessary to perform classical ballet. Ballet slippers required."
},
{
"id": "p7.17",
"order": 17,
"type": "text",
"bbox": {
"l": 63.6,
"t": 69.36,
"r": 113.04,
"b": 56.64
},
"text": "Location\nROBINSON PARK RECREATION CENTER\n03/01-04/19 5PM-6PM TUE $45/$90 AGE: 7-12"
},
{
"id": "p7.18",
"order": 18,
"type": "text",
"bbox": {
"l": 180.96,
"t": 78.24,
"r": 438,
"b": 48.72
},
"text": "03/01-04/19 5PM-6PM TUE $45/$90 AGE: 7-12\n\nROBINSON PARK RECREATION CENTER"
},
{
"id": "p7.19",
"order": 19,
"type": "text",
"bbox": {
"l": 78,
"t": 40.32,
"r": 493.2,
"b": 23.28
},
"text": "Program Dates, Time, Day(s), Resident/Non-resident fee, Ages"
},
{
"id": "p7.20",
"order": 20,
"type": "caption",
"bbox": {
"l": 53.28,
"t": 525.36,
"r": 160.56,
"b": 489.6
},
"text": "KOKO PANOSSIAN\nDEPARTMENT DIRECTOR",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "footnote",
"ai_reason": "The text 'KOKO PANOSSIAN / DEPARTMENT DIRECTOR' is a caption under the director's portrait, not a footnote."
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 2
}
}
Page 8
21 item(s)
JSON
figure (4)
heading (4)
text (12)
title (1)
1 · TITLE
2 · FIGURE
3 · HEADING
4 · TEXT
5 · TEXT
6 · TEXT
7 · FIGURE
8 · HEADING
9 · TEXT
10 · TEXT
11 · TEXT
12 · FIGURE
13 · HEADING
14 · TEXT
15 · TEXT
16 · TEXT
17 · FIGURE
18 · HEADING
19 · TEXT
20 · TEXT
21 · TEXT
AI review: page OK
(claude-opus-5, conf 82%)
— All four event blocks (heading, venue/address, date-time, description, photo) are captured with correct types and essentially correct reading order; only minor quibbles about date/time placement and a sliver figure.
minor
reading_order #6: Date/time items (#6, #11, #16, #21) appear after the venue/address lines, but visually they sit on the same line as the event heading; a reader would say them right after the heading. Minor ordering quibble.
minor
other #1: Item #1 is a thin sliver figure at the right page edge (99-100% width), likely page decoration/border rather than content.
Page 8 JSON
{
"document_id": 267,
"page": 8,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 21,
"counts_by_type": {
"figure": 4,
"heading": 4,
"text": 12,
"title": 1
},
"build_ms": 1,
"items": [
{
"id": "p8.1",
"order": 1,
"type": "title",
"bbox": {
"l": 34.8,
"t": 771.6,
"r": 443.04,
"b": 703.2
},
"text": "SPECIAL EVENTS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p8.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 26.4,
"t": 667.68,
"r": 139.44,
"b": 553.92
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p8.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 144.24,
"t": 670.32,
"r": 212.88,
"b": 648.48
},
"text": "EGG BOWL",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p8.4",
"order": 4,
"type": "text",
"bbox": {
"l": 143.76,
"t": 646.32,
"r": 245.28,
"b": 620.4
},
"text": "Rose Bowl Stadium\n1001 Rose Bowl Dr."
},
{
"id": "p8.5",
"order": 5,
"type": "text",
"bbox": {
"l": 452.16,
"t": 669.36,
"r": 557.76,
"b": 647.28
},
"text": "4.4.26 10 AM - 1 PM"
},
{
"id": "p8.6",
"order": 6,
"type": "text",
"bbox": {
"l": 142.08,
"t": 611.04,
"r": 581.76,
"b": 571.68
},
"text": "Join us for a fun-filled day of egg hunts and bunnies at the iconic Rose Bowl Stadium! Enjoy egg-citing activities, lively games, and more! Celebrate the season with family and friends, and create some HOPPY memories!"
},
{
"id": "p8.7",
"order": 7,
"type": "figure",
"bbox": {
"l": 22.56,
"t": 500.4,
"r": 138,
"b": 384.48
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p8.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 144,
"t": 509.04,
"r": 287.52,
"b": 486.72
},
"text": "SENIOR TALENT SHOW",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p8.9",
"order": 9,
"type": "text",
"bbox": {
"l": 144.24,
"t": 484.32,
"r": 329.52,
"b": 457.92
},
"text": "Jackie Robinson Community Center\n1020 N. Fair Oaks Ave."
},
{
"id": "p8.10",
"order": 10,
"type": "text",
"bbox": {
"l": 452.16,
"t": 508.56,
"r": 563.76,
"b": 486
},
"text": "5.14.26 12 PM - 2 PM"
},
{
"id": "p8.11",
"order": 11,
"type": "text",
"bbox": {
"l": 143.28,
"t": 448.8,
"r": 580.56,
"b": 397.2
},
"text": "Enjoy an afternoon of singing, dancing, recitals, and more as the Seniors showcase their many talents. Sponsored by the Pasadena/Altadena Chapter of Links Inc. Event updates will be available on the PRCS website and social media. For more information or to register for the show, please call (626) 744-7300 or email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p8.12",
"order": 12,
"type": "figure",
"bbox": {
"l": 20.64,
"t": 339.36,
"r": 142.32,
"b": 219.36
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p8.13",
"order": 13,
"type": "heading",
"bbox": {
"l": 146.16,
"t": 338.16,
"r": 255.84,
"b": 316.32
},
"text": "FAMILY FUN DAY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p8.14",
"order": 14,
"type": "text",
"bbox": {
"l": 146.64,
"t": 315.36,
"r": 267.6,
"b": 288.96
},
"text": "La Pintoresca Park\n45 E. Washington Blvd."
},
{
"id": "p8.15",
"order": 15,
"type": "text",
"bbox": {
"l": 451.92,
"t": 338.88,
"r": 564.96,
"b": 315.84
},
"text": "5.23.26 11 AM - 3 PM"
},
{
"id": "p8.16",
"order": 16,
"type": "text",
"bbox": {
"l": 144.72,
"t": 279.84,
"r": 579.36,
"b": 228.72
},
"text": "Come out and enjoy a community celebration at La Pintoresca Park with loved ones, friends, and neighbors at the 29th Annual Family Fun Day. Free fitness & wellness games, arts & crafts, face painting, food, and live entertainment. For more information, please call (626) 345-0708 or email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p8.17",
"order": 17,
"type": "figure",
"bbox": {
"l": 24.48,
"t": 180.96,
"r": 140.16,
"b": 62.4
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p8.18",
"order": 18,
"type": "heading",
"bbox": {
"l": 143.28,
"t": 180.48,
"r": 360.24,
"b": 157.92
},
"text": "MEMORIAL DAY COMMEMORATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p8.19",
"order": 19,
"type": "text",
"bbox": {
"l": 143.28,
"t": 153.6,
"r": 222,
"b": 127.44
},
"text": "Memorial Park\n85 E. Holly St."
},
{
"id": "p8.20",
"order": 20,
"type": "text",
"bbox": {
"l": 424.8,
"t": 179.28,
"r": 569.76,
"b": 156.72
},
"text": "5.26.26 10:30 AM - 11:30 AM"
},
{
"id": "p8.21",
"order": 21,
"type": "text",
"bbox": {
"l": 142.8,
"t": 118.08,
"r": 553.92,
"b": 92.4
},
"text": "Join us for this solemn ceremony as we honor and remember those who made the ultimate sacrifice for our country."
}
]
}
Page 9
20 item(s)
JSON
figure (4)
heading (5)
text (11)
1 · TEXT
2 · FIGURE
3 · HEADING
4 · TEXT
5 · TEXT
6 · FIGURE
7 · HEADING
8 · TEXT
9 · HEADING
10 · TEXT
11 · FIGURE
12 · HEADING
13 · TEXT
14 · TEXT
15 · TEXT
16 · FIGURE
17 · HEADING
18 · TEXT
19 · TEXT
20 · TEXT
AI review: page OK
(claude-opus-5, conf 50%)
— placeholder
Page 9 JSON
{
"document_id": 267,
"page": 9,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 20,
"counts_by_type": {
"figure": 4,
"heading": 5,
"text": 11
},
"build_ms": 1,
"items": [
{
"id": "p9.1",
"order": 1,
"type": "text",
"bbox": {
"l": 449.28,
"t": 674.88,
"r": 576,
"b": 653.76
},
"text": "6.13.2026 6 PM - 9 PM",
"attrs": {
"block_label": "header",
"ai_retyped_from": "header",
"ai_reason": "This is the event date/time line for the Pasadena Pride entry, not a page header; parallel items #14 and #19 are typed as text."
}
},
{
"id": "p9.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 27.6,
"t": 668.88,
"r": 144.48,
"b": 548.64
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p9.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 153.36,
"t": 675.6,
"r": 265.92,
"b": 654.48
},
"text": "PASADENA PRIDE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p9.4",
"order": 4,
"type": "text",
"bbox": {
"l": 152.88,
"t": 648.24,
"r": 357.12,
"b": 622.08
},
"text": "Pasadena City Hall - Centennial Square\n100 N. Garfield Ave."
},
{
"id": "p9.5",
"order": 5,
"type": "text",
"bbox": {
"l": 151.44,
"t": 612,
"r": 572.64,
"b": 551.28
},
"text": "Celebrate Pride Month with us at the iconic Pasadena City Hall as we champion our diverse LGBTQ+ community! Enjoy family fun for all ages with live entertainment, arts & crafts, face painting, and more! Local LGBTQ+ organizations and community partners will be in attendance. The event is FREE with food available for purchase. For more information, please call (626) 744-6530 or email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p9.6",
"order": 6,
"type": "figure",
"bbox": {
"l": 28.32,
"t": 501.36,
"r": 145.44,
"b": 383.52
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p9.7",
"order": 7,
"type": "heading",
"bbox": {
"l": 152.4,
"t": 504.24,
"r": 324,
"b": 483.6
},
"text": "JUNETEENTH CELEBRATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p9.8",
"order": 8,
"type": "text",
"bbox": {
"l": 152.16,
"t": 481.68,
"r": 352.32,
"b": 456.72
},
"text": "Pasadena City Hall - Centennial Square\n100 N. Garfield Ave."
},
{
"id": "p9.9",
"order": 9,
"type": "heading",
"bbox": {
"l": 449.52,
"t": 505.68,
"r": 570.72,
"b": 483.36
},
"text": "6.20.2026 4PM-9PM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p9.10",
"order": 10,
"type": "text",
"bbox": {
"l": 150.72,
"t": 445.92,
"r": 571.44,
"b": 359.52
},
"text": "Come out and experience the fun and excitement as we celebrate Juneteenth in Pasadena, in partnership with the National Association for the Advancement of Colored People (NAACP). Juneteenth commemorates the effective end of slavery in the United States. Juneteenth is now a day to reflect and celebrate African American history and culture. More ore details including event time and activities will be available at CityOfPasadena.net/Events and on Instagram at @PasadenaParksAndRec. For more information, please call (626) 744-7300 or email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p9.11",
"order": 11,
"type": "figure",
"bbox": {
"l": 25.92,
"t": 337.44,
"r": 145.68,
"b": 220.32
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p9.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 150,
"t": 336.72,
"r": 280.56,
"b": 316.08
},
"text": "PARKS AFTER DARK",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p9.13",
"order": 13,
"type": "text",
"bbox": {
"l": 150.72,
"t": 313.44,
"r": 276.96,
"b": 300.24
},
"text": "Various Pasadena Parks",
"attrs": {
"block_label": "paragraph_title",
"ai_retyped_from": "heading",
"ai_reason": "'Various Pasadena Parks' is the venue line matching #4/#8/#18 which are typed as text, not a heading."
}
},
{
"id": "p9.14",
"order": 14,
"type": "text",
"bbox": {
"l": 417.84,
"t": 336.96,
"r": 568.08,
"b": 314.88
},
"text": "7.9.26-8.8.26 6 PM - 10 PM"
},
{
"id": "p9.15",
"order": 15,
"type": "text",
"bbox": {
"l": 148.56,
"t": 290.88,
"r": 580.32,
"b": 220.32
},
"text": "We invite the community to Parks After Dark! Join us for a variety of free recreation opportunities that range from organized sports leagues, tournaments, movies in the park, swimming, art workshops, and more! Parks After Dark takes advantage of Pasadena's beautiful summer evenings by activating park spaces to provide youth and their families opportunities to experience healthy recreation and active lifestyles. For more information, please call (626) 744-6530 or email ParksAndRec@CityOfPasadena.net."
},
{
"id": "p9.16",
"order": 16,
"type": "figure",
"bbox": {
"l": 26.88,
"t": 179.76,
"r": 144,
"b": 63.36
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p9.17",
"order": 17,
"type": "heading",
"bbox": {
"l": 150.72,
"t": 178.8,
"r": 379.92,
"b": 156.96
},
"text": "CENTENNIAL SQUARE BOXING SHOW",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p9.18",
"order": 18,
"type": "text",
"bbox": {
"l": 151.68,
"t": 149.52,
"r": 356.16,
"b": 122.88
},
"text": "Pasadena City Hall - Centennial Square\n100 N. Garfield Ave."
},
{
"id": "p9.19",
"order": 19,
"type": "text",
"bbox": {
"l": 461.76,
"t": 178.8,
"r": 573.36,
"b": 157.68
},
"text": "8.21.26 7 P.M - 10 PM"
},
{
"id": "p9.20",
"order": 20,
"type": "text",
"bbox": {
"l": 150.96,
"t": 112.56,
"r": 573.84,
"b": 76.32
},
"text": "The Villa Parke Boxing Program will host a free Centennial Square Amateur Boxing Event featuring top amateur male and female competitors ages 8 through 40. For more information, please call (626) 744-6530 or email ParksAndRec@CityOfPasadena.net."
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 85,
"added": 0,
"retyped": 2
}
}
Page 10
19 item(s)
JSON
caption (1)
figure (5)
footer (1)
list (1)
list_item (2)
text (8)
title (1)
1 · FIGURE
2 · TITLE
3 · FIGURE
4
5
6 · LIST
7
8
9 · TEXT ·✨
10 · TEXT
11 · TEXT
12 · TEXT
13 · FIGURE
14 · FIGURE
15 · FIGURE
16
17 · TEXT
18 · CAPTION
19 · FOOTER
AI review
(claude-opus-5, conf 78%)
— Most content of this two-panel flyer is captured, but the bullet list area is mishandled: 'Day camp' is duplicated and the third bullet is merged with the 'COMPLETE THE SURVEY...' headline, which is itself duplicated in #13. Minor issues include a degenerate figure box and the SCAN QR CODE caption being out of reading order.
major
other #11: Duplicated content: 'Day camp' appears both as list_item #10 and again as separate text #11.
major
text_mismatch #12: Item #12 merges the third bullet ('Free admission to a contracted class of your choice') with the headline text 'COMPLETE THE SURVEY FOR A CHANCE TO WIN A PRCS SCHOLARSHIP!', which is also separately captured as #13 — duplicated and conflated content. The third bullet should be a list_item within list #8.
minor
nesting #8: The list (#8) only contains two of the three bullets; the third bullet is orphaned in #12 outside the list.
minor
wrong_bbox #3: Figure #3 has a degenerate/zero-width box (100,0,100,100).
minor
reading_order #20: The 'SCAN QR CODE' caption (#20, top-right of upper panel) is placed after the lower-panel body text #19 rather than with the upper half content.
minor
wrong_type #5: The teal text panel is typed as a figure containing the paragraphs; it is a text block/callout rather than an image.
minor
missing_item: The QR code graphic itself (bottom-right of upper panel) is not captured as a separate figure item.
Page 10 JSON
{
"document_id": 267,
"page": 10,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 19,
"counts_by_type": {
"caption": 1,
"figure": 5,
"footer": 1,
"list": 1,
"list_item": 2,
"text": 8,
"title": 1
},
"build_ms": 1,
"items": [
{
"id": "p10.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 17.76,
"t": 776.4,
"r": 219.84,
"b": 743.04
},
"text": "",
"attrs": {
"role": "page_header",
"block_label": "header_image"
}
},
{
"id": "p10.2",
"order": 2,
"type": "title",
"bbox": {
"l": 15.84,
"t": 731.28,
"r": 379.2,
"b": 677.76
},
"text": "TAKE OUR SURVEY!",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p10.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 26.4,
"t": 655.92,
"r": 390.96,
"b": 501.6
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p10.3.1",
"order": 4,
"type": "text",
"bbox": {
"l": 25.44,
"t": 630,
"r": 260.64,
"b": 557.04
},
"text": "The Pasadena Parks, Recreation, and Community Services Department invites you to complete our Community Needs Assessment. Results will be used to ensure we make our programs more inclusive, accessible, and impactful."
},
{
"id": "p10.3.2",
"order": 5,
"type": "text",
"bbox": {
"l": 28.08,
"t": 551.76,
"r": 190.32,
"b": 508.32
},
"text": "Participants will be entered into a drawing to win one of 20 scholarships for the following:"
}
]
},
{
"id": "p10.4",
"order": 6,
"type": "list",
"bbox": {
"l": 36.96,
"t": 506.16,
"r": 133.68,
"b": 494.4
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p10.4.1",
"order": 7,
"type": "list_item",
"bbox": {
"l": 36.96,
"t": 506.16,
"r": 133.68,
"b": 500.28
},
"text": "• An aquatics class",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p10.4.2",
"order": 8,
"type": "list_item",
"bbox": {
"l": 36.96,
"t": 500.28,
"r": 133.68,
"b": 494.4
},
"text": "• Day camp",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"type": "text",
"bbox": {
"l": 208.08,
"t": 498.96,
"r": 385.56,
"b": 435.6
},
"text": "COMPLETE THE SURVEY FOR A CHANCE TO WIN A PRCS SCHOLARSHIP!",
"attrs": {
"source": "ai_vision",
"reason": "Large stylized call-to-action text in the teal panel; item #10's box (6-32% wide, 40-43%) does not cover this area."
},
"children": [],
"order": 9,
"id": "p10.5"
},
{
"id": "p10.6",
"order": 10,
"type": "text",
"bbox": {
"l": 37.68,
"t": 491.04,
"r": 100.56,
"b": 479.04
},
"text": "Day camp"
},
{
"id": "p10.7",
"order": 11,
"type": "text",
"bbox": {
"l": 36.96,
"t": 476.88,
"r": 197.28,
"b": 449.52
},
"text": "• Free admission to a contracted class of your choice\nCOMPLETE THE SURVEY FOR A CHANCE TO WIN A PRCS SCHOLARSHIP!"
},
{
"id": "p10.8",
"order": 12,
"type": "text",
"bbox": {
"l": 51.36,
"t": 421.2,
"r": 184.8,
"b": 409.92
},
"text": "Bit.ly/PRCSCommunityNeeds"
},
{
"id": "p10.9",
"order": 13,
"type": "figure",
"bbox": {
"l": 388.32,
"t": 789.12,
"r": 611.28,
"b": 407.04
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p10.10",
"order": 14,
"type": "figure",
"bbox": {
"l": 0.72,
"t": 397.2,
"r": 330.24,
"b": 15.6
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p10.11",
"order": 15,
"type": "figure",
"bbox": {
"l": 381.36,
"t": 384,
"r": 547.2,
"b": 260.16
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p10.11.1",
"order": 16,
"type": "text",
"bbox": {
"l": 380.4,
"t": 298.8,
"r": 546.72,
"b": 260.16
},
"text": "PASADENA\nOFFICE OF THE YOUNG CHILD"
}
]
},
{
"id": "p10.12",
"order": 17,
"type": "text",
"bbox": {
"l": 347.76,
"t": 231.84,
"r": 576.48,
"b": 62.88
},
"text": "The Pasadena Office of the Young Child represents the City of Pasadena's commitment to giving every child the strongest possible start in life. Established through the City's Early Child Development Policy and guided by a Five-Year Master Plan, the Office brings together programs, services, and funding efforts to create a coordinated, family-centered system supporting children from birth to age five."
},
{
"id": "p10.13",
"order": 18,
"type": "caption",
"bbox": {
"l": 548.16,
"t": 415.68,
"r": 596.4,
"b": 407.76
},
"text": "SCAN QR CODE",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "footnote",
"ai_reason": "'SCAN QR CODE' is a caption/label under the QR code image, not a footnote."
}
},
{
"id": "p10.14",
"order": 19,
"type": "footer",
"bbox": {
"l": 358.32,
"t": 35.04,
"r": 585.36,
"b": 23.04
},
"text": "CityOfPasadena.net/Office-Of-The-Young-Child/",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 70,
"added": 1,
"retyped": 1
}
}
Page 11
20 item(s)
JSON
figure (5)
heading (2)
list (1)
list_item (8)
text (3)
title (1)
1 · FIGURE
2 · FIGURE
3 · TITLE
4 · TEXT
5 · TEXT
6 · HEADING
7 · LIST
8
9
10
11
12
13
14
15
16 · HEADING
17 · TEXT
18 · FIGURE
19 · FIGURE
20 · FIGURE
AI review
(claude-opus-5, conf 70%)
—
Page 11 JSON
{
"document_id": 267,
"page": 11,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 20,
"counts_by_type": {
"figure": 5,
"heading": 2,
"list": 1,
"list_item": 8,
"text": 3,
"title": 1
},
"build_ms": 1,
"items": [
{
"id": "p11.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 228.48,
"t": 743.52,
"r": 452.88,
"b": 705.84
},
"text": "",
"attrs": {
"role": "page_header",
"block_label": "header_image"
}
},
{
"id": "p11.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 52.08,
"t": 792,
"r": 609.36,
"b": 556.56
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p11.3",
"order": 3,
"type": "title",
"bbox": {
"l": 75.12,
"t": 660.72,
"r": 569.76,
"b": 565.2
},
"text": "WE'RE HIRING!",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p11.4",
"order": 4,
"type": "text",
"bbox": {
"l": 47.28,
"t": 521.28,
"r": 561.6,
"b": 455.28
},
"text": "The City of Pasadena Parks, Recreation, and Community Services Department is seeking enthusiastic and motivated individuals with a passion for working with youth. Our Summer Day Camps, Aquatics, and Youth Sports programs need qualified candidates to supervise and conduct recreational activities."
},
{
"id": "p11.5",
"order": 5,
"type": "text",
"bbox": {
"l": 47.52,
"t": 441.12,
"r": 570.96,
"b": 407.52
},
"text": "This is an excellent opportunity to work with youth from our local community and to serve as a positive role model in shaping our future generations."
},
{
"id": "p11.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 64.8,
"t": 377.76,
"r": 239.52,
"b": 346.56
},
"text": "OPEN POSITIONS:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p11.7",
"order": 7,
"type": "list",
"bbox": {
"l": 54.48,
"t": 333.12,
"r": 298.32,
"b": 174.24
},
"text": "",
"attrs": {
"item_count": 8
},
"children": [
{
"id": "p11.7.1",
"order": 8,
"type": "list_item",
"bbox": {
"l": 54.48,
"t": 333.12,
"r": 288.72,
"b": 313.68
},
"text": "• DAY CAMP DIRECTOR - $26.65 - $32.40 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.2",
"order": 9,
"type": "list_item",
"bbox": {
"l": 54.48,
"t": 311.76,
"r": 254.4,
"b": 293.76
},
"text": "• INSTRUCTOR - $18.09 - $25.09 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.3",
"order": 10,
"type": "list_item",
"bbox": {
"l": 54.48,
"t": 292.32,
"r": 289.68,
"b": 274.08
},
"text": "• RECREATION LEADER - $20.24 - $20.99 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.4",
"order": 11,
"type": "list_item",
"bbox": {
"l": 54.72,
"t": 272.4,
"r": 298.32,
"b": 254.16
},
"text": "• AQUATICS SUPERVISOR - $35.35 - $44.15 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.5",
"order": 12,
"type": "list_item",
"bbox": {
"l": 54.96,
"t": 252.48,
"r": 265.92,
"b": 234.48
},
"text": "POOL MANAGER - $25.57 - $31.94 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.6",
"order": 13,
"type": "list_item",
"bbox": {
"l": 54.96,
"t": 233.04,
"r": 280.32,
"b": 214.8
},
"text": "SENIOR LIFEGUARD - $29.27 - $32.30 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.7",
"order": 14,
"type": "list_item",
"bbox": {
"l": 54.72,
"t": 213.36,
"r": 244.8,
"b": 195.12
},
"text": "• LIFEGUARD - $24.04 - $27.99 HOURLY",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p11.7.8",
"order": 15,
"type": "list_item",
"bbox": {
"l": 54.72,
"t": 193.44,
"r": 235.92,
"b": 174.24
},
"text": "JUNIOR LIFEGUARD - $20.24 HOURLY",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"id": "p11.8",
"order": 16,
"type": "heading",
"bbox": {
"l": 65.04,
"t": 141.84,
"r": 162.96,
"b": 112.56
},
"text": "TO APPLY:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p11.9",
"order": 17,
"type": "text",
"bbox": {
"l": 49.2,
"t": 96.48,
"r": 197.04,
"b": 57.36
},
"text": "PLEASE VISIT: CITYOFPASADENA.NET/JOBS"
},
{
"id": "p11.10",
"order": 18,
"type": "figure",
"bbox": {
"l": 243.84,
"t": 117.12,
"r": 304.8,
"b": 55.92
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p11.11",
"order": 19,
"type": "figure",
"bbox": {
"l": 365.28,
"t": 358.56,
"r": 591.12,
"b": 209.52
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p11.12",
"order": 20,
"type": "figure",
"bbox": {
"l": 364.56,
"t": 192.96,
"r": 590.88,
"b": 44.16
},
"text": "",
"attrs": {
"block_label": "image"
}
}
]
}
Page 12
61 item(s)
JSON
figure (2)
footer (2)
heading (4)
table (1)
table_cell (38)
text (12)
title (2)
1 · FIGURE
2 · TITLE
3 · TEXT
4 · TEXT
5 · TEXT
6 · TEXT
7 · FIGURE
8 · TEXT ·✨
9 · HEADING
10 · TEXT
11 · TABLE
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 · TITLE
51 · HEADING
52 · TEXT
53 · TEXT
54 · HEADING
55 · TEXT
56 · TEXT
57 · HEADING
58 · TEXT
59 · TEXT
60 · FOOTER
61 · FOOTER
Table integrity:
6 of 32 cells don't match the text layer at their coordinates.
r1c3 (0%): “$75/$600”
r4c3 (0%): “$75/$600”
r5c4 (0%): “AGE: 5-12”
r6c3 (0%): “$75/$600”
AI review: page OK
(claude-opus-5, conf 78%)
— The extraction captures all visible content in a sensible reading order with correct types for the major blocks; only small issues remain (a merged heading, a slightly artificial table model for the left-column schedules, and a minor text typo in \"VILLA PARKE\").
minor
text_mismatch #24: Cell text reads "VILLA PARK E SUMMER CAMP"; the image shows "VILLA PARKE SUMMER CAMP" (Villa Parke is one word).
minor
table_structure #10: The left-column schedule block is modeled as a single table with camp-name headings (#11, #24, #37) as full-width cells and an extra always-empty column (#17, #23, #30, ...). The camp names are orange headings in the image, not table rows; the trailing empty column is a phantom.
minor
reading_order #62: Page number "12" (#62) is emitted after the footer text (#61) although it appears first on the line.
minor
nesting #51: "SPECIALTY CAMPS" (green) and "ARROYO SECO ADVENTURE CAMP" (orange) are two distinct headings merged into one item.
Page 12 JSON
{
"document_id": 267,
"page": 12,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 61,
"counts_by_type": {
"figure": 2,
"footer": 2,
"heading": 4,
"table": 1,
"table_cell": 38,
"text": 12,
"title": 2
},
"build_ms": 9,
"items": [
{
"id": "p12.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 300,
"b": 588
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p12.2",
"order": 2,
"type": "title",
"bbox": {
"l": 33.84,
"t": 779.52,
"r": 234,
"b": 657.12
},
"text": "SUMMER\nCAMPS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p12.3",
"order": 3,
"type": "text",
"bbox": {
"l": 34.32,
"t": 649.68,
"r": 130.32,
"b": 635.28
},
"text": "REGISTRATION"
},
{
"id": "p12.4",
"order": 4,
"type": "text",
"bbox": {
"l": 32.88,
"t": 624.72,
"r": 292.08,
"b": 567.6
},
"text": "Registration for Pasadena residents and Pasadena Unified School District (PUSD) students is now open and can be completed online or in person. Non-resident registration begins Monday, March 30 at 8:00 a.m. Camps will be closed in observance of Independence Day on July 3."
},
{
"id": "p12.5",
"order": 5,
"type": "text",
"bbox": {
"l": 33.12,
"t": 558.96,
"r": 292.08,
"b": 524.16
},
"text": "If your child is a PUSD student and not a Pasadena resident, please call the Summer Day Camp office before registration opens for assistance at (626) 744-6530."
},
{
"id": "p12.6",
"order": 6,
"type": "text",
"bbox": {
"l": 33.84,
"t": 514.8,
"r": 294.48,
"b": 492
},
"text": "Create your account today at CityOfPasadena.net/Reserve. Free breakfast and lunch provided daily by PUSD."
},
{
"id": "p12.7",
"order": 7,
"type": "figure",
"bbox": {
"l": 35.04,
"t": 490.32,
"r": 281.76,
"b": 313.92
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 356.4,
"r": 544.68,
"b": 340.56
},
"text": "06/22-07/31 8AM-5PM M-F $10/$100 AGE: 6-12",
"attrs": {
"source": "ai_vision",
"reason": "Schedule line under LA PINTORESCA PARK heading is not covered by any item (#55 covers only the park name)."
},
"children": [],
"order": 8,
"id": "p12.8"
},
{
"id": "p12.9",
"order": 9,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 308.64,
"r": 211.44,
"b": 294.48
},
"text": "INDOOR/OUTDOOR CAMPS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p12.10",
"order": 10,
"type": "text",
"bbox": {
"l": 33.36,
"t": 294,
"r": 295.44,
"b": 172.8
},
"text": "Make this summer unforgettable with Pasadena's Indoor Summer Camps! Our camps offer a safe, fun, and engaging environment where kids can explore creativity, stay active, and build lasting friendships. Each day is packed with a variety of activities—from arts & crafts to sports, recreational swim, games, and exciting group projects—designed to keep campers moving, learning, and smiling. Your child will experience the true spirit of summer: adventure, discovery, and plenty of fun in the sun!"
},
{
"id": "p12.11",
"order": 11,
"type": "table",
"bbox": {
"l": 33.6,
"t": 169.2,
"r": 289.2,
"b": 35.52
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 8,
"n_cols": 6,
"integrity": {
"cells_checked": 32,
"cells_flagged": 6,
"flags": [
{
"row": 1,
"col": 3,
"coverage": 0,
"text": "$75/$600"
},
{
"row": 4,
"col": 3,
"coverage": 0,
"text": "$75/$600"
},
{
"row": 5,
"col": 4,
"coverage": 0,
"text": "AGE: 5-12"
},
{
"row": 6,
"col": 3,
"coverage": 0,
"text": "$75/$600"
},
{
"row": 6,
"col": 4,
"coverage": 0,
"text": "AGE: 5-12"
},
{
"row": 7,
"col": 4,
"coverage": 0,
"text": "AGE: 5-12"
}
]
}
},
"children": [
{
"id": "p12.11.1",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 168.93499999999995,
"r": 227.592134,
"b": 155.36300000000006
},
"text": "VICTORY PARK SUMMER CAMP",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 6,
"bbox_refit": true
}
},
{
"id": "p12.11.2",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 153.072,
"r": 83.292,
"b": 143.02800000000002
},
"text": "06/15-07/02",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.3",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 100.032,
"t": 153.072,
"r": 137.784,
"b": 143.02800000000002
},
"text": "8AM - 5PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.4",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 151.440012,
"t": 153.072,
"r": 164.652012,
"b": 143.02800000000002
},
"text": "M-F",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.5",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 161.4,
"t": 154.3467,
"r": 204,
"b": 139.4933
},
"text": "$75/$600",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.6",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 251.99982,
"t": 153.072,
"r": 284.86782,
"b": 143.02800000000002
},
"text": "AGE: 5-12",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.7",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 154.3467,
"r": 289.2,
"b": 139.4933
},
"text": "",
"attrs": {
"row": 1,
"col": 5,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.8",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 138.67200000000003,
"r": 83.304,
"b": 128.62800000000004
},
"text": "07/06-07/31",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.9",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 100.044,
"t": 138.67200000000003,
"r": 137.796,
"b": 128.62800000000004
},
"text": "8AM - 5PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.10",
"order": 21,
"type": "table_cell",
"bbox": {
"l": 151.439904,
"t": 138.67200000000003,
"r": 164.651904,
"b": 128.62800000000004
},
"text": "M-F",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.11",
"order": 22,
"type": "table_cell",
"bbox": {
"l": 207.431904,
"t": 138.67200000000003,
"r": 247.247904,
"b": 128.62800000000004
},
"text": "$100/$800",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.12",
"order": 23,
"type": "table_cell",
"bbox": {
"l": 251.99982,
"t": 108.67219999999998,
"r": 284.86782,
"b": 98.62819999999999
},
"text": "AGE: 5-12",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.13",
"order": 24,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 139.4933,
"r": 289.2,
"b": 124.64
},
"text": "",
"attrs": {
"row": 2,
"col": 5,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.14",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 33.6,
"t": 124.64,
"r": 289.2,
"b": 109.7867
},
"text": "VILLA PARK E SUMMER CAMP",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 6
}
},
{
"id": "p12.11.15",
"order": 26,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 108.67219999999998,
"r": 83.292,
"b": 98.62819999999999
},
"text": "06/15-07/02",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.16",
"order": 27,
"type": "table_cell",
"bbox": {
"l": 100.032,
"t": 108.67219999999998,
"r": 137.784,
"b": 98.62819999999999
},
"text": "8AM - 5PM",
"attrs": {
"row": 4,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.17",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 151.440012,
"t": 108.67219999999998,
"r": 164.652012,
"b": 98.62819999999999
},
"text": "M-F",
"attrs": {
"row": 4,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.18",
"order": 29,
"type": "table_cell",
"bbox": {
"l": 161.4,
"t": 109.7867,
"r": 204,
"b": 94.9333
},
"text": "$75/$600",
"attrs": {
"row": 4,
"col": 3,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.19",
"order": 30,
"type": "table_cell",
"bbox": {
"l": 251.99982,
"t": 64.2722,
"r": 284.86782,
"b": 54.228200000000015
},
"text": "AGE: 5-12",
"attrs": {
"row": 4,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.20",
"order": 31,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 109.7867,
"r": 289.2,
"b": 94.9333
},
"text": "",
"attrs": {
"row": 4,
"col": 5,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.21",
"order": 32,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 94.2722,
"r": 240.994488,
"b": 66.56320000000005
},
"text": "07/06-08/31\nROBINSON PARK SUMMER CAMP",
"attrs": {
"row": 5,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p12.11.22",
"order": 33,
"type": "table_cell",
"bbox": {
"l": 100.164,
"t": 94.2722,
"r": 137.916,
"b": 84.22820000000002
},
"text": "8AM - 5PM",
"attrs": {
"row": 5,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.23",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 151.439988,
"t": 94.2722,
"r": 164.651988,
"b": 84.22820000000002
},
"text": "M-F",
"attrs": {
"row": 5,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.24",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 207.431988,
"t": 94.2722,
"r": 247.247988,
"b": 84.22820000000002
},
"text": "$100/$800",
"attrs": {
"row": 5,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.25",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 204,
"t": 94.9333,
"r": 246.6,
"b": 80.08
},
"text": "AGE: 5-12",
"attrs": {
"row": 5,
"col": 4,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.26",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 94.9333,
"r": 289.2,
"b": 80.08
},
"text": "",
"attrs": {
"row": 5,
"col": 5,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.27",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 64.2722,
"r": 83.292,
"b": 54.228200000000015
},
"text": "06/15-07/02",
"attrs": {
"row": 6,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.28",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 100.032,
"t": 64.2722,
"r": 137.784,
"b": 54.228200000000015
},
"text": "8AM - 5PM",
"attrs": {
"row": 6,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.29",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 151.440012,
"t": 64.2722,
"r": 164.652012,
"b": 54.228200000000015
},
"text": "M-F",
"attrs": {
"row": 6,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.30",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 161.4,
"t": 65.2267,
"r": 204,
"b": 50.3733
},
"text": "$75/$600",
"attrs": {
"row": 6,
"col": 3,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.31",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 204,
"t": 65.2267,
"r": 246.6,
"b": 50.3733
},
"text": "AGE: 5-12",
"attrs": {
"row": 6,
"col": 4,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.32",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 65.2267,
"r": 289.2,
"b": 50.3733
},
"text": "",
"attrs": {
"row": 6,
"col": 5,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.33",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 49.87220000000002,
"r": 83.304,
"b": 39.82820000000004
},
"text": "07/06-07/31",
"attrs": {
"row": 7,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.34",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 100.044,
"t": 49.87220000000002,
"r": 137.796,
"b": 39.82820000000004
},
"text": "8AM - 5PM",
"attrs": {
"row": 7,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.35",
"order": 46,
"type": "table_cell",
"bbox": {
"l": 151.439904,
"t": 49.87220000000002,
"r": 164.651904,
"b": 39.82820000000004
},
"text": "M-F",
"attrs": {
"row": 7,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.36",
"order": 47,
"type": "table_cell",
"bbox": {
"l": 207.431904,
"t": 49.87220000000002,
"r": 247.247904,
"b": 39.82820000000004
},
"text": "$100/$800",
"attrs": {
"row": 7,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p12.11.37",
"order": 48,
"type": "table_cell",
"bbox": {
"l": 204,
"t": 50.3733,
"r": 246.6,
"b": 35.52
},
"text": "AGE: 5-12",
"attrs": {
"row": 7,
"col": 4,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p12.11.38",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 246.6,
"t": 50.3733,
"r": 289.2,
"b": 35.52
},
"text": "",
"attrs": {
"row": 7,
"col": 5,
"rowspan": 1,
"colspan": 1
}
}
]
},
{
"id": "p12.12",
"order": 50,
"type": "title",
"bbox": {
"l": 328.08,
"t": 782.64,
"r": 576.48,
"b": 685.92
},
"text": "SUMMER Day Camps",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p12.13",
"order": 51,
"type": "heading",
"bbox": {
"l": 312,
"t": 666,
"r": 530.64,
"b": 636.72
},
"text": "SPECIALTY CAMPS\nARROYO SECO ADVENTURE CAMP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p12.14",
"order": 52,
"type": "text",
"bbox": {
"l": 312.72,
"t": 635.76,
"r": 579.36,
"b": 550.56
},
"text": "Explore the natural beauty of the Arroyo Seco in this exciting outdoor adventure! Based in Brookside Park, campers will venture through the lower, middle, and upper Arroyo on guided hikes (1–5 miles) while learning about local ecology. Activities include archery, outdoor survival skills, and nature-inspired arts and crafts. Perfect for youth who thrive in the great outdoors!"
},
{
"id": "p12.15",
"order": 53,
"type": "text",
"bbox": {
"l": 313.44,
"t": 548.88,
"r": 568.08,
"b": 507.12
},
"text": "BROOKSIDE PARK\n06/23-07/11 8AM - 5PM M-F $225/$720 AGE: 8-12\n07/14-08/01 8AM - 5PM M-F $225/$720 AGE: 8-12"
},
{
"id": "p12.16",
"order": 54,
"type": "heading",
"bbox": {
"l": 312.96,
"t": 495.84,
"r": 552.72,
"b": 467.28
},
"text": "NEW! LA PINTORESCA PARK SUMMER CAMP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p12.17",
"order": 55,
"type": "text",
"bbox": {
"l": 312.72,
"t": 465.84,
"r": 569.28,
"b": 369.12
},
"text": "Programming at this location takes advantage of the park amenities such as a basketball court, a skate park, and a water feature. La Pintoresca Park Camp includes a full day of programming featuring arts & crafts, and enrichment activities like sports and fitness instruction. Breakfast and lunch provided free of charge by PUSD. Campers will also enjoy special guest visits, field trips and recreational swim."
},
{
"id": "p12.18",
"order": 56,
"type": "text",
"bbox": {
"l": 313.92,
"t": 368.88,
"r": 393.84,
"b": 355.44
},
"text": "LA PINTORESCA PARK"
},
{
"id": "p12.19",
"order": 57,
"type": "heading",
"bbox": {
"l": 313.2,
"t": 323.76,
"r": 543.6,
"b": 310.08
},
"text": "WASHINGTON PARK SUMMER CAMP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p12.20",
"order": 58,
"type": "text",
"bbox": {
"l": 312.72,
"t": 308.88,
"r": 568.56,
"b": 223.92
},
"text": "Experience summer at Washington Park, where every day is filled with fun and adventure! Campers will dive into creative arts & crafts, sports, and fitness activities while enjoying the park's fantastic amenities, including basketball, tennis, and handball courts, plus scenic walking trails. It's the perfect setting for an engaging summer experience!"
},
{
"id": "p12.21",
"order": 59,
"type": "text",
"bbox": {
"l": 315.84,
"t": 222,
"r": 528.48,
"b": 194.88
},
"text": "WASHINGTON PARK\n06/22-07/31 8AM-5PM M-F $10/$100 AGE: 6-12"
},
{
"id": "p12.22",
"order": 60,
"type": "footer",
"bbox": {
"l": 33.84,
"t": 19.44,
"r": 217.2,
"b": 8.4
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p12.23",
"order": 61,
"type": "footer",
"bbox": {
"l": 31.92,
"t": 18.48,
"r": 44.88,
"b": 9.36
},
"text": "12",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 76,
"added": 1,
"retyped": 0
}
}
Page 13
44 item(s)
JSON
figure (3)
footer (2)
heading (6)
list (2)
list_item (15)
text (16)
1 · FIGURE
2 · FIGURE
3 ·✨
4 · HEADING
5 · TEXT
6 · TEXT
7 · TEXT
8 · HEADING
9 · TEXT
10 · TEXT
11 · TEXT
12 · HEADING
13 · TEXT
14 · TEXT
15 · TEXT
16 · FIGURE
17
18 · TEXT
19 · HEADING
20 · LIST
21
22
23
24
25
26
27
28
29
30
31
32
33 · HEADING
34 · LIST
35
36
37
38 · HEADING
39 · TEXT
40 · TEXT
41 · TEXT
42 · TEXT
43 · FOOTER
44 · FOOTER
AI review
(claude-opus-5, conf 78%)
— Most content is captured and reading order is largely sensible, but the After School / Early Care bullet lists are fragmented into two lists plus several loose text items, and the footer page number is duplicated/garbled. Some minor box and text issues also occur.
major
nesting #30: The single bulleted 'After School Locations' list is split: items #21-#23 in one list, #25-#29 in a second list, and #30, #31, #32 emitted as plain text rather than list_items of the same list. Same problem for the Early Care list (#34-#36 are plain text, not a list).
major
text_mismatch #42: Footer text ends with a stray '1' ('Recreation Guide 1') and the page number '13' is duplicated as a separate footer item #43, overlapping the same region.
minor
wrong_bbox #2: Figure #2 spans (51,3,95,95), covering essentially the whole right column including text items #17-#41; it duplicates/overlaps the actual banner figure #15.
minor
text_mismatch #23: Bullet markers are inconsistently captured/dropped (e.g. #23 'Hamilton', #29 'San Rafael', #31 'Webster', #32 'Willard', #35 'Hamilton' lack the '•', while #27 uses '·').
minor
wrong_type #37: 'SUMMER DAY CAMP' / 'EMPLOYMENT OPPORTUNITIES' (#37, #38) are the heading of the blue callout box but are typed as plain text; also #40/#41 are display headings styled text.
Page 13 JSON
{
"document_id": 267,
"page": 13,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 44,
"counts_by_type": {
"figure": 3,
"footer": 2,
"heading": 6,
"list": 2,
"list_item": 15,
"text": 16
},
"build_ms": 5,
"items": [
{
"id": "p13.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 147.84,
"t": 748.08,
"r": 186.72,
"b": 718.08
},
"text": "",
"attrs": {
"role": "page_header",
"block_label": "header_image"
}
},
{
"id": "p13.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 312,
"t": 768.9599,
"r": 582,
"b": 39.1199
},
"text": "",
"attrs": {
"source": "pdf_image"
},
"children": [
{
"type": "text",
"bbox": {
"l": 318.24,
"t": 617.76,
"r": 581.4,
"b": 546.48
},
"text": "The City of Pasadena's Parks, Recreation and Community Services Department is committed to ensuring a healthy and safe environment for Pasadena Unified School District (PUSD) children during the academic school year 2026-2027.",
"attrs": {
"source": "ai_vision",
"reason": "Paragraph of body text in the right column is not covered by any extracted item."
},
"children": [],
"order": 3,
"id": "p13.2.1"
}
]
},
{
"id": "p13.3",
"order": 4,
"type": "heading",
"bbox": {
"l": 34.56,
"t": 732,
"r": 143.04,
"b": 718.56
},
"text": "TINY TOTS CAMP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p13.4",
"order": 5,
"type": "text",
"bbox": {
"l": 33.6,
"t": 717.36,
"r": 299.28,
"b": 585.36
},
"text": "Tiny Tots Camp is designed to give young children, 3 to 5 years of age, a positive and fun introduction to organized play and recreational activities. The goal is to provide an enriching, hands-on environment that promotes scioial, emotional, physical, and creative growth. Weekly themes help emphasize the importance of learning through play. Fun recreational games help tots learn about play, following rules, and good sportsmanship. We will keep tots active with interactive games, crafts, songs, and special activities. Tots must be fully potty trained to participate. For more information call (626) 744-6500."
},
{
"id": "p13.5",
"order": 6,
"type": "text",
"bbox": {
"l": 34.56,
"t": 585.12,
"r": 155.04,
"b": 572.4
},
"text": "VILLA PARKE COMMUNITY CENTER"
},
{
"id": "p13.6",
"order": 7,
"type": "text",
"bbox": {
"l": 33.84,
"t": 570.24,
"r": 282.96,
"b": 541.92
},
"text": "06/22-07/10 9AM - 1PM M-F $75/$180 AGE: 3-5 \n7/13-07/31 9AM - 1PM M-F $75/$180 AGE: 3-5"
},
{
"id": "p13.7",
"order": 8,
"type": "heading",
"bbox": {
"l": 34.56,
"t": 526.8,
"r": 130.8,
"b": 514.32
},
"text": "TEEN SUMMER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p13.8",
"order": 9,
"type": "text",
"bbox": {
"l": 33.6,
"t": 513.12,
"r": 296.16,
"b": 342.48
},
"text": "Teen Summer provides personal, social and recreational activities for youth ages 12 to 17 in a safe and positive environment. It supports opportunities for youth to develop social, emotional, and cognitive abilities and to experience achievement, leadership, enjoyment, friendship, and acknowledgment. Teen Summer offers organized instructional classes such as Screen Printing, LPTEC Cafe, Film Making, Rec Swim, Teambuilding, and Teen Talk. It also offers opportunities for unstructured activities such as game playing, socializing, and outdoor recreational play. Facility amenities include an iMac computer lab, game room, video game room, meeting and classroom, teen lounge, outdoor space and free WiFi. For more information call (626) 345-0706."
},
{
"id": "p13.9",
"order": 10,
"type": "text",
"bbox": {
"l": 34.56,
"t": 341.52,
"r": 179.28,
"b": 328.32
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER"
},
{
"id": "p13.10",
"order": 11,
"type": "text",
"bbox": {
"l": 34.56,
"t": 327.36,
"r": 289.92,
"b": 313.2
},
"text": "06/16-08/01 1PM - 5PM M-F FREE/$50 AGE: 12-17"
},
{
"id": "p13.11",
"order": 12,
"type": "heading",
"bbox": {
"l": 34.56,
"t": 296.4,
"r": 285.6,
"b": 282.96
},
"text": "NON-CONTACT SUMMER BOXING CAMP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p13.12",
"order": 13,
"type": "text",
"bbox": {
"l": 33.6,
"t": 281.28,
"r": 295.92,
"b": 185.52
},
"text": "This co-ed camp is great fun and an even better workout! Non-contact boxing focuses on discipline, form, fitness and technique instruction. With a focus on sportsmanship, confidence, and character, this camp is ideal for youth who enjoy both team and individual sports. Camp includes a test-your-skills finale, surprise guest speakers, awards, a free t-shirt and recognition for most improved camper."
},
{
"id": "p13.13",
"order": 14,
"type": "text",
"bbox": {
"l": 34.8,
"t": 185.04,
"r": 83.04,
"b": 172.8
},
"text": "VILLA PARKE"
},
{
"id": "p13.14",
"order": 15,
"type": "text",
"bbox": {
"l": 34.32,
"t": 171.36,
"r": 287.04,
"b": 157.2
},
"text": "07/07-08/06 1PM - 3PM TU-TH $50/$75 AGE: 4-16"
},
{
"id": "p13.15",
"order": 16,
"type": "figure",
"bbox": {
"l": 311.52,
"t": 769.2,
"r": 581.52,
"b": 620.88
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p13.15.1",
"order": 17,
"type": "text",
"bbox": {
"l": 422.4,
"t": 657.6,
"r": 564,
"b": 641.76
},
"text": "Flexible pick-up times!"
}
]
},
{
"id": "p13.16",
"order": 18,
"type": "text",
"bbox": {
"l": 319.92,
"t": 543.36,
"r": 577.44,
"b": 420.48
},
"text": "The After School Adventures Program (ASAP) is a socially active experience that encourages students from K to 5th grade to be engaged and have fun! Experienced city staff facilitate a fun, safe and inclusive environment for recreational activities during the afternoon hours. Our program includes homework time, physical fitness activities, and enrichment opportunities that foster the well-being and creativity of all participants. Our program is available for the following schools:"
},
{
"id": "p13.17",
"order": 19,
"type": "heading",
"bbox": {
"l": 325.92,
"t": 402.24,
"r": 435.36,
"b": 389.76
},
"text": "After School Locations:"
},
{
"id": "p13.18",
"order": 20,
"type": "list",
"bbox": {
"l": 326.4,
"t": 389.28,
"r": 494.64,
"b": 246.24
},
"text": "",
"attrs": {
"item_count": 12
},
"children": [
{
"id": "p13.18.1",
"order": 21,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 389.28,
"r": 390.24,
"b": 378.24
},
"text": "• Don Benito",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.2",
"order": 22,
"type": "list_item",
"bbox": {
"l": 326.64,
"t": 377.52,
"r": 361.68,
"b": 366.48
},
"text": "• Field",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.3",
"order": 23,
"type": "list_item",
"bbox": {
"l": 327.12,
"t": 364.8,
"r": 380.88,
"b": 354.24
},
"text": "Hamilton",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.4",
"order": 24,
"type": "list_item",
"bbox": {
"l": 326.64,
"t": 352.56,
"r": 375.84,
"b": 342.48
},
"text": "• Jackson",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.5",
"order": 25,
"type": "list_item",
"bbox": {
"l": 326.64,
"t": 340.8,
"r": 390.48,
"b": 330.24
},
"text": "• Longfellow",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.6",
"order": 26,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 329.28,
"r": 378.24,
"b": 318.48
},
"text": "· Madison",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.7",
"order": 27,
"type": "list_item",
"bbox": {
"l": 326.88,
"t": 317.04,
"r": 381.36,
"b": 306
},
"text": "• McKinley",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.8",
"order": 28,
"type": "list_item",
"bbox": {
"l": 326.88,
"t": 305.52,
"r": 387.84,
"b": 294.24
},
"text": "San Rafael",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.9",
"order": 29,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 292.56,
"r": 494.64,
"b": 281.28
},
"text": "• Norma Coombs",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.10",
"order": 30,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 281.28,
"r": 494.64,
"b": 270
},
"text": "(at Victory Park Recreation Center)",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.11",
"order": 31,
"type": "list_item",
"bbox": {
"l": 327.36,
"t": 269.04,
"r": 377.76,
"b": 258.24
},
"text": "Webster",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.18.12",
"order": 32,
"type": "list_item",
"bbox": {
"l": 326.64,
"t": 257.28,
"r": 372,
"b": 246.24
},
"text": "Willard",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"id": "p13.19",
"order": 33,
"type": "heading",
"bbox": {
"l": 326.4,
"t": 240.96,
"r": 425.28,
"b": 229.2
},
"text": "Early Care Locations:"
},
{
"id": "p13.20",
"order": 34,
"type": "list",
"bbox": {
"l": 326.4,
"t": 228.24,
"r": 390,
"b": 192
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p13.20.1",
"order": 35,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 228.24,
"r": 390,
"b": 217.2
},
"text": "• Don Benito",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.20.2",
"order": 36,
"type": "list_item",
"bbox": {
"l": 326.64,
"t": 216.48,
"r": 380.64,
"b": 204.96
},
"text": "Hamilton",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p13.20.3",
"order": 37,
"type": "list_item",
"bbox": {
"l": 326.4,
"t": 204.24,
"r": 381.12,
"b": 192
},
"text": "• McKinley",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"id": "p13.21",
"order": 38,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 140.64,
"r": 161.76,
"b": 126.96
},
"text": "SUMMER DAY CAMP",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "\"SUMMER DAY CAMP\" is a large bold heading of the blue callout box, not body text."
}
},
{
"id": "p13.22",
"order": 39,
"type": "text",
"bbox": {
"l": 34.32,
"t": 124.56,
"r": 233.76,
"b": 111.84
},
"text": "EMPLOYMENT OPPORTUNITIES"
},
{
"id": "p13.23",
"order": 40,
"type": "text",
"bbox": {
"l": 33.84,
"t": 110.64,
"r": 278.4,
"b": 72
},
"text": "Applications for the summer season are being accepted! To apply or for more information, please visit: CityOfPasadena.net/Jobs\nThe City of Pasadena's Parks, Recreation and Community Services Department is committed to ensuring a healthy and safe environment for Pasadena Unified School District (PUSD) children during the academic school year 2026-2027."
},
{
"id": "p13.24",
"order": 41,
"type": "text",
"bbox": {
"l": 319.92,
"t": 138.48,
"r": 572.4,
"b": 76.8
},
"text": "REGISTRATION FOR SCHOOL YEAR 2026-2027 WILL OPEN ON MONDAY, JUNE 8, 2026. LIMITED SCHOLARSHIPS AVAILABLE; APPLICATIONS OPEN MAY 11, 2026. PLEASE VISIT US AT CITYOFPASADENA.NET/RESERVE."
},
{
"id": "p13.25",
"order": 42,
"type": "text",
"bbox": {
"l": 320.16,
"t": 63.36,
"r": 572.64,
"b": 47.04
},
"text": "FOR MORE INFORMATION, PLEASE CALL (626) 744-6500."
},
{
"id": "p13.26",
"order": 43,
"type": "footer",
"bbox": {
"l": 409.68,
"t": 19.44,
"r": 592.32,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 1",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p13.27",
"order": 44,
"type": "footer",
"bbox": {
"l": 582.24,
"t": 18.48,
"r": 593.52,
"b": 8.4
},
"text": "13",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 1,
"retyped": 1
}
}
Page 14
132 item(s)
JSON
figure (1)
footer (2)
heading (6)
table (5)
table_cell (113)
text (4)
title (1)
1 · FIGURE
2 · TITLE
3 · HEADING
4 · TEXT
5 ·✨
6 · HEADING
7 · TEXT
8 ·✨
9 · TABLE
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 · HEADING
86 · TABLE
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 · HEADING
109 · TABLE
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 · HEADING
128 · HEADING
129 · TEXT
130 · TABLE ·✨
131 · FOOTER
132 · FOOTER
Table integrity:
1 of 21 cells don't match the text layer at their coordinates.
r2c1 (50%): “9AM - 2PM”
Table integrity:
2 of 17 cells don't match the text layer at their coordinates.
r2c1 (0%): “10AM-2PM”
r3c1 (0%): “9AM-2PM”
AI review
(claude-opus-5, conf 82%)
— Most content is captured, but the left-column "WATER LAP SWIM" schedule table (4 rows plus "KENNEDY POOL" header) and the entire SWIM TEAM / WATER POLO schedule under "Water Polo and Swim Team" are missing; also the "KENNEDY POOL" label above the water-exercise table is absent and descriptive paragraphs were wrongly wrapped into tables.
major
missing_item #4: The WATER LAP SWIM schedule is entirely missing: the 'KENNEDY POOL' label and 4 data rows (03/03-05/30 8:30AM-2PM T-F $2/$5 AGE: 16/UP; 03/03-05/30 9AM-12PM SAT; 06/15-08/29 6:30AM-10AM M-TH; 03/03-05/30 9AM-12PM SAT/SUN) are not extracted.
major
missing_item #165: The SWIM TEAM / WATER POLO schedule block after the paragraph is missing entirely: 'SWIM TEAM :', SPRING 5PM-6PM T-F AGE: 5-17, SUMMER 5PM-6PM M-TH AGE: 5-17, 'WATER POLO:', SPRING 5PM-6PM T-F AGE:8-17, SUMMER 12PM-1PM M-TH AGE: 8-17.
major
missing_item #7: The 'KENNEDY POOL' sub-heading line above the Adult/Older Adult Water Exercise schedule (just below the paragraph #6) is not extracted.
major
wrong_type #96: The descriptive paragraph 'Private Swim Lessons for youth are 30 minutes...' is captured as a table_cell inside table #95 instead of a standalone text block; same issue for #136 in table #135.
minor
table_structure #141: In the Adult Private Swim Lessons table, the price and age columns are merged into a single cell ('$35/$50 AGE: 18+') whereas the youth table keeps them separate — inconsistent column structure.
minor
reading_order #167: Footer page number '14' (#167) is listed after the footer text (#166); it appears first on the page.
Page 14 JSON
{
"document_id": 267,
"page": 14,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 132,
"counts_by_type": {
"figure": 1,
"footer": 2,
"heading": 6,
"table": 5,
"table_cell": 113,
"text": 4,
"title": 1
},
"build_ms": 36,
"items": [
{
"id": "p14.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 33.84,
"t": 791.52,
"r": 298.8,
"b": 572.16
},
"text": "",
"attrs": {
"block_label": "image",
"embedded_text": "Aquatics"
}
},
{
"id": "p14.2",
"order": 2,
"type": "title",
"bbox": {
"l": 34.56,
"t": 758.64,
"r": 257.28,
"b": 691.92
},
"text": "AQUATICS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p14.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 560.4,
"r": 152.4,
"b": 546.96
},
"text": "WATER LAP SWIM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.84,
"t": 545.52,
"r": 292.8,
"b": 412.8
},
"text": "Lap swim requires registration to participate. Lap swim reservations are for 30 minutes. Please plan to arrive 5 minutes before your scheduled time. We encourage participants to register online at CityOfPasadena.net/Reserve or call (626) 744-7590.\nKENNEDY POOL\n03/03-05/30 8:30AM - 2PM T-F $2/$5 AGE: 16/UP\n03/03-05/30 9AM - 12PM SAT $2/$5 AGE: 16/UP\n06/15-08/29 6:30AM - 10AM M-TH $2/$5 AGE: 16/UP\n03/03-05/30 9AM - 12PM SAT/SUN $2/$5 AGE: 16/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 36.72,
"t": 467.28,
"r": 293.76,
"b": 411.84
},
"text": "03/03-05/30 8:30AM - 2PM T-F $2/$5 AGE: 16/UP; 03/03-05/30 9AM - 12PM SAT $2/$5 AGE: 16/UP; 06/15-08/29 6:30AM - 10AM M-TH $2/$5 AGE: 16/UP; 03/03-05/30 9AM - 12PM SAT/SUN $2/$5 AGE: 16/UP",
"attrs": {
"source": "ai_vision",
"reason": "The entire Water Lap Swim schedule table (4 rows) is not covered by any extracted item."
},
"children": [],
"order": 5,
"id": "p14.4.1"
}
]
},
{
"id": "p14.5",
"order": 6,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 404.4,
"r": 293.28,
"b": 390.24
},
"text": "ADULT/OLDER ADULT WATER EXERCISE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.6",
"order": 7,
"type": "text",
"bbox": {
"l": 33.36,
"t": 389.76,
"r": 300.72,
"b": 306.24
},
"text": "Get in shape with water exercise! Our friendly staff make workouts fun and exciting. The pool is accessible to everyone and the water is kept warm. This is a great opportunity for an invigorating, toning, and cardio-conditioning workout. This class gives you all the workout without the impact on your joints. Fee listed is per class. KFNNFDY POOL",
"children": [
{
"type": "text",
"bbox": {
"l": 36.72,
"t": 316.8,
"r": 110.16,
"b": 300.96
},
"text": "KENNEDY POOL",
"attrs": {
"source": "ai_vision",
"reason": "Pool label above the Adult/Older Adult Water Exercise schedule is not covered."
},
"children": [],
"order": 8,
"id": "p14.6.1"
}
]
},
{
"id": "p14.7",
"order": 9,
"type": "table",
"bbox": {
"l": 34.32,
"t": 302.88,
"r": 288.72,
"b": 42
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 15,
"n_cols": 5,
"integrity": {
"cells_checked": 75,
"cells_flagged": 0
}
},
"children": [
{
"id": "p14.7.1",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 300.342,
"r": 79.956,
"b": 290.298
},
"text": "03/3-05/28",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"column_header": true,
"header_source": "heuristic"
}
},
{
"id": "p14.7.2",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 302.88,
"r": 136.08,
"b": 288.3867
},
"text": "8AM - 8:45AM",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"column_header": true,
"header_source": "heuristic"
}
},
{
"id": "p14.7.3",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 157.01988,
"t": 300.342,
"r": 170.735903,
"b": 290.298
},
"text": "T,TH",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"column_header": true,
"header_source": "heuristic"
}
},
{
"id": "p14.7.4",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 202.355903,
"t": 300.342,
"r": 225.215903,
"b": 290.298
},
"text": "$2/$4",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"column_header": true,
"header_source": "heuristic"
}
},
{
"id": "p14.7.5",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 253.859903,
"t": 300.342,
"r": 283.859903,
"b": 290.298
},
"text": "AGE: 18+",
"attrs": {
"row": 0,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"column_header": true,
"header_source": "heuristic"
}
},
{
"id": "p14.7.6",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 285.942,
"r": 79.956,
"b": 275.898
},
"text": "03/3-05/28",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.7",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 288.3867,
"r": 136.08,
"b": 273.8933
},
"text": "9AM -9:45AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.8",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 157.02018,
"t": 285.942,
"r": 170.736203,
"b": 275.898
},
"text": "T,TH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.9",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 202.356203,
"t": 285.942,
"r": 225.216203,
"b": 275.898
},
"text": "$2/$4",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.10",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 253.860203,
"t": 285.942,
"r": 283.860203,
"b": 275.898
},
"text": "AGE: 18+",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.11",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 271.54200000000003,
"r": 79.956,
"b": 261.49800000000005
},
"text": "03/3-05/28",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.12",
"order": 21,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 273.8933,
"r": 136.08,
"b": 259.4
},
"text": "11 AM - 11:45 AM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.13",
"order": 22,
"type": "table_cell",
"bbox": {
"l": 156.06,
"t": 271.54200000000003,
"r": 169.77352,
"b": 261.49800000000005
},
"text": "T,TH",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.14",
"order": 23,
"type": "table_cell",
"bbox": {
"l": 203.25352,
"t": 271.54200000000003,
"r": 226.11352,
"b": 261.49800000000005
},
"text": "$2/$4",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.15",
"order": 24,
"type": "table_cell",
"bbox": {
"l": 253.86004,
"t": 271.54200000000003,
"r": 283.86004,
"b": 261.49800000000005
},
"text": "AGE: 18+",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.16",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 257.14200000000005,
"r": 79.956,
"b": 247.09799999999996
},
"text": "03/3-05/28",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.17",
"order": 26,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 259.4,
"r": 136.08,
"b": 244.9067
},
"text": "12 PM - 12:45 PM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.18",
"order": 27,
"type": "table_cell",
"bbox": {
"l": 156.684,
"t": 257.14200000000005,
"r": 170.397349,
"b": 247.09799999999996
},
"text": "T,TH",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.19",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 202.017349,
"t": 257.14200000000005,
"r": 224.877349,
"b": 247.09799999999996
},
"text": "$2/$4",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.20",
"order": 29,
"type": "table_cell",
"bbox": {
"l": 253.860157,
"t": 257.14200000000005,
"r": 283.860157,
"b": 247.09799999999996
},
"text": "AGE: 18+",
"attrs": {
"row": 3,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.21",
"order": 30,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 242.74199999999996,
"r": 80.184,
"b": 203.89800000000002
},
"text": "03/3-05/28\n03/4-05/29\n03/4-05/29",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.22",
"order": 31,
"type": "table_cell",
"bbox": {
"l": 87.396,
"t": 242.74199999999996,
"r": 138.9,
"b": 203.89800000000002
},
"text": "6 PM - 6:45 PM\n8AM-8:45 AM\n9AM-9:45AM",
"attrs": {
"row": 4,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.23",
"order": 32,
"type": "table_cell",
"bbox": {
"l": 155.64,
"t": 242.74199999999996,
"r": 169.416298,
"b": 203.89800000000002
},
"text": "T,TH\nW,F\nW,F",
"attrs": {
"row": 4,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.24",
"order": 33,
"type": "table_cell",
"bbox": {
"l": 202.833593,
"t": 242.74199999999996,
"r": 225.756298,
"b": 203.89800000000002
},
"text": "$2/$4\n$2/$4\n$2/$4",
"attrs": {
"row": 4,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.25",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 253.859866,
"t": 242.74199999999996,
"r": 285.719938,
"b": 203.89800000000002
},
"text": "AGE: 18+\nAGE: 18+\nAGE: 18+",
"attrs": {
"row": 4,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.26",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 199.54200000000003,
"r": 80.184,
"b": 189.49800000000005
},
"text": "03/4-05/29",
"attrs": {
"row": 5,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.27",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 201.4267,
"r": 136.08,
"b": 186.9333
},
"text": "11AM - 11:45 AM",
"attrs": {
"row": 5,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.28",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 156.288,
"t": 199.54200000000003,
"r": 168.681407,
"b": 189.49800000000005
},
"text": "W,F",
"attrs": {
"row": 5,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.29",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 202.161407,
"t": 199.54200000000003,
"r": 225.021407,
"b": 189.49800000000005
},
"text": "$2/$4",
"attrs": {
"row": 5,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.30",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 253.859831,
"t": 199.54200000000003,
"r": 283.859831,
"b": 189.49800000000005
},
"text": "AGE: 18+",
"attrs": {
"row": 5,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.31",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 185.14200000000005,
"r": 80.184,
"b": 175.09799999999996
},
"text": "03/4-05/29",
"attrs": {
"row": 6,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.32",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 186.9333,
"r": 136.08,
"b": 172.44
},
"text": "12PM - 12:45 PM",
"attrs": {
"row": 6,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.33",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 156.912,
"t": 185.14200000000005,
"r": 169.305626,
"b": 175.09799999999996
},
"text": "W,F",
"attrs": {
"row": 6,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.34",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 202.785626,
"t": 185.14200000000005,
"r": 225.645626,
"b": 175.09799999999996
},
"text": "$2/$4",
"attrs": {
"row": 6,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.35",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 253.859834,
"t": 185.14200000000005,
"r": 283.859834,
"b": 175.09799999999996
},
"text": "AGE: 18+",
"attrs": {
"row": 6,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.36",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 170.74199999999996,
"r": 80.184,
"b": 160.69799999999998
},
"text": "03/4-05/29",
"attrs": {
"row": 7,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.37",
"order": 46,
"type": "table_cell",
"bbox": {
"l": 87.624,
"t": 170.74199999999996,
"r": 137.268,
"b": 160.69799999999998
},
"text": "6PM - 6:45 PM",
"attrs": {
"row": 7,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.38",
"order": 47,
"type": "table_cell",
"bbox": {
"l": 155.868,
"t": 170.74199999999996,
"r": 168.26148,
"b": 160.69799999999998
},
"text": "W,F",
"attrs": {
"row": 7,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.39",
"order": 48,
"type": "table_cell",
"bbox": {
"l": 203.60148,
"t": 170.74199999999996,
"r": 226.46148,
"b": 160.69799999999998
},
"text": "$2/$4",
"attrs": {
"row": 7,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.40",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 253.86006,
"t": 170.74199999999996,
"r": 283.86006,
"b": 160.69799999999998
},
"text": "AGE: 18+",
"attrs": {
"row": 7,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.41",
"order": 50,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 156.34199999999998,
"r": 83.424,
"b": 146.298
},
"text": "06/15-08/26",
"attrs": {
"row": 8,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.42",
"order": 51,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 157.9467,
"r": 136.08,
"b": 143.4533
},
"text": "8AM-9:45AM",
"attrs": {
"row": 8,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.43",
"order": 52,
"type": "table_cell",
"bbox": {
"l": 157.019844,
"t": 156.34199999999998,
"r": 171.443656,
"b": 146.298
},
"text": "M,W",
"attrs": {
"row": 8,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.44",
"order": 53,
"type": "table_cell",
"bbox": {
"l": 203.063656,
"t": 156.34199999999998,
"r": 225.923656,
"b": 146.298
},
"text": "$2/$4",
"attrs": {
"row": 8,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.45",
"order": 54,
"type": "table_cell",
"bbox": {
"l": 253.85974,
"t": 156.34199999999998,
"r": 285.71974,
"b": 146.298
},
"text": "AGE: 18+",
"attrs": {
"row": 8,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.46",
"order": 55,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 141.942,
"r": 83.424,
"b": 131.89800000000002
},
"text": "06/15-08/26",
"attrs": {
"row": 9,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.47",
"order": 56,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 143.4533,
"r": 136.08,
"b": 128.96
},
"text": "9AM - 9:45AM",
"attrs": {
"row": 9,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.48",
"order": 57,
"type": "table_cell",
"bbox": {
"l": 157.068,
"t": 141.942,
"r": 171.489517,
"b": 131.89800000000002
},
"text": "M,W",
"attrs": {
"row": 9,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.49",
"order": 58,
"type": "table_cell",
"bbox": {
"l": 203.109517,
"t": 141.942,
"r": 225.969517,
"b": 131.89800000000002
},
"text": "$2/$4",
"attrs": {
"row": 9,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.50",
"order": 59,
"type": "table_cell",
"bbox": {
"l": 253.860049,
"t": 141.942,
"r": 283.860049,
"b": 131.89800000000002
},
"text": "AGE: 18+",
"attrs": {
"row": 9,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.51",
"order": 60,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 127.54200000000003,
"r": 83.424,
"b": 117.49800000000005
},
"text": "06/15-08/26",
"attrs": {
"row": 10,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.52",
"order": 61,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 128.96,
"r": 136.08,
"b": 114.4667
},
"text": "6PM-6:45PM",
"attrs": {
"row": 10,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.53",
"order": 62,
"type": "table_cell",
"bbox": {
"l": 157.248,
"t": 127.54200000000003,
"r": 171.66959,
"b": 117.49800000000005
},
"text": "M,W",
"attrs": {
"row": 10,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.54",
"order": 63,
"type": "table_cell",
"bbox": {
"l": 203.28959,
"t": 127.54200000000003,
"r": 226.14959,
"b": 117.49800000000005
},
"text": "$2/$4",
"attrs": {
"row": 10,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.55",
"order": 64,
"type": "table_cell",
"bbox": {
"l": 253.85987,
"t": 127.54200000000003,
"r": 283.85987,
"b": 117.49800000000005
},
"text": "AGE: 18+",
"attrs": {
"row": 10,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.56",
"order": 65,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 113.14200000000005,
"r": 83.376,
"b": 103.09799999999996
},
"text": "06/15-08/27",
"attrs": {
"row": 11,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.57",
"order": 66,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 114.4667,
"r": 136.08,
"b": 99.9733
},
"text": "8AM-8:45AM",
"attrs": {
"row": 11,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.58",
"order": 67,
"type": "table_cell",
"bbox": {
"l": 157.164,
"t": 113.14200000000005,
"r": 170.877422,
"b": 103.09799999999996
},
"text": "T,TH",
"attrs": {
"row": 11,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.59",
"order": 68,
"type": "table_cell",
"bbox": {
"l": 202.497422,
"t": 113.14200000000005,
"r": 225.357422,
"b": 103.09799999999996
},
"text": "$2/$4",
"attrs": {
"row": 11,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.60",
"order": 69,
"type": "table_cell",
"bbox": {
"l": 253.859822,
"t": 113.14200000000005,
"r": 285.719822,
"b": 103.09799999999996
},
"text": "AGE: 18+",
"attrs": {
"row": 11,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.61",
"order": 70,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 98.74199999999996,
"r": 83.424,
"b": 88.69799999999998
},
"text": "06/16-08/27",
"attrs": {
"row": 12,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.62",
"order": 71,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 99.9733,
"r": 136.08,
"b": 85.48
},
"text": "9AM - 9:45AM",
"attrs": {
"row": 12,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.63",
"order": 72,
"type": "table_cell",
"bbox": {
"l": 157.068,
"t": 98.74199999999996,
"r": 170.781337,
"b": 88.69799999999998
},
"text": "T,TH",
"attrs": {
"row": 12,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.64",
"order": 73,
"type": "table_cell",
"bbox": {
"l": 202.401337,
"t": 98.74199999999996,
"r": 225.261337,
"b": 88.69799999999998
},
"text": "$2/$4",
"attrs": {
"row": 12,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.65",
"order": 74,
"type": "table_cell",
"bbox": {
"l": 253.859857,
"t": 98.74199999999996,
"r": 283.859857,
"b": 88.69799999999998
},
"text": "AGE: 18+",
"attrs": {
"row": 12,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.66",
"order": 75,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 84.34199999999998,
"r": 171.995891,
"b": 59.898000000000025
},
"text": "06/16-08/27\nVILLA PARKE COMMUNITY CENTER POOL",
"attrs": {
"row": 13,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.7.67",
"order": 76,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 85.48,
"r": 136.08,
"b": 70.9867
},
"text": "6PM - 6:45 PM",
"attrs": {
"row": 13,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.68",
"order": 77,
"type": "table_cell",
"bbox": {
"l": 157.248,
"t": 84.34199999999998,
"r": 170.96141,
"b": 74.298
},
"text": "T,TH",
"attrs": {
"row": 13,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.69",
"order": 78,
"type": "table_cell",
"bbox": {
"l": 202.58141,
"t": 84.34199999999998,
"r": 225.44141,
"b": 74.298
},
"text": "$2/$4",
"attrs": {
"row": 13,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.70",
"order": 79,
"type": "table_cell",
"bbox": {
"l": 253.86005,
"t": 84.34199999999998,
"r": 283.86005,
"b": 74.298
},
"text": "AGE: 18+",
"attrs": {
"row": 13,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.71",
"order": 80,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 55.54200000000003,
"r": 83.352,
"b": 45.49800000000005
},
"text": "06/16-07/30",
"attrs": {
"row": 14,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.72",
"order": 81,
"type": "table_cell",
"bbox": {
"l": 85.2,
"t": 56.4933,
"r": 136.08,
"b": 42
},
"text": "9 AM - 9:45 AM",
"attrs": {
"row": 14,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.7.73",
"order": 82,
"type": "table_cell",
"bbox": {
"l": 155.160144,
"t": 55.54200000000003,
"r": 171.456113,
"b": 45.49800000000005
},
"text": "T, TH",
"attrs": {
"row": 14,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.74",
"order": 83,
"type": "table_cell",
"bbox": {
"l": 203.076113,
"t": 55.54200000000003,
"r": 225.936113,
"b": 45.49800000000005
},
"text": "$2/$4",
"attrs": {
"row": 14,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.7.75",
"order": 84,
"type": "table_cell",
"bbox": {
"l": 253.860245,
"t": 55.54200000000003,
"r": 283.860245,
"b": 45.49800000000005
},
"text": "AGE: 18+",
"attrs": {
"row": 14,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p14.8",
"order": 85,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 756.72,
"r": 512.64,
"b": 742.32
},
"text": "YOUTH PRIVATE SWIM LESSON",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.9",
"order": 86,
"type": "table",
"bbox": {
"l": 309.6,
"t": 742.8,
"r": 573.12,
"b": 552.72
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 5,
"n_cols": 5,
"integrity": {
"cells_checked": 21,
"cells_flagged": 1,
"flags": [
{
"row": 2,
"col": 1,
"coverage": 0.5,
"text": "9AM - 2PM"
}
]
}
},
"children": [
{
"id": "p14.9.1",
"order": 87,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 741.11,
"r": 571.786734,
"b": 668.468
},
"text": "Private Swim Lessons for youth are 30 minutes. All levels are based on the American Red Cross Learn-to Swim Program. Ratio of Instructor to participant is 1 to 1. For more information, please contact the Aquatics Program at (626) 744-7590.\nKENNEDY POOL",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.2",
"order": 88,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 664.112,
"r": 356.136,
"b": 610.8679999999999
},
"text": "03/3-05/26\n03/4-05/27\n03/5-05/28\n03/6-05/29",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.3",
"order": 89,
"type": "table_cell",
"bbox": {
"l": 367.044,
"t": 664.112,
"r": 408.348,
"b": 610.8679999999999
},
"text": "10AM - 2PM\n10AM - 2PM\n10AM - 2PM\n10AM - 2PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.4",
"order": 90,
"type": "table_cell",
"bbox": {
"l": 433.019784,
"t": 664.112,
"r": 455.724024,
"b": 610.8679999999999
},
"text": "TUE\nWED\nTHURS\nFRI",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.5",
"order": 91,
"type": "table_cell",
"bbox": {
"l": 491.999676,
"t": 664.112,
"r": 523.679892,
"b": 610.8679999999999
},
"text": "$35/$50\n$35/$50\n$35/$50\n$35/$50",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.6",
"order": 92,
"type": "table_cell",
"bbox": {
"l": 529.859592,
"t": 664.112,
"r": 562.740026,
"b": 610.8679999999999
},
"text": "AGE: 5-17\nAGE: 5-17\nAGE: 5-17\nAGE: 5-17",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.7",
"order": 93,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 606.512,
"r": 355.884,
"b": 596.468
},
"text": "03/7-05/30",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.8",
"order": 94,
"type": "table_cell",
"bbox": {
"l": 362.304,
"t": 628.752,
"r": 415.008,
"b": 609.744
},
"text": "9AM - 2PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.9.9",
"order": 95,
"type": "table_cell",
"bbox": {
"l": 433.020132,
"t": 606.512,
"r": 446.604077,
"b": 596.468
},
"text": "SAT",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.10",
"order": 96,
"type": "table_cell",
"bbox": {
"l": 492.000161,
"t": 606.512,
"r": 523.680161,
"b": 596.468
},
"text": "$35/$50",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.11",
"order": 97,
"type": "table_cell",
"bbox": {
"l": 529.860077,
"t": 606.512,
"r": 562.740077,
"b": 596.468
},
"text": "AGE: 5-17",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.12",
"order": 98,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 592.112,
"r": 397.26,
"b": 567.668
},
"text": "06/20-08/30\nBLAIR HIGH SCHOOL POOL",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.9.13",
"order": 99,
"type": "table_cell",
"bbox": {
"l": 368.052,
"t": 592.112,
"r": 409.116,
"b": 582.068
},
"text": "9AM - 12PM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.14",
"order": 100,
"type": "table_cell",
"bbox": {
"l": 433.296,
"t": 592.112,
"r": 463.269776,
"b": 582.068
},
"text": "SAT, SUN",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.15",
"order": 101,
"type": "table_cell",
"bbox": {
"l": 492.01172,
"t": 592.112,
"r": 523.69172,
"b": 582.068
},
"text": "$35/$50",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.16",
"order": 102,
"type": "table_cell",
"bbox": {
"l": 536.519794,
"t": 563.312,
"r": 569.399794,
"b": 553.268
},
"text": "AGE: 5-17",
"attrs": {
"row": 3,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.17",
"order": 103,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 563.312,
"r": 354.876,
"b": 553.268
},
"text": "06/20-08/1",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.18",
"order": 104,
"type": "table_cell",
"bbox": {
"l": 368.736,
"t": 563.312,
"r": 409.776,
"b": 553.268
},
"text": "9AM - 12PM",
"attrs": {
"row": 4,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.19",
"order": 105,
"type": "table_cell",
"bbox": {
"l": 434.795604,
"t": 563.312,
"r": 448.379794,
"b": 553.268
},
"text": "SAT",
"attrs": {
"row": 4,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.20",
"order": 106,
"type": "table_cell",
"bbox": {
"l": 490.979794,
"t": 563.312,
"r": 522.659794,
"b": 553.268
},
"text": "$35/$50",
"attrs": {
"row": 4,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.9.21",
"order": 107,
"type": "table_cell",
"bbox": {
"l": 520.416,
"t": 571.728,
"r": 573.12,
"b": 552.72
},
"text": "AGE: 5-17",
"attrs": {
"row": 4,
"col": 4,
"rowspan": 1,
"colspan": 1
}
}
]
},
{
"id": "p14.10",
"order": 108,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 540.72,
"r": 517.2,
"b": 526.08
},
"text": "ADULT PRIVATE SWIM LESSONS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.11",
"order": 109,
"type": "table",
"bbox": {
"l": 309.12,
"t": 526.8,
"r": 574.306988,
"b": 347.28
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 5,
"n_cols": 4,
"integrity": {
"cells_checked": 17,
"cells_flagged": 2,
"flags": [
{
"row": 2,
"col": 1,
"coverage": 0,
"text": "10AM-2PM"
},
{
"row": 3,
"col": 1,
"coverage": 0,
"text": "9AM-2PM"
}
]
}
},
"children": [
{
"id": "p14.11.1",
"order": 110,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 525.11,
"r": 574.306988,
"b": 450.068
},
"text": "Private Swim Lessons for adults are 30 minutes. All levels are based on the American Red Cross Learn-to Swim Program. Ratio of Instructor to participant is 1 to 1. For more information, please contact the Aquatics Program at (626) 744-7590.\nKENNEDY POOL",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 4,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.2",
"order": 111,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 445.712,
"r": 359.328,
"b": 406.868
},
"text": "03/3-05/26\n03/12-05/27\n03/13-05/28",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.3",
"order": 112,
"type": "table_cell",
"bbox": {
"l": 368.496,
"t": 445.712,
"r": 411.84,
"b": 406.868
},
"text": "10AM - 2PM\n10AM - 2PM\n10AM - 2PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.4",
"order": 113,
"type": "table_cell",
"bbox": {
"l": 433.019916,
"t": 445.712,
"r": 455.723916,
"b": 406.868
},
"text": "TUE\nWED\nTHURS",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.5",
"order": 114,
"type": "table_cell",
"bbox": {
"l": 493.859724,
"t": 445.712,
"r": 559.86041,
"b": 406.868
},
"text": "$35/$50 AGE: 18+\n$35/$50 AGE: 18+\n$35/$50 AGE: 18+",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.6",
"order": 115,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 402.512,
"r": 359.556,
"b": 392.468
},
"text": "03/14-05/29",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.7",
"order": 116,
"type": "table_cell",
"bbox": {
"l": 375.18,
"t": 427.0667,
"r": 441.24,
"b": 407.12
},
"text": "10AM-2PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.11.8",
"order": 117,
"type": "table_cell",
"bbox": {
"l": 433.01994,
"t": 402.512,
"r": 443.19594,
"b": 392.468
},
"text": "FRI",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.9",
"order": 118,
"type": "table_cell",
"bbox": {
"l": 493.859832,
"t": 402.512,
"r": 559.859978,
"b": 392.468
},
"text": "$35/$50 AGE: 18+",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.10",
"order": 119,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 388.112,
"r": 397.26,
"b": 363.668
},
"text": "03/15-05/30\nBLAIR HIGH SCHOOL POOL",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p14.11.11",
"order": 120,
"type": "table_cell",
"bbox": {
"l": 375.18,
"t": 407.12,
"r": 441.24,
"b": 387.1733
},
"text": "9AM-2PM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p14.11.12",
"order": 121,
"type": "table_cell",
"bbox": {
"l": 433.01994,
"t": 388.112,
"r": 446.603885,
"b": 378.068
},
"text": "SAT",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.13",
"order": 122,
"type": "table_cell",
"bbox": {
"l": 493.859969,
"t": 388.112,
"r": 559.860115,
"b": 378.068
},
"text": "$35/$50 AGE: 18+",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.14",
"order": 123,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 359.312,
"r": 359.448,
"b": 349.268
},
"text": "06/20-08/01",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.15",
"order": 124,
"type": "table_cell",
"bbox": {
"l": 368.748,
"t": 359.312,
"r": 409.788,
"b": 349.268
},
"text": "9AM - 12PM",
"attrs": {
"row": 4,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.16",
"order": 125,
"type": "table_cell",
"bbox": {
"l": 433.020096,
"t": 359.312,
"r": 446.604041,
"b": 349.268
},
"text": "SAT",
"attrs": {
"row": 4,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p14.11.17",
"order": 126,
"type": "table_cell",
"bbox": {
"l": 492.000125,
"t": 359.312,
"r": 559.860041,
"b": 349.268
},
"text": "$35/$50 AGE: 18+",
"attrs": {
"row": 4,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p14.12",
"order": 127,
"type": "heading",
"bbox": {
"l": 308.64,
"t": 327.84,
"r": 509.04,
"b": 307.92
},
"text": "WATER POLO AND SWIM TEAM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.13",
"order": 128,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 311.52,
"r": 378,
"b": 300.24
},
"text": "(SUMMER ONLY)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p14.14",
"order": 129,
"type": "text",
"bbox": {
"l": 308.88,
"t": 299.76,
"r": 565.44,
"b": 128.88
},
"text": "Calling all competitors! The City of Pasadena is excited to offer FREE swim and water polo teams at Kennedy Pool. Teams generally practice in the Spring: Tuesday thru Friday and Summer Monday thru Thursday. Competitions will be held on Saturdays. Must be able to swim 25 yards to participate. Participation in meets and games is mandatory.\nSWIM TEAM:\nSPRING 5PM-6PM T-F AGE: 5-17\nSUMMER 5PM-6PM M-TH AGE: 5-17\nWATER POLO:\nSPRING 5PM-6PM T-F AGE: 8-17\nSUMMER 12PM-1PM M-TH AGE: 8-17"
},
{
"type": "table",
"bbox": {
"l": 306,
"t": 126.72,
"r": 550.8,
"b": 47.52
},
"text": "SWIM TEAM : SPRING 5PM-6PM T- F AGE: 5-17; SUMMER 5PM -6PM M-TH AGE: 5-17; WATER POLO: SPRING 5PM-6PM T-F AGE:8-17; SUMMER 12PM-1PM M-TH AGE: 8-17",
"attrs": {
"source": "ai_vision",
"reason": "Swim team / water polo schedule listing at bottom of right column is entirely uncovered."
},
"children": [],
"order": 130,
"id": "p14.15"
},
{
"id": "p14.16",
"order": 131,
"type": "footer",
"bbox": {
"l": 36.24,
"t": 19.92,
"r": 217.92,
"b": 7.92
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p14.17",
"order": 132,
"type": "footer",
"bbox": {
"l": 32.16,
"t": 18.72,
"r": 44.4,
"b": 8.64
},
"text": "14",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 76,
"added": 3,
"retyped": 0
}
}
Page 15
44 item(s)
JSON
figure (4)
footer (1)
formula (3)
heading (17)
text (18)
title (1)
1 · TITLE
2 · FIGURE
3 · HEADING
4 · TEXT
5 · FIGURE
6 · HEADING
7 · TEXT
8 · HEADING
9 · TEXT
10 · HEADING
11 · TEXT
12 · HEADING
13 · TEXT
14 · HEADING
15 · TEXT
16 · HEADING
17 · TEXT
18 · HEADING
19 · TEXT
20 · HEADING
21 · TEXT
22 · HEADING
23
24 · TEXT
25 · TEXT
26 · HEADING
27 · HEADING
28 · TEXT
29
30
31 · HEADING
32 · HEADING
33 · TEXT
34 · HEADING
35 · TEXT
36 · HEADING
37 · TEXT
38 · TEXT
39 · HEADING
40 · TEXT
41 · FIGURE
42 · TEXT
43 · FIGURE
44 · FOOTER
AI review: page OK
(claude-opus-5, conf 80%)
— The extraction captures all visible content in correct reading order (left column headings/paragraphs, then right column, then the register banner and footer), with reasonable types. Only minor quibbles: the "Blair High School Pool*" heading text includes odd math markup and the "Kennedy Pool" year-round entry mixes heading and address into a single text block.
minor
text_mismatch #22: Heading text rendered as "Blair High School Pool $ ^{*} $" — the asterisk is captured with spurious LaTeX-style markup instead of plain "Blair High School Pool*".
minor
other #19: "Kennedy Pool" (bold sub-heading) is merged with its address into one text block, unlike the parallel entries (#22/#23, #29/#30) where the bold name is a separate heading.
Page 15 JSON
{
"document_id": 267,
"page": 15,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 44,
"counts_by_type": {
"figure": 4,
"footer": 1,
"formula": 3,
"heading": 17,
"text": 18,
"title": 1
},
"build_ms": 4,
"items": [
{
"id": "p15.1",
"order": 1,
"type": "title",
"bbox": {
"l": 33.6,
"t": 756,
"r": 217.68,
"b": 726.48
},
"text": "SWIM LEVEL PREREQUISITES & COURSE DESCRIPTIONS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p15.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 233.04,
"t": 730.8,
"r": 272.16,
"b": 698.16
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p15.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 710.16,
"r": 226.08,
"b": 699.6
},
"text": "P&M - Parent & Me (6 months - 3 years old)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.36,
"t": 698.64,
"r": 290.16,
"b": 588.48
},
"text": "This swim class is for parents and infants with a focus on water adjustment, safety skills, and practices. This class will equip parents with information on proper holds and safe submersion to help them become confident handling their infants in the water and help the infants adapt to the water. Swim diapers are required for all infants participating in the class. Please note: a parent (legal guardian) must be in the water at all times during class. This class will provide 30 minutes of lessons with the instructor and 15 minutes for guardian and child to explore skills in the water."
},
{
"id": "p15.5",
"order": 5,
"type": "figure",
"bbox": {
"l": 196.8,
"t": 587.04,
"r": 223.2,
"b": 565.68
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p15.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 566.88,
"r": 233.04,
"b": 556.32
},
"text": "Level TT - Tiny Tots (2-4 years old)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.7",
"order": 7,
"type": "text",
"bbox": {
"l": 33.6,
"t": 555.6,
"r": 292.8,
"b": 511.2
},
"text": "This class is designed for children with little or no swimming experience and focuses on water adjustment while introducing basic swimming skills. Children who are not yet fully potty trained must wear swim diapers in the pool."
},
{
"id": "p15.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 501.12,
"r": 68.16,
"b": 491.04
},
"text": "Level 1",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.9",
"order": 9,
"type": "text",
"bbox": {
"l": 33.36,
"t": 490.32,
"r": 299.04,
"b": 456.24
},
"text": "Introduction to water activities, good habits, and overall water safety. Blow bubbles, bobbing, float, glide and proper arm/leg actions on front/back and underwater object retrieval."
},
{
"id": "p15.10",
"order": 10,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 446.4,
"r": 68.88,
"b": 435.6
},
"text": "Level 2",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.11",
"order": 11,
"type": "text",
"bbox": {
"l": 33.36,
"t": 435.36,
"r": 301.44,
"b": 390
},
"text": "Development of proper swimming techniques like front and back crawls, front/back floats and glides, recover to a vertical position after swimming, treading water, underwater breath holding and object retrieval, and water safety skills."
},
{
"id": "p15.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 380.16,
"r": 68.16,
"b": 369.6
},
"text": "Level 3",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.13",
"order": 13,
"type": "text",
"bbox": {
"l": 33.12,
"t": 369.36,
"r": 300.24,
"b": 313.44
},
"text": "Guided practice of previously attained skills in deeper water: side breathing with the front crawl, treading water, flutter kick, scissor kick, dolphin kick, and breaststroke kick; elementary backstroke; headfirst entries into the water; non-swimming assists; and water safety skills."
},
{
"id": "p15.14",
"order": 14,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 303.36,
"r": 68.64,
"b": 292.8
},
"text": "Level 4",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.15",
"order": 15,
"type": "text",
"bbox": {
"l": 32.88,
"t": 292.08,
"r": 291.6,
"b": 214.08
},
"text": "Develop knowledge and techniques of all strokes and other aquatic skills including preparation for swim team. Open turns on front and back, treading water, refine front crawl and backstroke, and improve on breast stroke, butterfly and sidestroke, introduction to diving, feet first surface dives, survival swimming, and water safety skills including simple water saving assists."
},
{
"id": "p15.16",
"order": 16,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 204.24,
"r": 68.64,
"b": 193.92
},
"text": "Level 5",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.17",
"order": 17,
"type": "text",
"bbox": {
"l": 33.12,
"t": 193.44,
"r": 287.52,
"b": 136.8
},
"text": "Further coordination and refinement of strokes and preparation for the swim team. Continued conditioning and stroke refinement, racing starts to streamline, flipturns, sculling, shallow angled dives, tuck/pike dives, non-swimming assists, and water safety skills."
},
{
"id": "p15.18",
"order": 18,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 738.96,
"r": 426.72,
"b": 708.24
},
"text": "POOL LOCATIONS YEAR-ROUND",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.19",
"order": 19,
"type": "text",
"bbox": {
"l": 310.08,
"t": 691.92,
"r": 405.84,
"b": 658.56
},
"text": "Kennedy Pool\n1081 N. Fair Oaks Ave.\n(626) 744-7590"
},
{
"id": "p15.20",
"order": 20,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 650.88,
"r": 409.68,
"b": 637.44
},
"text": "SUMMER ONLY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.21",
"order": 21,
"type": "text",
"bbox": {
"l": 309.84,
"t": 632.4,
"r": 469.2,
"b": 599.04
},
"text": "Villa Parke Community Center Pool\n363 E. Villa St.\n(626) 585-2026"
},
{
"id": "p15.22",
"order": 22,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 588.72,
"r": 414.48,
"b": 577.68
},
"text": "Blair High School Pool [p15.22.1]",
"attrs": {
"block_label": "paragraph_title"
},
"children": [
{
"id": "p15.22.1",
"order": 23,
"type": "formula",
"bbox": {
"l": 310.32,
"t": 588.72,
"r": 414.48,
"b": 577.68
},
"text": "^{*}",
"attrs": {
"latex": "^{*}",
"inline": true,
"text_offset": 23,
"text_span": 10,
"bbox_estimated": true,
"notation": "latex",
"alt": "to the power of *",
"mathml": "<math aria-label=\"to the power of *\" xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"inline\"><mrow><msup><mi /><mrow><mo>*</mo></mrow></msup></mrow></math>"
}
}
]
},
{
"id": "p15.23",
"order": 24,
"type": "text",
"bbox": {
"l": 309.84,
"t": 576.48,
"r": 404.16,
"b": 554.64
},
"text": "1201 S. Marengo Ave.\n(626) 585-2027"
},
{
"id": "p15.24",
"order": 25,
"type": "text",
"bbox": {
"l": 310.08,
"t": 544.8,
"r": 542.88,
"b": 521.28
},
"text": "*Blair High School will only have seven weeks of swim lessons, ending August 1, 2026."
},
{
"id": "p15.25",
"order": 26,
"type": "heading",
"bbox": {
"l": 310.56,
"t": 501.6,
"r": 415.2,
"b": 488.64
},
"text": "FREE REC SWIM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.26",
"order": 27,
"type": "heading",
"bbox": {
"l": 310.56,
"t": 487.2,
"r": 374.88,
"b": 477.12
},
"text": "Kennedy Pool",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.27",
"order": 28,
"type": "text",
"bbox": {
"l": 309.6,
"t": 478.32,
"r": 559.68,
"b": 421.2
},
"text": "(Spring) Sat. from 1 - 4 p.m.\n(Summer) M-Th. from 1 - 3:30 p.m.\nF-Sun. from 1 - 4 p.m.\n [p15.27.1]Kennedy Pool will be open on the[p15.27.2] of July for Rec swim from 1-4 p.m.",
"children": [
{
"id": "p15.27.1",
"order": 29,
"type": "formula",
"bbox": {
"l": 309.6,
"t": 478.32,
"r": 559.68,
"b": 421.2
},
"text": "^{*}",
"attrs": {
"latex": "^{*}",
"inline": true,
"text_offset": 88,
"text_span": 10,
"bbox_estimated": true,
"notation": "latex",
"alt": "to the power of *",
"mathml": "<math aria-label=\"to the power of *\" xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"inline\"><mrow><msup><mi /><mrow><mo>*</mo></mrow></msup></mrow></math>"
}
},
{
"id": "p15.27.2",
"order": 30,
"type": "formula",
"bbox": {
"l": 309.6,
"t": 478.32,
"r": 559.68,
"b": 421.2
},
"text": "4^{th}",
"attrs": {
"latex": "4^{th}",
"inline": true,
"text_offset": 130,
"text_span": 10,
"bbox_estimated": true,
"notation": "latex",
"alt": "4 to the power of th",
"mathml": "<math aria-label=\"4 to the power of th\" xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"inline\"><mrow><msup><mn>4</mn><mrow><mi>t</mi><mi>h</mi></mrow></msup></mrow></math>"
}
}
]
},
{
"id": "p15.28",
"order": 31,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 412.32,
"r": 409.68,
"b": 398.88
},
"text": "SUMMER ONLY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.29",
"order": 32,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 394.32,
"r": 383.76,
"b": 383.04
},
"text": "Villa Parke Pool",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.30",
"order": 33,
"type": "text",
"bbox": {
"l": 310.56,
"t": 381.84,
"r": 410.16,
"b": 359.76
},
"text": "M-Th from 1 - 3:30 p.m.\nF, Sat from 1-4 p.m."
},
{
"id": "p15.31",
"order": 34,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 349.92,
"r": 411.6,
"b": 338.88
},
"text": "Blair High School Pool",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.32",
"order": 35,
"type": "text",
"bbox": {
"l": 310.56,
"t": 338.16,
"r": 411.12,
"b": 316.08
},
"text": "M-Th from 1 - 3:30 p.m.\nF, Sat from 1-4 p.m."
},
{
"id": "p15.33",
"order": 36,
"type": "heading",
"bbox": {
"l": 310.56,
"t": 306.96,
"r": 344.88,
"b": 294.48
},
"text": "FEES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.34",
"order": 37,
"type": "text",
"bbox": {
"l": 309.6,
"t": 293.04,
"r": 528.96,
"b": 258.96
},
"text": "Group lesson fees per session:\nThe ratio of staff to patrons is 1:3 - 1:7 for levels 1-5.\nYouth 12 & under $30/$65"
},
{
"id": "p15.35",
"order": 38,
"type": "text",
"bbox": {
"l": 309.6,
"t": 249.12,
"r": 484.32,
"b": 214.8
},
"text": "Private lesson fees per 30-minute class:\nYouth 17 & under $35/$50\nAdults 18 & over $35/$50"
},
{
"id": "p15.36",
"order": 39,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 196.08,
"r": 475.68,
"b": 182.88
},
"text": "LOCKERS & SWIM ATTIRE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p15.37",
"order": 40,
"type": "text",
"bbox": {
"l": 309.12,
"t": 182.16,
"r": 576.24,
"b": 137.04
},
"text": "Participants are required to be dressed in swim attire for class session. Bathrooms will remain open and outdoor showers are available. Children who are not yet fully potty trained must wear swim diapers in the pool."
},
{
"id": "p15.38",
"order": 41,
"type": "figure",
"bbox": {
"l": 32.02,
"t": 119.58,
"r": 318.58,
"b": 28.5
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p15.39",
"order": 42,
"type": "text",
"bbox": {
"l": 30.72,
"t": 112.32,
"r": 245.76,
"b": 50.64
},
"text": "REGISTER ONLINE!\nVISIT CITYOFPASADENA.NET/RESERVE"
},
{
"id": "p15.40",
"order": 43,
"type": "figure",
"bbox": {
"l": 243.6,
"t": 113.04,
"r": 284.64,
"b": 72.96
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p15.41",
"order": 44,
"type": "footer",
"bbox": {
"l": 409.44,
"t": 19.44,
"r": 593.28,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 15",
"attrs": {
"block_label": "footer"
}
}
]
}
Page 16
57 item(s)
JSON
figure (12)
footer (2)
table (4)
table_cell (36)
text (2)
title (1)
1 · TITLE
2 · TEXT
3 · TABLE
4
5
6
7
8
9
10 · FIGURE
11 · FIGURE
12 · FIGURE
13 · TEXT
14 · TABLE_CELL
15 · TABLE_CELL
16 · TABLE
17
18
19
20
21 · FIGURE
22 · FIGURE
23 · FIGURE
24 · FIGURE
25 · TABLE_CELL
26 · TABLE_CELL
27 · TABLE
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 · FIGURE
45 · FIGURE
46 · FIGURE
47 · FIGURE
48 · TABLE_CELL
49 · TABLE_CELL
50 · FIGURE
51 · TABLE
52
53
54
55
56 · FOOTER
57 · FOOTER
AI review
(claude-opus-5, conf 78%)
— Content coverage and reading order are essentially correct, with all four schedule tables, both intro paragraphs and the footer captured. The main defects are structural: three of the four table header rows are detached from their tables, plus a dozen phantom empty figure items.
major
nesting #30: The blue header row of the Blair Pool table (#30/#31) is emitted as free-standing table_cells outside table #32, so the table lacks its header. Same problem for Villa Parke (#57/#58) and Kennedy summer (#84/#85). Only the first table (#3) correctly includes its header cells (#4/#5).
minor
other #26: Numerous spurious empty [figure] items (#26, #27, #28, #53, #54, #55, #56, #80, #81, #82, #83, #86) are reported over table interiors where no figure exists in the image.
minor
wrong_bbox #1: Heading bbox (10,5,61,10) is narrower than the rendered title, which extends to roughly 62% width and slightly lower; minor.
minor
text_mismatch #2: Extracted text reads 'March 3, 2026' while the image shows 'March 3,2026' (no space); also the paragraph text is truncated with an ellipsis in the listing.
Page 16 JSON
{
"document_id": 267,
"page": 16,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 57,
"counts_by_type": {
"figure": 12,
"footer": 2,
"table": 4,
"table_cell": 36,
"text": 2,
"title": 1
},
"build_ms": 15,
"items": [
{
"id": "p16.1",
"order": 1,
"type": "title",
"bbox": {
"l": 59.04,
"t": 751.68,
"r": 372.72,
"b": 710.4
},
"text": "GROUP SWIM LESSONS",
"attrs": {
"block_label": "paragraph_title",
"ai_retyped_from": "heading",
"ai_reason": "Large page title 'GROUP SWIM LESSONS' at top of page."
}
},
{
"id": "p16.2",
"order": 2,
"type": "text",
"bbox": {
"l": 66.48,
"t": 705.36,
"r": 542.4,
"b": 654.96
},
"text": "The Spring session begins March 3, 2026. Registration for Pasadena residents and Pasadena Unified School District (PUSD) students opens online on Tuesday, February 17. General registration begins on Tuesday February 24. NOTE: If your child is a PUSD and non-resident of Pasadena, please call (626) 744-7330 for assistance with registration. For more information, please call (626) 744-7590."
},
{
"id": "p16.3",
"order": 3,
"type": "table",
"bbox": {
"l": 57.12,
"t": 638.64,
"r": 563.52,
"b": 531.84
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 4,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p16.3.1",
"order": 4,
"type": "table_cell",
"bbox": {
"l": 68.1172,
"t": 636.534,
"r": 247.933187,
"b": 626.202
},
"text": "KENNEDY POOL ONLY (MARCH 3 – MAY 29)",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p16.3.2",
"order": 5,
"type": "table_cell",
"bbox": {
"l": 374.115047,
"t": 636.534,
"r": 510.41887,
"b": 626.202
},
"text": "ONLINE REGISTRATION DEADLINE",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true
}
},
{
"id": "p16.3.3",
"order": 6,
"type": "table_cell",
"bbox": {
"l": 64.0039,
"t": 612.017,
"r": 120.5769,
"b": 534.81
},
"text": "10:00 – 10:50 AM\n11:00 – 11:50 AM\n4:00 – 4:50 PM\n5:00 – 5:50 PM\n6:00 – 6:50 PM",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.3.4",
"order": 7,
"type": "table_cell",
"bbox": {
"l": 189.00779,
"t": 612.017,
"r": 250.9819,
"b": 534.81
},
"text": "TT/ LEVELS 1 - 5\nLEVELS TT - 5\nLEVELS TT - 5\nLEVELS TT - 2\nP&T / LEVELS 1 - 5",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.3.5",
"order": 8,
"type": "table_cell",
"bbox": {
"l": 327.00301,
"t": 612.017,
"r": 343.921314,
"b": 534.81
},
"text": "M-TH\nM-TH\nM-TH\nM-TH\nM-TH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.3.6",
"order": 9,
"type": "table_cell",
"bbox": {
"l": 374.005786,
"t": 612.017,
"r": 515.290351,
"b": 534.81
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p16.4",
"order": 10,
"type": "figure",
"bbox": {
"l": 176.845,
"t": 615.956,
"r": 195.565,
"b": 500.756
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.5",
"order": 11,
"type": "figure",
"bbox": {
"l": 320.445,
"t": 615.916,
"r": 339.165,
"b": 508.996
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.6",
"order": 12,
"type": "figure",
"bbox": {
"l": 366.885,
"t": 600.156,
"r": 385.605,
"b": 498.636
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.7",
"order": 13,
"type": "text",
"bbox": {
"l": 60.48,
"t": 520.56,
"r": 533.76,
"b": 468.48
},
"text": "The Summer session begins June 15, 2026. Registration for Pasadena residents and Pasadena Unified School District (PUSD) students opens online Tuesday, May 5. General registration begins Tuesday, May 12. NOTE: If your child is a PUSD and non-resident of Pasadena, please call (626) 744-7330 for assistance with registration."
},
{
"id": "p16.8",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 66.96,
"t": 449.52,
"r": 204.24,
"b": 433.68
},
"text": "BLAIR POOL (JUNE 15 - JULY 30)",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "This is the blue header row of the Blair Pool table, not a caption."
}
},
{
"id": "p16.9",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 374.64,
"t": 449.28,
"r": 514.32,
"b": 433.92
},
"text": "ONLINE REGISTRATION DEADLINE",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Header row cell of the Blair Pool table, not a caption."
}
},
{
"id": "p16.10",
"order": 16,
"type": "table",
"bbox": {
"l": 55.44,
"t": 427.2,
"r": 563.04,
"b": 340.08
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 4,
"integrity": {
"cells_checked": 4,
"cells_flagged": 0
}
},
"children": [
{
"id": "p16.10.1",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 66.1922,
"t": 420.615,
"r": 122.7652,
"b": 343.408
},
"text": "10:00 – 10:50 AM\n11:00 – 11:50 AM\n4:00 – 4:50 PM\n5:00 – 5:50 PM\n6:00 – 6:50 PM",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.10.2",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 191.19609,
"t": 420.615,
"r": 254.6662,
"b": 343.408
},
"text": "P&M / LEVELS 1 - 5\nLEVELS TT - 5\nLEVELS TT - 5\nLEVELS TT - 5\nP&M / LEVELS 1 - 5",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.10.3",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 329.19098,
"t": 420.615,
"r": 346.109064,
"b": 343.408
},
"text": "M-TH\nM-TH\nM-TH\nM-TH\nM-TH",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.10.4",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 376.194284,
"t": 420.615,
"r": 519.348333,
"b": 343.408
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 M. MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p16.11",
"order": 21,
"type": "figure",
"bbox": {
"l": 320.365,
"t": 424.374,
"r": 339.085,
"b": 303.414
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.12",
"order": 22,
"type": "figure",
"bbox": {
"l": 176.765,
"t": 424.011,
"r": 195.485,
"b": 308.811
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.13",
"order": 23,
"type": "figure",
"bbox": {
"l": 366.805,
"t": 408.211,
"r": 385.525,
"b": 306.691
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.14",
"order": 24,
"type": "figure",
"bbox": {
"l": 409.758,
"t": 392.335,
"r": 428.478,
"b": 288.655
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.15",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 66.24,
"t": 329.76,
"r": 242.88,
"b": 313.44
},
"text": "VILLA PARKE POOL (JUNE 15 - AUGUST 6)",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Blue header row of the Villa Parke Pool table, not a caption."
}
},
{
"id": "p16.16",
"order": 26,
"type": "table_cell",
"bbox": {
"l": 374.16,
"t": 329.76,
"r": 514.08,
"b": 313.68
},
"text": "ONLINE REGISTRATION DEADLINE",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Header row cell of the Villa Parke Pool table, not a caption."
}
},
{
"id": "p16.17",
"order": 27,
"type": "table",
"bbox": {
"l": 55.68,
"t": 304.56,
"r": 562.56,
"b": 219.6
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 4,
"n_cols": 4,
"integrity": {
"cells_checked": 16,
"cells_flagged": 0
}
},
"children": [
{
"id": "p16.17.1",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 66.1117,
"t": 300.115,
"r": 122.6847,
"b": 273.908
},
"text": "10:00 – 10:50 AM\n11:00 – 11:50 AM",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.17.2",
"order": 29,
"type": "table_cell",
"bbox": {
"l": 191.11614,
"t": 300.115,
"r": 254.86114,
"b": 273.908
},
"text": "P&M / LEVELS 1 - 4\nLEVELS TT - 4",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.17.3",
"order": 30,
"type": "table_cell",
"bbox": {
"l": 329.11092,
"t": 300.115,
"r": 346.029004,
"b": 273.908
},
"text": "M-TH\nM-TH",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.17.4",
"order": 31,
"type": "table_cell",
"bbox": {
"l": 376.114224,
"t": 300.115,
"r": 517.398481,
"b": 273.908
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)\n8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.17.5",
"order": 32,
"type": "table_cell",
"bbox": {
"l": 66.1117,
"t": 266.115,
"r": 115.8647,
"b": 256.908
},
"text": "4:00 – 4:50 PM",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.6",
"order": 33,
"type": "table_cell",
"bbox": {
"l": 213.61114,
"t": 232.115,
"r": 254.86114,
"b": 222.90800000000002
},
"text": "LEVELS 1 – 4",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.7",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 329.11081,
"t": 266.115,
"r": 346.028784,
"b": 256.908
},
"text": "M-TH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.8",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 376.114114,
"t": 266.115,
"r": 517.398261,
"b": 256.908
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.9",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 66.1117,
"t": 249.115,
"r": 115.3147,
"b": 239.90800000000002
},
"text": "5:00 – 5:50 PM",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.10",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 191.11603,
"t": 249.115,
"r": 234.09303,
"b": 239.90800000000002
},
"text": "LEVELS 1 – 4",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.11",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 329.11081,
"t": 249.115,
"r": 346.028784,
"b": 239.90800000000002
},
"text": "M-TH",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.12",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 376.114114,
"t": 249.115,
"r": 517.398261,
"b": 239.90800000000002
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.13",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 66.1117,
"t": 232.115,
"r": 115.4027,
"b": 222.90800000000002
},
"text": "6:00 – 6:50 PM",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.14",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 191.11603,
"t": 266.115,
"r": 234.09303,
"b": 222.90800000000002
},
"text": "P&M / LEVELS 1 - 4",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.15",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 329.11092,
"t": 232.115,
"r": 346.028894,
"b": 222.90800000000002
},
"text": "M-TH",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p16.17.16",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 376.114224,
"t": 232.115,
"r": 517.398371,
"b": 222.90800000000002
},
"text": "8 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p16.18",
"order": 44,
"type": "figure",
"bbox": {
"l": 366.085,
"t": 303.546,
"r": 384.805,
"b": 202.746
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.19",
"order": 45,
"type": "figure",
"bbox": {
"l": 319.303,
"t": 303.153,
"r": 338.023,
"b": 202.353
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.20",
"order": 46,
"type": "figure",
"bbox": {
"l": 175.325,
"t": 303.874,
"r": 194.045,
"b": 207.394
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.21",
"order": 47,
"type": "figure",
"bbox": {
"l": 321.14,
"t": 227.494,
"r": 339.86,
"b": 165.574
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.22",
"order": 48,
"type": "table_cell",
"bbox": {
"l": 66.96,
"t": 211.2,
"r": 233.28,
"b": 194.64
},
"text": "KENNEDY POOL (JUNE 15 - AUGUST 27)",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Blue header row of the Kennedy Pool table, not a caption."
}
},
{
"id": "p16.23",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 374.4,
"t": 210.96,
"r": 514.32,
"b": 194.88
},
"text": "ONLINE REGISTRATION DEADLINE",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Header row cell of the Kennedy Pool table, not a caption."
}
},
{
"id": "p16.24",
"order": 50,
"type": "figure",
"bbox": {
"l": 177.54,
"t": 201.284,
"r": 196.26,
"b": 145.844
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p16.25",
"order": 51,
"type": "table",
"bbox": {
"l": 54.96,
"t": 186.72,
"r": 563.52,
"b": 50.88
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 4,
"integrity": {
"cells_checked": 4,
"cells_flagged": 0
}
},
"children": [
{
"id": "p16.25.1",
"order": 52,
"type": "table_cell",
"bbox": {
"l": 66.1117,
"t": 181.48299999999995,
"r": 122.6847,
"b": 53.275999999999954
},
"text": "8:00 – 8:30 AM\n9:00 – 9:30 AM\n10:00 – 10:50 AM\n11:00 – 11:50 AM\n4:00 – 4:50 PM\n5:00 – 5:50 PM\n6:00 – 6:50 PM\n7:00 – 7:50 PM",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.25.2",
"order": 53,
"type": "table_cell",
"bbox": {
"l": 191.11592,
"t": 181.48299999999995,
"r": 259.77803,
"b": 53.275999999999954
},
"text": "LEVELS 1 - 3\nLEVELS 1 - 5\nP&M/LEVELS 1 – 5\nLEVELS TT – 5\nP&M / LEVELS TT - 3\nP&M / LEVELS 1 - 5\nP&M / LEVELS 1 - 5\nLEVELS 1 - 5",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.25.3",
"order": 54,
"type": "table_cell",
"bbox": {
"l": 329.11081,
"t": 181.48299999999995,
"r": 346.029114,
"b": 53.275999999999954
},
"text": "M-TH\nM-TH\nM-TH\nM-TH\nM-TH\nM-TH\nM-TH\nM-TH",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p16.25.4",
"order": 55,
"type": "table_cell",
"bbox": {
"l": 376.114114,
"t": 181.48299999999995,
"r": 517.332591,
"b": 53.275999999999954
},
"text": "6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)\n6 AM MONDAY (FIRST DAY OF THE SESSION)",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p16.26",
"order": 56,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 19.2,
"r": 44.88,
"b": 9.12
},
"text": "16",
"attrs": {
"block_label": "number"
}
},
{
"id": "p16.27",
"order": 57,
"type": "footer",
"bbox": {
"l": 42.24,
"t": 19.68,
"r": 217.68,
"b": 7.92
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 70,
"added": 0,
"retyped": 7
}
}
Page 17
16 item(s)
JSON
figure (3)
footer (1)
heading (6)
text (6)
1 · FIGURE
2 · HEADING
3 · FIGURE
4 · HEADING
5 · TEXT
6 · HEADING
7 · TEXT
8 · HEADING
9 · TEXT
10 · HEADING
11 · TEXT
12 · HEADING
13 · FIGURE
14 · TEXT
15 · TEXT
16 · FOOTER
AI review: page OK
(claude-opus-5, conf 82%)
— The extraction captures all headings, body text, the photo, and the footer in correct reading order with appropriate types. Only two probable decorative-artifact figures (#1, #3) are questionable."
minor
other #1: Items #1 and #3 are figures capturing faint background/decorative artifacts near the title area; harmless but likely spurious.
Page 17 JSON
{
"document_id": 267,
"page": 17,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 16,
"counts_by_type": {
"figure": 3,
"footer": 1,
"heading": 6,
"text": 6
},
"build_ms": 1,
"items": [
{
"id": "p17.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 348.14,
"t": 770.046,
"r": 366.86,
"b": 719.646
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p17.2",
"order": 2,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 757.92,
"r": 179.28,
"b": 723.36
},
"text": "SWIM RULES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p17.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 390.318,
"t": 753.164,
"r": 409.038,
"b": 649.484
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p17.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 43.68,
"t": 701.28,
"r": 188.88,
"b": 686.4
},
"text": "AGE LIMIT FOR RECREATION SWIM",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "'AGE LIMIT FOR RECREATION SWIM' is a section heading styled identically to the other headings (#6, #8, #10), not body text."
}
},
{
"id": "p17.5",
"order": 5,
"type": "text",
"bbox": {
"l": 42.96,
"t": 686.16,
"r": 497.04,
"b": 663.36
},
"text": "For your safety, children ten (10) years and younger must be accompanied by an adult and be within arms distance in the pool, dressing room, and pool deck."
},
{
"id": "p17.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 43.68,
"t": 658.8,
"r": 94.32,
"b": 645.6
},
"text": "SWIM TEST",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p17.7",
"order": 7,
"type": "text",
"bbox": {
"l": 42.96,
"t": 645.12,
"r": 449.76,
"b": 632.88
},
"text": "The Red Cross water proficiency test will be required for ALL participants entering deep water."
},
{
"id": "p17.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 43.68,
"t": 628.32,
"r": 103.92,
"b": 614.64
},
"text": "SWIM ATTIRE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p17.9",
"order": 9,
"type": "text",
"bbox": {
"l": 42.96,
"t": 614.64,
"r": 493.68,
"b": 592.08
},
"text": "Bathing suits are required. No cutoff or shorts below the knees are allowed. Exposed undergarments are prohibited. NO COTTON. Children who are not yet fully potty trained must wear swim diapers in the pool."
},
{
"id": "p17.10",
"order": 10,
"type": "heading",
"bbox": {
"l": 43.68,
"t": 587.04,
"r": 90,
"b": 573.36
},
"text": "DIARRHEA",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p17.11",
"order": 11,
"type": "text",
"bbox": {
"l": 43.2,
"t": 572.88,
"r": 517.44,
"b": 550.08
},
"text": "Persons having currently active diarrhea or who have had active diarrhea within the previous 14 days shall not be allowed to enter the pool water. Thank you."
},
{
"id": "p17.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 43.44,
"t": 478.8,
"r": 523.44,
"b": 452.64
},
"text": "HAVE A GREAT NEW IDEA FOR A CLASS?",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p17.13",
"order": 13,
"type": "figure",
"bbox": {
"l": 42,
"t": 434.4,
"r": 560.88,
"b": 229.68
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p17.14",
"order": 14,
"type": "text",
"bbox": {
"l": 58.32,
"t": 224.4,
"r": 542.88,
"b": 179.04
},
"text": "We may be looking for instructors for enrichment programs, fitness and wellness, dance, sports, martial arts, music, arts and crafts, theater arts and more! For more information, email ParksAndRec@CityOfPasadena.net or call (626) 744-6530."
},
{
"id": "p17.15",
"order": 15,
"type": "text",
"bbox": {
"l": 58.32,
"t": 167.04,
"r": 534.96,
"b": 121.92
},
"text": "The City of Pasadena grants a 5% preference during the bid process to vendors whose place of business is located within City limits if all requirements and deliverables are equal."
},
{
"id": "p17.16",
"order": 16,
"type": "footer",
"bbox": {
"l": 409.44,
"t": 19.44,
"r": 593.52,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 17",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 80,
"added": 0,
"retyped": 1
}
}
Page 18
25 item(s)
JSON
figure (5)
footer (2)
heading (5)
table (5)
text (7)
title (1)
1 · TITLE
2 · FIGURE
3 · TEXT
4 · HEADING
5 · TEXT
6 ·✨
7 · HEADING
8 · TEXT
9 ·✨
10 · FIGURE
11 · HEADING
12 · TEXT
13 ·✨
14 · HEADING
15 · TEXT
16 ·✨
17 · HEADING
18 · TEXT
19 ·✨
20 · FIGURE
21 · FIGURE
22 · TEXT
23 · FIGURE
24 · FOOTER
25 · FOOTER
AI review
(claude-opus-5, conf 70%)
—
Page 18 JSON
{
"document_id": 267,
"page": 18,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 25,
"counts_by_type": {
"figure": 5,
"footer": 2,
"heading": 5,
"table": 5,
"text": 7,
"title": 1
},
"build_ms": 1,
"items": [
{
"id": "p18.1",
"order": 1,
"type": "title",
"bbox": {
"l": 31.44,
"t": 746.4,
"r": 182.16,
"b": 682.08
},
"text": "YOUTH",
"attrs": {
"block_label": "header",
"ai_retyped_from": "header",
"ai_reason": "'YOUTH' is the large section title of the page, not a running header"
}
},
{
"id": "p18.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 300,
"b": 623
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p18.3",
"order": 3,
"type": "text",
"bbox": {
"l": 33.36,
"t": 639.36,
"r": 258.48,
"b": 613.44
},
"text": "Programs may be impacted by holiday closures, including Memorial Day and Independence Day."
},
{
"id": "p18.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 599.52,
"r": 169.44,
"b": 585.36
},
"text": "BALLET FOLKLORICO",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p18.5",
"order": 5,
"type": "text",
"bbox": {
"l": 33.6,
"t": 580.08,
"r": 294.96,
"b": 449.28
},
"text": "Baila con nosotros! (Come dance with us!) Learn the rich movements of this traditional Mexican heritage dance as well as other unique dances from Mexico. Participants will learn choreography, and increase their fitness levels while enjoying this traditional art of dance expression. Participants will be split up based on experience level.. ROBINSON PARK RECREATION CENTER\n03/09–04/27 5:30PM–7:30PM MON $45/$90 AGE: 4–17\n05/04–06/22 5:30PM–7:30PM MON $39/$78 AGE: 4–17\n07/06–08/10 5:30PM–7:30PM MON $34/$68 AGE: 4–17",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 502.92,
"r": 257.04,
"b": 447.48
},
"text": "ROBINSON PARK RECREATION CENTER\n03/09–04/27 5:30PM–7:30PM MON $45/$90 AGE: 4–17\n05/04–06/22 5:30PM–7:30PM MON $39/$78 AGE: 4–17\n07/06–08/10 5:30PM–7:30PM MON $34/$68 AGE: 4–17",
"attrs": {
"source": "ai_vision",
"reason": "Schedule listing block under Ballet Folklorico not covered by any item (item #5 text ends at 43 but describes paragraph; verify coverage)"
},
"children": [],
"order": 6,
"id": "p18.5.1"
}
]
},
{
"id": "p18.6",
"order": 7,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 434.64,
"r": 126.72,
"b": 420.48
},
"text": "AZTEC DANCE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p18.7",
"order": 8,
"type": "text",
"bbox": {
"l": 33.6,
"t": 414.72,
"r": 284.88,
"b": 284.16
},
"text": "Participate in traditional Aztec Indian dance steps, style, movement, drum rhythms, and songs.\nWorkshops start with basic movements and then progress to choreographed dance steps. All classes are accompanied by live Aztec drumming. For more information call (323) 363-5931.\nVILLA PARKE COMMUNITY CENTER\n03/11-04/29 6PM-8PM WED $0 ALL AGES\n05/06-06/24 6PM-8PM WED $0 ALL AGES\n07/08-08/12 6PM-8PM WED $0 ALL AGES",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 332.64,
"r": 293.76,
"b": 277.2
},
"text": "VILLA PARKE COMMUNITY CENTER\n03/11–04/29 6PM–8PM WED $0 ALL AGES\n05/06–06/24 6PM–8PM WED $0 ALL AGES\n07/08–08/12 6PM–8PM WED $0 ALL AGES",
"attrs": {
"source": "ai_vision",
"reason": "Class schedule rows under Aztec Dance appear as a table but no table item exists"
},
"children": [],
"order": 9,
"id": "p18.7.1"
}
]
},
{
"id": "p18.8",
"order": 10,
"type": "figure",
"bbox": {
"l": 33.36,
"t": 252.72,
"r": 299.76,
"b": 75.84
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p18.9",
"order": 11,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 756.24,
"r": 379.44,
"b": 742.56
},
"text": "CERAMICS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p18.10",
"order": 12,
"type": "text",
"bbox": {
"l": 309.36,
"t": 741.84,
"r": 572.16,
"b": 634.56
},
"text": "Explore your artistic side in our ceramics class! Our youth ceramics class is all about having fun while exploring the boundless artistic possibilities of clay. This class is led by an instructor from the Armory Center for the Arts.\nVILLA PARKE COMMUNITY CENTER\n03/14–05/02 10AM–11:30AM SAT $67/$134 AGE: 6–12\n05/09–06/27 10AM–11:30AM SAT $67/$134 AGE: 6–12\n07/11–08/15 10AM–11:30AM SAT $50/$100 AGE: 6–12",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 690.62,
"r": 575.28,
"b": 633.6
},
"text": "VILLA PARKE COMMUNITY CENTER\n03/14–05/02 10AM–11:30AM SAT $67/$134 AGE: 6–12\n05/09–06/27 10AM–11:30AM SAT $67/$134 AGE: 6–12\n07/11–08/15 10AM–11:30AM SAT $50/$100 AGE: 6–12",
"attrs": {
"source": "ai_vision",
"reason": "Ceramics schedule rows are tabular content with no table item"
},
"children": [],
"order": 13,
"id": "p18.10.1"
}
]
},
{
"id": "p18.11",
"order": 14,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 618,
"r": 360.48,
"b": 604.8
},
"text": "GET FIT",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p18.12",
"order": 15,
"type": "text",
"bbox": {
"l": 309.36,
"t": 603.84,
"r": 566.16,
"b": 489.36
},
"text": "Looking for a unique class to get fit? Then this class is for you! Get Fit will incorporate stretching and balance moves to improve overall flexibility, balance, and core strength. Classes that do not meet minimum participant requirements may be canceled, combined, or rescheduled to another time. For more information, please contact staff at (626) 744-6530. WASHINGTON PARK\n03/10-04/28 10AM-11:30AM TUE FREE AGE: 5-16",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 518.76,
"r": 575.28,
"b": 487.08
},
"text": "WASHINGTON PARK\n03/10–04/28 10AM–11:30AM TUE FREE AGE: 5–16",
"attrs": {
"source": "ai_vision",
"reason": "Get Fit schedule row is tabular content with no table item"
},
"children": [],
"order": 16,
"id": "p18.12.1"
}
]
},
{
"id": "p18.13",
"order": 17,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 474.24,
"r": 361.2,
"b": 461.04
},
"text": "GUITAR",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p18.14",
"order": 18,
"type": "text",
"bbox": {
"l": 309.36,
"t": 459.84,
"r": 569.04,
"b": 364.08
},
"text": "This beginner class is a fun and great interactive way to learn guitar in a friendly setting. Students will learn chords, music theory and technique. Show off your skills at your next family gathering!\nVICTORY PARK RECREATION CENTER\n03/14-05/01 4PM - 5PM FRI $45/$90 AGE: 8-12\n05/08/06/26 4PM - 5PM FRI $45/$90 AGE: 8-12",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 399.96,
"r": 575.28,
"b": 356.4
},
"text": "VICTORY PARK RECREATION CENTER\n03/14-05/01 4PM - 5PM FRI $45/$90 AGE: 8-12\n05/08/06/26 4PM - 5PM FRI $45/$90 AGE: 8-12",
"attrs": {
"source": "ai_vision",
"reason": "Guitar schedule rows are tabular content with no table item"
},
"children": [],
"order": 19,
"id": "p18.14.1"
}
]
},
{
"id": "p18.15",
"order": 20,
"type": "figure",
"bbox": {
"l": 311.04,
"t": 310.56,
"r": 575.04,
"b": 133.68
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p18.16",
"order": 21,
"type": "figure",
"bbox": {
"l": 311.7,
"t": 103.74,
"r": 598.26,
"b": 12.66
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p18.17",
"order": 22,
"type": "text",
"bbox": {
"l": 310.56,
"t": 97.44,
"r": 527.76,
"b": 34.56
},
"text": "REGISTER ONLINE!\nVISIT CITYOFPASADENA.NET/RESERVE"
},
{
"id": "p18.18",
"order": 23,
"type": "figure",
"bbox": {
"l": 527.52,
"t": 104.88,
"r": 568.56,
"b": 60.96
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p18.19",
"order": 24,
"type": "footer",
"bbox": {
"l": 32.64,
"t": 19.2,
"r": 44.64,
"b": 9.36
},
"text": "18",
"attrs": {
"block_label": "number"
}
},
{
"id": "p18.20",
"order": 25,
"type": "footer",
"bbox": {
"l": 45.36,
"t": 19.68,
"r": 217.68,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 5,
"retyped": 1
}
}
Page 19
56 item(s)
JSON
figure (1)
footer (1)
heading (6)
table (4)
table_cell (31)
text (13)
1 · HEADING
2 · TEXT
3 · TEXT
4 · TABLE
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 · HEADING
22 · TEXT
23 · TEXT ·✨
24 · TEXT
25 · FIGURE
26 · HEADING
27 · TEXT
28 · HEADING
29 · TEXT
30 ·✨
31 · HEADING
32 · TEXT
33 · TEXT
34 · TABLE
35
36
37
38
39
40 · HEADING
41 · TEXT
42 · TEXT
43 · TABLE
44
45
46
47
48
49
50
51
52
53
54 · TEXT ·✨
55 · TEXT ·✨
56 · FOOTER
AI review: page OK
(claude-opus-5, conf 78%)
— The extraction captures essentially all content in correct reading order (left column then right column, footer last) with accurate text and sensible table grids. Only minor structural quibbles remain: the Computer Club table is nested inside a paragraph and its facility header line is missing, and 'VICTORY PARK' is embedded as a table row.
minor
nesting #56: The Computer Club schedule table (#56) is nested inside the paragraph text item #55 and its bounding box overlaps the paragraph; it should be a sibling table, and the location line 'JACKIE ROBINSON COMMUNITY CENTER' that precedes it is not captured as a separate item (it may be swallowed by #55).
minor
missing_item #56: The header line 'JACKIE ROBINSON COMMUNITY CENTER' above the Computer Club schedule appears to have no dedicated item, unlike the analogous #3, #49, #59, #73.
minor
table_structure #105: 'VICTORY PARK' is a section/location label but is captured as a table cell row inside the Skyhawks table (#105) with four empty phantom cells, rather than as separate text like #73 'WASHINGTON PARK'.
minor
table_structure #5: 'BEGINNERS' (#5) and 'INTERMEDIATE' (#36) are level labels captured as full-width table rows; acceptable but they are labels rather than data rows.
Page 19 JSON
{
"document_id": 267,
"page": 19,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 56,
"counts_by_type": {
"figure": 1,
"footer": 1,
"heading": 6,
"table": 4,
"table_cell": 31,
"text": 13
},
"build_ms": 23,
"items": [
{
"id": "p19.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 756,
"r": 77.52,
"b": 742.56
},
"text": "PIANO",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.6,
"t": 742.08,
"r": 298.08,
"b": 680.88
},
"text": "Piano classes are offered to build a foundation in music theory and the basic concepts of reading music. Students learn essential techniques such as fingering, rhythm, timing, tempos, and dynamics through exercises and song practice."
},
{
"id": "p19.3",
"order": 3,
"type": "text",
"bbox": {
"l": 34.32,
"t": 680.4,
"r": 154.8,
"b": 667.2
},
"text": "VILLA PARKE COMMUNITY CENTER"
},
{
"id": "p19.4",
"order": 4,
"type": "table",
"bbox": {
"l": 34.08,
"t": 664.112,
"r": 288.96,
"b": 521.76
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 4,
"n_cols": 5,
"integrity": {
"cells_checked": 16,
"cells_flagged": 0
}
},
"children": [
{
"id": "p19.4.1",
"order": 5,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 664.112,
"r": 73.44,
"b": 654.068
},
"text": "BEGINNERS",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true
}
},
{
"id": "p19.4.2",
"order": 6,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 649.712,
"r": 85.17492,
"b": 553.268
},
"text": "03/09-04/27\n03/12-04/30\n05/04-06/22\n05/07-06/25\n07/06-08/10\n07/09-08/13\nINTERMEDIATE",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.4.3",
"order": 7,
"type": "table_cell",
"bbox": {
"l": 105.156264,
"t": 649.712,
"r": 144.08424,
"b": 567.668
},
"text": "4PM - 5PM\n4PM - 5PM\n4PM - 5PM\n4PM - 5PM\n4PM - 5PM\n4PM - 5PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.4.4",
"order": 8,
"type": "table_cell",
"bbox": {
"l": 158.99994,
"t": 649.712,
"r": 181.64424,
"b": 567.668
},
"text": "MON\nTHURS\nMON\nTHURS\nMON\nTHURS",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.4.5",
"order": 9,
"type": "table_cell",
"bbox": {
"l": 206.603724,
"t": 649.712,
"r": 238.716024,
"b": 567.668
},
"text": "$45/$90\n$45/$90\n$39/$78\n$45/$90\n$34/$68\n$34/$68",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.4.6",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 251.723592,
"t": 649.712,
"r": 284.592192,
"b": 567.668
},
"text": "AGE: 7-12\nAGE: 7-12\nAGE: 7-12\nAGE: 7-12\nAGE: 7-12\nAGE: 7-12",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.4.7",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 548.912,
"r": 83.664,
"b": 538.8679999999999
},
"text": "03/10-04/28",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.8",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 93.996036,
"t": 548.912,
"r": 153.888036,
"b": 538.8679999999999
},
"text": "5:30PM - 6:30 PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.9",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 136.032,
"t": 550.032,
"r": 187.008,
"b": 535.896
},
"text": "MON",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p19.4.10",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 206.603844,
"t": 548.912,
"r": 238.415844,
"b": 538.8679999999999
},
"text": "$39/$78",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.11",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 251.723724,
"t": 548.912,
"r": 288.011724,
"b": 538.8679999999999
},
"text": "AGE: 10-15",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.12",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 534.512,
"r": 82.092,
"b": 524.4680000000001
},
"text": "03/13-05/01",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.13",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 93.995904,
"t": 534.512,
"r": 153.887904,
"b": 524.4680000000001
},
"text": "5:30PM - 6:30 PM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.14",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 136.032,
"t": 535.896,
"r": 187.008,
"b": 521.76
},
"text": "THURS",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p19.4.15",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 206.6034,
"t": 534.512,
"r": 238.6314,
"b": 524.4680000000001
},
"text": "$45/$90",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p19.4.16",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 251.723268,
"t": 534.512,
"r": 288.011268,
"b": 524.4680000000001
},
"text": "AGE: 10-15",
"attrs": {
"row": 3,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p19.5",
"order": 21,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 507.6,
"r": 253.92,
"b": 479.04
},
"text": "NEIGHBORS EMPOWERING YOUTH\nROBOTICS PROGRAM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.6",
"order": 22,
"type": "text",
"bbox": {
"l": 33.6,
"t": 478.56,
"r": 292.32,
"b": 339.12
},
"text": "Neighbors Empowering Youth Inc. (NEY), bridging the digital divide in the San Gabriel Valley, provides a free high school FIRST Robotics program. Students build industrial-size robots within strict rules and limited resources, while also focusing on fundraising, team branding, and promoting STEM in the community. Students gain experience from professional mentors. In its 17th year, FIRST Robotics Team 2404 is proudly sponsored by JPL and Caltech. For more information on program dates and registration, contact Chris@team2404.org or call (626) 765-1392."
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 344.52,
"r": 171.36,
"b": 331.06
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Facility line above the DATES VARY row is not covered by any item (#22 ends at 57, #23 starts at 58)."
},
"children": [],
"order": 23,
"id": "p19.7"
},
{
"id": "p19.8",
"order": 24,
"type": "text",
"bbox": {
"l": 35.04,
"t": 330.96,
"r": 289.68,
"b": 317.04
},
"text": "DATES VARY 4PM - 6:30PM M,W FREE AGE: 12-17"
},
{
"id": "p19.9",
"order": 25,
"type": "figure",
"bbox": {
"l": 35.28,
"t": 312.72,
"r": 299.76,
"b": 180
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p19.10",
"order": 26,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 173.04,
"r": 155.76,
"b": 159.84
},
"text": "YWCA TECHGYRLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.11",
"order": 27,
"type": "text",
"bbox": {
"l": 33.36,
"t": 158.16,
"r": 295.68,
"b": 43.68
},
"text": "This program seeks to empower young girls in the areas of STEAM (Science, Technology, Engineering, Arts, and Mathematics) and to encourage them to pursue careers within these fields. YWCA TechGYRLS is a place to dream, explore new ideas, learn new skills, and be creative through STEAM activities. For more information, call (818) 242-4155.\nJACKIE ROBINSON COMMUNITY CENTER\nENDS 5/21 3:30PM - 5:30PM TUE FREE AGE: 8/UP"
},
{
"id": "p19.12",
"order": 28,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 756,
"r": 423.36,
"b": 742.32
},
"text": "COMPUTER CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.13",
"order": 29,
"type": "text",
"bbox": {
"l": 309.12,
"t": 741.6,
"r": 575.04,
"b": 649.68
},
"text": "Students and adults are offered a place to use technology with free access to computers, internet, and Wi-Fi. Children 11 years and under must be accompanied by an adult.\nJACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 10AM - 1PM M-F FREE AGE: 12/UP\nYEAR-ROUND 3PM - 6PM M-F FREE AGE: 12/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 676.37,
"r": 569.16,
"b": 645.48
},
"text": "YEAR-ROUND 10AM - 1PM M-F FREE AGE: 12/UP / YEAR-ROUND 3PM - 6PM M-F FREE AGE: 12/UP",
"attrs": {
"source": "ai_vision",
"reason": "Two schedule rows of the Computer Club table are not represented as their own item/cells."
},
"children": [],
"order": 30,
"id": "p19.13.1"
}
]
},
{
"id": "p19.14",
"order": 31,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 637.2,
"r": 473.28,
"b": 623.52
},
"text": "BEGINNING EMBROIDERY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.15",
"order": 32,
"type": "text",
"bbox": {
"l": 308.88,
"t": 622.08,
"r": 577.44,
"b": 513.36
},
"text": "Discover the art of embroidery in this beginner-friendly class! Perfect for those with no prior experience. Participants will learn six essential stitches: Running, Back (Outline), Chain, Stem, French Knot, and Lazy Daisy. The class will also cover fundamental skills such as hooping fabric, working with embroidery floss, and selecting the right needle. Join us for a fun and creative experience while developing a new skill! This class is taught by Remainders Creative Reuse. WASHINGTON PARK COMMUNITY HOUSE"
},
{
"id": "p19.16",
"order": 33,
"type": "text",
"bbox": {
"l": 310.08,
"t": 513.36,
"r": 446.16,
"b": 500.64
},
"text": "WASHINGTON PARK COMMUNITY HOUSE"
},
{
"id": "p19.17",
"order": 34,
"type": "table",
"bbox": {
"l": 310.08,
"t": 500.88,
"r": 567.36,
"b": 470.4
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 5,
"integrity": {
"cells_checked": 5,
"cells_flagged": 0
}
},
"children": [
{
"id": "p19.17.1",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 497.192,
"r": 360.456,
"b": 472.748
},
"text": "03/10-4/28\n05/05-06/23",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.17.2",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 383.99976,
"t": 497.192,
"r": 417.44412,
"b": 472.748
},
"text": "4PM-6PM\n4PM-6PM",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.17.3",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 455.99964,
"t": 497.192,
"r": 471.324,
"b": 472.748
},
"text": "MON\nMON",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.17.4",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 482.48364,
"t": 497.192,
"r": 514.512,
"b": 472.748
},
"text": "$45/$90\n$45/$90",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.17.5",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 527.99952,
"t": 497.192,
"r": 564.70788,
"b": 472.748
},
"text": "AGE:12/UP\nAGE:12/UP",
"attrs": {
"row": 0,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p19.18",
"order": 40,
"type": "heading",
"bbox": {
"l": 309.12,
"t": 440.16,
"r": 512.16,
"b": 426.48
},
"text": "SKYHAWKS MULTI-SPORT TOTS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p19.19",
"order": 41,
"type": "text",
"bbox": {
"l": 308.88,
"t": 425.28,
"r": 576.48,
"b": 304.08
},
"text": "Begin an athletic journey with Multi-Sport Tots! This program offers a variety of sports through fun, age-appropriate activities, enhancing balance, coordination, and fitness. This engaging introduction to multiple sports is packed with learning and teamwork! Participants should wear athletic clothing and shoes and bring a water bottle. Parent participation is required with children 3.5 years and younger. This class is led by Skyhawks Sports. For more information, please contact staff at (626) 744-6530."
},
{
"id": "p19.20",
"order": 42,
"type": "text",
"bbox": {
"l": 310.8,
"t": 304.56,
"r": 380.4,
"b": 292.08
},
"text": "WASHINGTON PARK"
},
{
"id": "p19.21",
"order": 43,
"type": "table",
"bbox": {
"l": 309.84,
"t": 292.32,
"r": 560.4,
"b": 104.64
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 10,
"cells_flagged": 0
}
},
"children": [
{
"id": "p19.21.1",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 288.392,
"r": 362.448317,
"b": 191.94799999999998
},
"text": "03/14-05/02\n05/09-06/27\n07/11-08/15\n03/14-05/02\n05/09-06/27\n07/11-08/15\nVICTORY PARK",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.2",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 369.996036,
"t": 288.392,
"r": 424.080228,
"b": 206.34799999999996
},
"text": "9AM-9:50AM\n9AM-9:50AM\n9AM-9:50AM\n10AM-10:50AM\n10AM-10:50AM\n10AM-10:50AM",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.3",
"order": 46,
"type": "table_cell",
"bbox": {
"l": 434.999676,
"t": 288.392,
"r": 448.583988,
"b": 206.34799999999996
},
"text": "SAT\nSAT\nSAT\nSAT\nSAT\nSAT",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.4",
"order": 47,
"type": "table_cell",
"bbox": {
"l": 464.003436,
"t": 288.392,
"r": 496.115748,
"b": 206.34799999999996
},
"text": "$45/$90\n$45/$90\n$34/$68\n$45/$90\n$45/$90\n$34/$68",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.5",
"order": 48,
"type": "table_cell",
"bbox": {
"l": 524.003556,
"t": 288.392,
"r": 555.695868,
"b": 206.34799999999996
},
"text": "AGE: 2-3\nAGE: 2-3\nAGE: 2-3\nAGE: 4-5\nAGE: 4-5\nAGE: 4-5",
"attrs": {
"row": 0,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.6",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 187.59199999999998,
"r": 362.34,
"b": 105.548
},
"text": "03/10-04/28\n05/05-06/23\n07/07-08/11\n03/10-04/28\n05/05-06/23\n07/07-08/11",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.7",
"order": 50,
"type": "table_cell",
"bbox": {
"l": 369.99588,
"t": 187.59199999999998,
"r": 426.432228,
"b": 105.548
},
"text": "3:30PM-4:20PM\n3:30PM-4:20PM\n3:30PM-4:20PM\n4:30PM-5:20PM\n4:30PM-5:20PM\n4:30PM-5:20PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.8",
"order": 51,
"type": "table_cell",
"bbox": {
"l": 434.999688,
"t": 187.59199999999998,
"r": 448.152036,
"b": 105.548
},
"text": "TUE\nTUE\nTUE\nTUE\nTUE\nTUE",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.9",
"order": 52,
"type": "table_cell",
"bbox": {
"l": 464.003448,
"t": 187.59199999999998,
"r": 496.115796,
"b": 105.548
},
"text": "$45/$90\n$45/$90\n$34/$68\n$45/$90\n$45/$90\n$34/$68",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p19.21.10",
"order": 53,
"type": "table_cell",
"bbox": {
"l": 524.003568,
"t": 187.59199999999998,
"r": 555.695916,
"b": 105.548
},
"text": "AGE: 2-3\nAGE: 2-3\nAGE: 2-3\nAGE: 4-5\nAGE: 4-5\nAGE: 4-5",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 47.52,
"r": 171.36,
"b": 34.06
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Facility line under YWCA TECHGYRLS paragraph is not covered."
},
"children": [],
"order": 54,
"id": "p19.22"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 33.26,
"r": 293.76,
"b": 19.8
},
"text": "ENDS 5/21 3:30PM - 5:30PM TUE FREE AGE: 8/UP",
"attrs": {
"source": "ai_vision",
"reason": "Schedule row at bottom of left column is not covered by any item."
},
"children": [],
"order": 55,
"id": "p19.23"
},
{
"id": "p19.24",
"order": 56,
"type": "footer",
"bbox": {
"l": 409.44,
"t": 19.44,
"r": 593.04,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 19",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 82,
"added": 4,
"retyped": 0
}
}
Page 20
65 item(s)
JSON
figure (2)
footer (2)
heading (13)
list (10)
list_item (29)
text (7)
title (2)
1 · TITLE
2 · FIGURE
3 · TITLE
4 · TEXT
5 · HEADING
6 · LIST
7
8
9
10 · HEADING
11 · TEXT
12 · HEADING
13 · LIST
14
15
16
17 · HEADING
18 · LIST
19
20
21 · HEADING
22 · LIST
23
24
25
26 · HEADING
27 · LIST
28
29
30 · HEADING
31 · TEXT
32 · TEXT
33 · TEXT
34 · HEADING
35 · LIST
36
37
38
39 · HEADING
40 · LIST
41
42
43 · LIST
44
45
46
47 · HEADING
48 · TEXT
49 · HEADING
50 · TEXT
51 · HEADING
52 · LIST
53
54
55
56
57 · HEADING
58 · LIST
59
60
61
62
63 · FIGURE
64 · FOOTER
65 · FOOTER
AI review
(claude-opus-5, conf 78%)
— The extraction captures essentially all page text in a sensible column-by-column order, but the right column's \"FEE:\" heading is swallowed into a bullet and its fee bullets are mis-nested, and the two-column birth-year divisions are flattened. Minor duplicate title items also appear for the logo.
minor
other #1: Duplicate title items #1 and #3 both extract the logo text "YOUTH SPORTS" which is already covered by the figure #2; one is redundant.
major
other #41: List item #41 merges the "C: 3rd/4th Grade..." bullet with the following heading "FEE:" — the FEE: heading is lost as a separate item and the fee bullets (#42, #43) are nested under the Divisions list instead of a FEE list.
minor
text_mismatch #51: The two-column division listing (rows for 6th/5th, 4th/3rd, 2nd/1st) is flattened into single list items joining left- and right-column entries without separation; a table/two-column structure would be more faithful.
minor
other #62: Footer reading order: page number "20" (#62) appears after the footer text (#61) although it is printed first on the line.
Page 20 JSON
{
"document_id": 267,
"page": 20,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 65,
"counts_by_type": {
"figure": 2,
"footer": 2,
"heading": 13,
"list": 10,
"list_item": 29,
"text": 7,
"title": 2
},
"build_ms": 7,
"items": [
{
"id": "p20.1",
"order": 1,
"type": "title",
"bbox": {
"l": 41.04,
"t": 771.12,
"r": 256.32,
"b": 660.24
},
"text": "YOUTH SPORTS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p20.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 39.36,
"t": 769.68,
"r": 281.76,
"b": 625.2
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p20.3",
"order": 3,
"type": "title",
"bbox": {
"l": 40.08,
"t": 724.08,
"r": 256.08,
"b": 626.64
},
"text": "YOUTH SPORTS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p20.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.36,
"t": 616.08,
"r": 295.44,
"b": 566.64
},
"text": "All youth sports programs may be subject to postponements and/or cancellations depending on weather, air quality, and current health orders. Programs may be impacted by holiday closures."
},
{
"id": "p20.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 558.96,
"r": 184.08,
"b": 547.2
},
"text": "REGISTRATION INFORMATION:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.6",
"order": 6,
"type": "list",
"bbox": {
"l": 53.9999,
"t": 549.11,
"r": 569.107999,
"b": 511.09
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p20.6.1",
"order": 7,
"type": "list_item",
"bbox": {
"l": 53.9999,
"t": 549.11,
"r": 569.107999,
"b": 535.0899999999999
},
"text": "Register online at CityOfPasadena.net/Reserve"
},
{
"id": "p20.6.2",
"order": 8,
"type": "list_item",
"bbox": {
"l": 53.9999,
"t": 535.22,
"r": 332.96,
"b": 523.0899999999999
},
"text": "League dates, times, and locations, are subject to"
},
{
"id": "p20.6.3",
"order": 9,
"type": "list_item",
"bbox": {
"l": 53.9999,
"t": 525.11,
"r": 535.187769,
"b": 511.09
},
"text": "change."
}
]
},
{
"id": "p20.7",
"order": 10,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 487.44,
"r": 215.04,
"b": 474
},
"text": "MIGHTY MITES BASKETBALL",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.8",
"order": 11,
"type": "text",
"bbox": {
"l": 33.36,
"t": 469.44,
"r": 297.6,
"b": 371.04
},
"text": "Spring and Summer Mighty Mites basketball will introduce youth ages 5-8 to the fundamentals of basketball including shooting, dribbling, passing, defense, and hand-eye coordination in a safe and fun environment. Participants will learn from experienced youth sports instructors on Saturdays. Following training, participants will apply what they have learned in short practice games. Space is limited."
},
{
"id": "p20.9",
"order": 12,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 361.2,
"r": 92.64,
"b": 349.68
},
"text": "SCHEDULE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.10",
"order": 13,
"type": "list",
"bbox": {
"l": 36,
"t": 348.77,
"r": 524.208318,
"b": 310.75
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p20.10.1",
"order": 14,
"type": "list_item",
"bbox": {
"l": 36,
"t": 348.77,
"r": 417.669858,
"b": 334.75
},
"text": "Spring Dates: April 25- May 23, 2026 *"
},
{
"id": "p20.10.2",
"order": 15,
"type": "list_item",
"bbox": {
"l": 36,
"t": 336.77,
"r": 523.96741,
"b": 322.75
},
"text": "*No program on May 23"
},
{
"id": "p20.10.3",
"order": 16,
"type": "list_item",
"bbox": {
"l": 36,
"t": 324.77,
"r": 524.208318,
"b": 310.75
},
"text": "Summer Dates: July 11-August 1, 2026"
}
]
},
{
"id": "p20.11",
"order": 17,
"type": "heading",
"bbox": {
"l": 34.8,
"t": 312.48,
"r": 68.64,
"b": 301.68
},
"text": "Times:"
},
{
"id": "p20.12",
"order": 18,
"type": "list",
"bbox": {
"l": 54,
"t": 300.77,
"r": 332.96,
"b": 277.21000000000004
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p20.12.1",
"order": 19,
"type": "list_item",
"bbox": {
"l": 54,
"t": 300.77,
"r": 193.170081,
"b": 289.21
},
"text": "• Ages 5-6 - 9:00 am - 10:00 am"
},
{
"id": "p20.12.2",
"order": 20,
"type": "list_item",
"bbox": {
"l": 54,
"t": 290.02,
"r": 332.96,
"b": 277.21000000000004
},
"text": "• Ages 7-8 - 9:00 am - 10:15 am"
}
]
},
{
"id": "p20.13",
"order": 21,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 276,
"r": 84.72,
"b": 265.2
},
"text": "Locations:"
},
{
"id": "p20.14",
"order": 22,
"type": "list",
"bbox": {
"l": 54,
"t": 300.77,
"r": 290.14782,
"b": 217.21000000000004
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p20.14.1",
"order": 23,
"type": "list_item",
"bbox": {
"l": 54,
"t": 300.77,
"r": 193.170081,
"b": 289.21
},
"text": "• Ages 5-6 - McKinley Middle School, 325 S. El Molino Ave."
},
{
"id": "p20.14.2",
"order": 24,
"type": "list_item",
"bbox": {
"l": 54,
"t": 300.77,
"r": 193.170081,
"b": 289.21
},
"text": "• Ages 5-6 - Robinson Park Gym, 1081 N. Fair Oaks Ave."
},
{
"id": "p20.14.3",
"order": 25,
"type": "list_item",
"bbox": {
"l": 54,
"t": 228.76999999999998,
"r": 290.14782,
"b": 217.21000000000004
},
"text": "• Ages 7-8 - Victory Park Rec Center, 2575 Paloma St."
}
]
},
{
"id": "p20.15",
"order": 26,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 216.72,
"r": 57.12,
"b": 206.16
},
"text": "FEE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.16",
"order": 27,
"type": "list",
"bbox": {
"l": 54,
"t": 204.76999999999998,
"r": 258.167725,
"b": 181.21000000000004
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p20.16.1",
"order": 28,
"type": "list_item",
"bbox": {
"l": 54,
"t": 204.76999999999998,
"r": 258.167725,
"b": 193.21000000000004
},
"text": "$10 for Pasadena Residents/PUSD Students"
},
{
"id": "p20.16.2",
"order": 29,
"type": "list_item",
"bbox": {
"l": 54,
"t": 192.76999999999998,
"r": 152.948672,
"b": 181.21000000000004
},
"text": "$95 for non-residents"
}
]
},
{
"id": "p20.17",
"order": 30,
"type": "heading",
"bbox": {
"l": 310.56,
"t": 755.76,
"r": 549.36,
"b": 742.08
},
"text": "SPRING YOUTH BASKETBALL LEAGUE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.18",
"order": 31,
"type": "text",
"bbox": {
"l": 310.08,
"t": 740.64,
"r": 572.16,
"b": 681.6
},
"text": "The spring youth basketball league offers beginner and advanced league play for youth in grades 3rd-8th. Participants will be introduced to the fundamentals of the game in a team setting by experienced youth sports instructors."
},
{
"id": "p20.19",
"order": 32,
"type": "text",
"bbox": {
"l": 310.8,
"t": 680.88,
"r": 560.4,
"b": 658.08
},
"text": "League games are played at McKinley Middle School Gym, Robinson Park, Victory Park, and/or Octavia E."
},
{
"id": "p20.20",
"order": 33,
"type": "text",
"bbox": {
"l": 311.28,
"t": 657.12,
"r": 437.76,
"b": 645.12
},
"text": "Butler Middle School Gym."
},
{
"id": "p20.21",
"order": 34,
"type": "heading",
"bbox": {
"l": 311.04,
"t": 645.36,
"r": 409.2,
"b": 633.6
},
"text": "SPRING SCHEDULE:"
},
{
"id": "p20.22",
"order": 35,
"type": "list",
"bbox": {
"l": 313.02,
"t": 633.11,
"r": 453.188994,
"b": 597.55
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p20.22.1",
"order": 36,
"type": "list_item",
"bbox": {
"l": 313.02,
"t": 633.11,
"r": 453.188994,
"b": 621.55
},
"text": "Practices Start: March 23, 2026"
},
{
"id": "p20.22.2",
"order": 37,
"type": "list_item",
"bbox": {
"l": 313.02,
"t": 621.11,
"r": 438.269384,
"b": 609.55
},
"text": "Games Start: April 18, 2026 *"
},
{
"id": "p20.22.3",
"order": 38,
"type": "list_item",
"bbox": {
"l": 313.02,
"t": 609.11,
"r": 436.299023,
"b": 597.55
},
"text": "*No games held on May 23"
}
]
},
{
"id": "p20.23",
"order": 39,
"type": "heading",
"bbox": {
"l": 311.52,
"t": 596.16,
"r": 357.12,
"b": 586.08
},
"text": "Divisions:"
},
{
"id": "p20.24",
"order": 40,
"type": "list",
"bbox": {
"l": 331.02,
"t": 585.11,
"r": 561.897764,
"b": 561.55
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p20.24.1",
"order": 41,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 585.11,
"r": 561.897764,
"b": 573.55
},
"text": "A: 7th/8th Grade - Thursday and/or Friday games."
},
{
"id": "p20.24.2",
"order": 42,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 573.11,
"r": 551.098017,
"b": 561.55
},
"text": "B: 5th/6th Grade - Wednesday and/or Saturday games."
}
]
},
{
"id": "p20.25",
"order": 43,
"type": "list",
"bbox": {
"l": 310.8,
"t": 549.12,
"r": 570.48,
"b": 497.28
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p20.25.1",
"order": 44,
"type": "list_item",
"bbox": {
"l": 310.8,
"t": 549.12,
"r": 570.48,
"b": 525.84
},
"text": "C: 3rd/4th Grade - Tuesday and/or Saturday games. FEE:"
},
{
"id": "p20.25.2",
"order": 45,
"type": "list_item",
"bbox": {
"l": 311.28,
"t": 525.36,
"r": 537.6,
"b": 513.36
},
"text": "$10 for Pasadena Residents/PUSD Students"
},
{
"id": "p20.25.3",
"order": 46,
"type": "list_item",
"bbox": {
"l": 311.28,
"t": 509.28,
"r": 432.24,
"b": 497.28
},
"text": "$95 for non-residents"
}
]
},
{
"id": "p20.26",
"order": 47,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 480.48,
"r": 552.24,
"b": 467.28
},
"text": "VILLA PARKE YOUTH SOCCER LEAGUE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.27",
"order": 48,
"type": "text",
"bbox": {
"l": 309.84,
"t": 466.32,
"r": 572.16,
"b": 394.08
},
"text": "The Villa Parke Youth Soccer League was established in the 1970s and continues to thrive. The league encourages skill development in a fun, recreational atmosphere. Quality coaching and competitive matches make the league a great fit for all skill and experience levels."
},
{
"id": "p20.28",
"order": 49,
"type": "heading",
"bbox": {
"l": 311.28,
"t": 382.56,
"r": 369.6,
"b": 371.52
},
"text": "SCHEDULE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.29",
"order": 50,
"type": "text",
"bbox": {
"l": 311.04,
"t": 370.08,
"r": 454.08,
"b": 358.56
},
"text": "Dates: March 7 - June 27, 2026"
},
{
"id": "p20.30",
"order": 51,
"type": "heading",
"bbox": {
"l": 311.28,
"t": 357.84,
"r": 417.84,
"b": 346.56
},
"text": "Divisions by birth year:"
},
{
"id": "p20.31",
"order": 52,
"type": "list",
"bbox": {
"l": 320.01,
"t": 346.31,
"r": 554.167749,
"b": 296.35
},
"text": "",
"attrs": {
"item_count": 4
},
"children": [
{
"id": "p20.31.1",
"order": 53,
"type": "list_item",
"bbox": {
"l": 320.01,
"t": 346.31,
"r": 417.669858,
"b": 334.75
},
"text": "· Mascots – 2021, 2020"
},
{
"id": "p20.31.2",
"order": 54,
"type": "list_item",
"bbox": {
"l": 320.01,
"t": 334.31,
"r": 523.96741,
"b": 322.75
},
"text": "6th - 2019, 2018 5th - 2017, 2016"
},
{
"id": "p20.31.3",
"order": 55,
"type": "list_item",
"bbox": {
"l": 320.01,
"t": 322.31,
"r": 524.208318,
"b": 310.75
},
"text": "4th - 2015, 2014 3rd - 2013, 2012"
},
{
"id": "p20.31.4",
"order": 56,
"type": "list_item",
"bbox": {
"l": 320.01,
"t": 307.91,
"r": 554.167749,
"b": 296.35
},
"text": "2nd - 2011, 2010 1st - 2009, 2008, 2007"
}
]
},
{
"id": "p20.32",
"order": 57,
"type": "heading",
"bbox": {
"l": 311.04,
"t": 292.32,
"r": 335.04,
"b": 281.04
},
"text": "FEE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p20.33",
"order": 58,
"type": "list",
"bbox": {
"l": 331.02,
"t": 279.90999999999997,
"r": 535.187769,
"b": 232.35000000000002
},
"text": "",
"attrs": {
"item_count": 4
},
"children": [
{
"id": "p20.33.1",
"order": 59,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 279.90999999999997,
"r": 535.187769,
"b": 268.35
},
"text": "$10 for Pasadena Residents/PUSD Students"
},
{
"id": "p20.33.2",
"order": 60,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 267.90999999999997,
"r": 430.038672,
"b": 256.35
},
"text": "$85 for non-residents"
},
{
"id": "p20.33.3",
"order": 61,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 255.90999999999997,
"r": 431.178458,
"b": 244.35000000000002
},
"text": "Uniform Fee: $35-$65"
},
{
"id": "p20.33.4",
"order": 62,
"type": "list_item",
"bbox": {
"l": 331.02,
"t": 243.90999999999997,
"r": 466.948105,
"b": 232.35000000000002
},
"text": "• Associated league fees apply"
}
]
},
{
"id": "p20.34",
"order": 63,
"type": "figure",
"bbox": {
"l": 310.08,
"t": 215.28,
"r": 574.8,
"b": 53.76
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p20.35",
"order": 64,
"type": "footer",
"bbox": {
"l": 40.08,
"t": 19.2,
"r": 218.64,
"b": 8.4
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p20.36",
"order": 65,
"type": "footer",
"bbox": {
"l": 32.64,
"t": 18.24,
"r": 45.6,
"b": 9.12
},
"text": "20",
"attrs": {
"block_label": "number"
}
}
]
}
Page 21
50 item(s)
JSON
figure (2)
footer (2)
heading (11)
list (7)
list_item (18)
text (10)
1 · HEADING
2 · TEXT
3 · TEXT
4 · TEXT
5 · TEXT
6 · HEADING
7 · LIST
8
9
10
11 · HEADING
12 · LIST
13
14
15
16 · FIGURE
17 · HEADING
18 · TEXT
19 · HEADING
20 · TEXT
21 · LIST
22
23
24
25
26 · HEADING
27 · LIST
28
29
30 · HEADING
31 · TEXT
32 · HEADING
33 · LIST
34
35
36 · HEADING
37 · LIST
38
39
40 · LIST
41
42
43 · HEADING
44 · TEXT
45 · TEXT
46 · HEADING
47 · TEXT
48 · FIGURE
49 · FOOTER
50 · FOOTER
AI review
(claude-opus-5, conf 78%)
— The extraction captures all visible text, figures and the footer in correct reading order (left column then right column), but several logically distinct lines are merged into single items — most notably the \"FEE:\" heading absorbed into a divisions bullet in the basketball section.
major
other #39: Item #39 merges the heading "FEE:" into the list item "C: 3rd/4th Grade - Tuesday and/or Saturday games." The FEE: label is a separate heading line outside the divisions list, so it is corrupted/mis-nested.
minor
nesting #40: Items #40 and #41 (the two fee bullets) are placed inside the same list as the Divisions bullets (#37-#39); they belong to a separate FEE list.
minor
other #4: Item #4 merges two distinct lines, "Session Dates: Mar. 7 - Apr. 25, 2026" and the bold label "SESSION 2:", into one text item.
minor
other #22: Item #22 merges "Dates: April 21 - April 29, 2026" with the separate label "Divisions:".
minor
text_mismatch #24: Items #24 and #25 include a literal bullet character "•" in the text while #26/#27 do not — inconsistent bullet handling.
minor
other #44: Item #44 merges the line "VILLA PARKE COMMUNITY CENTER" with "YEAR-ROUND 3PM - 7PM"; the schedule row is also split awkwardly between #44 and #45 rather than being one row/table.
minor
wrong_type #7: "Divisions by birth year:" (#7), "Divisions:" (#35) and similar labels are typed as headings though they are plain body-text labels; debatable.
Page 21 JSON
{
"document_id": 267,
"page": 21,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 50,
"counts_by_type": {
"figure": 2,
"footer": 2,
"heading": 11,
"list": 7,
"list_item": 18,
"text": 10
},
"build_ms": 5,
"items": [
{
"id": "p21.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 756,
"r": 269.52,
"b": 742.08
},
"text": "YOUNG STRIKERS SOCCER ACADEMY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p21.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.6,
"t": 737.76,
"r": 294.96,
"b": 684.48
},
"text": "The Young Strikers Soccer Academy is a non-competitive development program designed to prepare youth ages 2-7 for future involvement in our Villa Parke Youth Soccer League and beyond! SESSION 1:"
},
{
"id": "p21.3",
"order": 3,
"type": "text",
"bbox": {
"l": 33.12,
"t": 680.4,
"r": 202.08,
"b": 658.8
},
"text": "Session Dates: Mar. 7 - Apr. 25, 2026\nSESSION 2:"
},
{
"id": "p21.4",
"order": 4,
"type": "text",
"bbox": {
"l": 34.08,
"t": 656.64,
"r": 197.52,
"b": 645.12
},
"text": "Registration: Mar. 10 - Apr. 18, 2026"
},
{
"id": "p21.5",
"order": 5,
"type": "text",
"bbox": {
"l": 34.32,
"t": 644.64,
"r": 211.92,
"b": 633.36
},
"text": "Session Dates: May 10 - June 28, 2026"
},
{
"id": "p21.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 632.64,
"r": 141.12,
"b": 620.64
},
"text": "Divisions by birth year:"
},
{
"id": "p21.7",
"order": 7,
"type": "list",
"bbox": {
"l": 42.99,
"t": 621.11,
"r": 557.456922,
"b": 585.53
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p21.7.1",
"order": 8,
"type": "list_item",
"bbox": {
"l": 42.99,
"t": 621.11,
"r": 557.456922,
"b": 609.55
},
"text": "Mini Stars: 2023, 2022"
},
{
"id": "p21.7.2",
"order": 9,
"type": "list_item",
"bbox": {
"l": 42.99,
"t": 609.11,
"r": 490.127739,
"b": 597.55
},
"text": "Shooting Stars: 2021, 2020"
},
{
"id": "p21.7.3",
"order": 10,
"type": "list_item",
"bbox": {
"l": 42.99,
"t": 597.11,
"r": 366.98,
"b": 585.53
},
"text": "Shining Stars: 2019, 2018"
}
]
},
{
"id": "p21.8",
"order": 11,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 581.52,
"r": 57.36,
"b": 570.72
},
"text": "FEE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p21.9",
"order": 12,
"type": "list",
"bbox": {
"l": 54,
"t": 557.11,
"r": 189.928129,
"b": 521.55
},
"text": "",
"attrs": {
"item_count": 3
},
"children": [
{
"id": "p21.9.1",
"order": 13,
"type": "list_item",
"bbox": {
"l": 54,
"t": 557.11,
"r": 153.018672,
"b": 545.55
},
"text": "$85 for non-residents"
},
{
"id": "p21.9.2",
"order": 14,
"type": "list_item",
"bbox": {
"l": 54,
"t": 545.11,
"r": 153.558592,
"b": 533.55
},
"text": "Uniform Fee: $25-$45"
},
{
"id": "p21.9.3",
"order": 15,
"type": "list_item",
"bbox": {
"l": 54,
"t": 533.11,
"r": 189.928129,
"b": 521.55
},
"text": "Associated league fees apply"
}
]
},
{
"id": "p21.10",
"order": 16,
"type": "figure",
"bbox": {
"l": 36,
"t": 515.52,
"r": 292.56,
"b": 342.24
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p21.11",
"order": 17,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 333.84,
"r": 271.92,
"b": 320.64
},
"text": "SPRING YOUTH VOLLEYBALL LEAGUE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p21.12",
"order": 18,
"type": "text",
"bbox": {
"l": 33.36,
"t": 319.44,
"r": 286.08,
"b": 222.24
},
"text": "The Spring youth volleyball league offers recreational play for participants in grades 3rd-8th. This league will introduce participants to the basic fundamentals of volleyball, including proper footwork, serving, setting, hitting, and passing, while improving players' hand/eye coordination and physical fitness. The top teams from each division will advance to the playoffs. Team practices will begin on March 24."
},
{
"id": "p21.13",
"order": 19,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 212.16,
"r": 92.88,
"b": 200.4
},
"text": "SCHEDULE:"
},
{
"id": "p21.14",
"order": 20,
"type": "text",
"bbox": {
"l": 34.08,
"t": 199.44,
"r": 172.8,
"b": 177.6
},
"text": "Dates: April 21 - April 29, 2026\nDivisions:"
},
{
"id": "p21.15",
"order": 21,
"type": "list",
"bbox": {
"l": 34.32,
"t": 174.96,
"r": 173.28,
"b": 127.95000000000005
},
"text": "",
"attrs": {
"item_count": 4
},
"children": [
{
"id": "p21.15.1",
"order": 22,
"type": "list_item",
"bbox": {
"l": 34.32,
"t": 174.96,
"r": 173.28,
"b": 163.92
},
"text": "• AA Varsity: 7th/8th Grade"
},
{
"id": "p21.15.2",
"order": 23,
"type": "list_item",
"bbox": {
"l": 34.56,
"t": 163.2,
"r": 147.84,
"b": 151.92
},
"text": "• A JV: 7th/8th Grade"
},
{
"id": "p21.15.3",
"order": 24,
"type": "list_item",
"bbox": {
"l": 34.8,
"t": 151.2,
"r": 133.68,
"b": 139.92
},
"text": "B: 5th/6th Grade"
},
{
"id": "p21.15.4",
"order": 25,
"type": "list_item",
"bbox": {
"l": 34.32,
"t": 139.44,
"r": 133.2,
"b": 127.95000000000005
},
"text": "C: 3rd/4th Grade"
}
]
},
{
"id": "p21.16",
"order": 26,
"type": "heading",
"bbox": {
"l": 34.56,
"t": 127.44,
"r": 58.08,
"b": 115.92
},
"text": "FEE:"
},
{
"id": "p21.17",
"order": 27,
"type": "list",
"bbox": {
"l": 36,
"t": 111.90999999999997,
"r": 240.167725,
"b": 88.35000000000002
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p21.17.1",
"order": 28,
"type": "list_item",
"bbox": {
"l": 36,
"t": 111.90999999999997,
"r": 240.167725,
"b": 100.35000000000002
},
"text": "$10 for Pasadena Residents/PUSD Students"
},
{
"id": "p21.17.2",
"order": 29,
"type": "list_item",
"bbox": {
"l": 36,
"t": 99.90999999999997,
"r": 134.948672,
"b": 88.35000000000002
},
"text": "$95 for non-residents"
}
]
},
{
"id": "p21.18",
"order": 30,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 755.52,
"r": 557.52,
"b": 742.32
},
"text": "SUMMER YOUTH BASKETBALL LEAGUE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p21.19",
"order": 31,
"type": "text",
"bbox": {
"l": 309.12,
"t": 740.64,
"r": 576,
"b": 592.56
},
"text": "The summer youth basketball league is a development league for players wishing to continue to develop and enhance their basketball skills. Participants will be introduced to the fundamentals of the game in a team setting by experienced youth sports instructors. The summer league will offer round robin games only - no playoffs or championships. Games are typically played at McKinley Middle School, Robinson Park, and Victory Park Gym. Participants wishing to enter the league, but not on a current team, will be referred to teams at McKinley, Robinson, Victory, or Octavia E. Butler. Team practices will begin practice on June 8."
},
{
"id": "p21.20",
"order": 32,
"type": "heading",
"bbox": {
"l": 310.56,
"t": 596.4,
"r": 368.88,
"b": 585.84
},
"text": "SCHEDULE:"
},
{
"id": "p21.21",
"order": 33,
"type": "list",
"bbox": {
"l": 312,
"t": 585.11,
"r": 478.648823,
"b": 561.55
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p21.21.1",
"order": 34,
"type": "list_item",
"bbox": {
"l": 312,
"t": 585.11,
"r": 478.648823,
"b": 573.55
},
"text": "Game Dates: July 7 - August 1, 2026 *"
},
{
"id": "p21.21.2",
"order": 35,
"type": "list_item",
"bbox": {
"l": 312,
"t": 573.11,
"r": 429.119023,
"b": 561.55
},
"text": "*No games held on July 3"
}
]
},
{
"id": "p21.22",
"order": 36,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 560.88,
"r": 355.92,
"b": 550.08
},
"text": "Divisions:"
},
{
"id": "p21.23",
"order": 37,
"type": "list",
"bbox": {
"l": 330,
"t": 549.11,
"r": 560.877764,
"b": 525.55
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p21.23.1",
"order": 38,
"type": "list_item",
"bbox": {
"l": 330,
"t": 549.11,
"r": 560.877764,
"b": 537.55
},
"text": "A: 7th/8th Grade - Thursday and/or Friday games."
},
{
"id": "p21.23.2",
"order": 39,
"type": "list_item",
"bbox": {
"l": 330,
"t": 537.11,
"r": 550.078017,
"b": 525.55
},
"text": "B: 5th/6th Grade - Wednesday and/or Saturday games."
}
]
},
{
"id": "p21.24",
"order": 40,
"type": "list",
"bbox": {
"l": 310.08,
"t": 512.88,
"r": 569.52,
"b": 462.24
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p21.24.1",
"order": 41,
"type": "list_item",
"bbox": {
"l": 310.08,
"t": 512.88,
"r": 569.52,
"b": 490.08
},
"text": "C: 3rd/4th Grade - Tuesday and/or Saturday games. FEE:"
},
{
"id": "p21.24.2",
"order": 42,
"type": "list_item",
"bbox": {
"l": 310.32,
"t": 474.72,
"r": 431.52,
"b": 462.24
},
"text": "$95 for non-residents"
}
]
},
{
"id": "p21.25",
"order": 43,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 446.88,
"r": 567.36,
"b": 433.68
},
"text": "YOUTH BOXING PROGRAM MEMBERSHIP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p21.26",
"order": 44,
"type": "text",
"bbox": {
"l": 309.36,
"t": 431.52,
"r": 569.04,
"b": 360.48
},
"text": "The Youth Boxing Program offers a variety of activities geared toward fitness and health. Participants get a great workout while learning boxing fundamentals and developing valuable life skills. Training also focuses on preparing youth for competition on a local, regional and national level."
},
{
"id": "p21.27",
"order": 45,
"type": "text",
"bbox": {
"l": 310.8,
"t": 360.24,
"r": 429.84,
"b": 347.068
},
"text": "VILLA PARKE COMMUNITY CENTER"
},
{
"id": "p21.28",
"order": 46,
"type": "heading",
"bbox": {
"l": 312,
"t": 343.712,
"r": 560.999952,
"b": 333.668
},
"text": "YEAR-ROUND 3PM - 7PM",
"attrs": {
"split_from": "trailing_line"
}
},
{
"id": "p21.29",
"order": 47,
"type": "text",
"bbox": {
"l": 313.2,
"t": 346.8,
"r": 566.88,
"b": 330.96
},
"text": "M-F $25/$50 AGE: 8-17"
},
{
"id": "p21.30",
"order": 48,
"type": "figure",
"bbox": {
"l": 311.04,
"t": 307.92,
"r": 575.28,
"b": 133.44
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p21.31",
"order": 49,
"type": "footer",
"bbox": {
"l": 409.44,
"t": 19.2,
"r": 591.36,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p21.32",
"order": 50,
"type": "footer",
"bbox": {
"l": 582.24,
"t": 18.24,
"r": 593.52,
"b": 9.6
},
"text": "21",
"attrs": {
"block_label": "number"
}
}
]
}
Page 22
18 item(s)
JSON
caption (1)
figure (2)
footer (1)
heading (2)
text (11)
title (1)
1 · FIGURE
2 · FIGURE
3
4
5
6
7
8
9 · TITLE
10 · TEXT
11 · HEADING
12 · TEXT
13 · HEADING
14 · TEXT
15 · TEXT
16 · TEXT
17 · CAPTION
18 · FOOTER
AI review
(claude-opus-5, conf 76%)
— Most content is captured in a reasonable reading order, but item #9's bounding box is badly wrong (negative left, spanning the whole left column instead of the small QR code), and the item #1/#2 figure boxes overlap the wrong regions (#1 appears to duplicate the iTennis logo area also captured as title #10). Bullet lists are flattened into plain text blocks rather than lists.
major
wrong_bbox #9: Figure #9 box (-11,69,50,93) extends off-page and covers most of the lower-left ad panel; the actual QR code figure occupies roughly (39,84,49,90).
minor
other #1: Figure #1 (53,3,95,17) covers the same region as title #10 (the iTennis logo); the logo is captured twice, once as figure and once as text/title.
minor
nesting #5: The bulleted list (Professional coaching!, UTR competitions!, Get Fit!, Learn to play tennis!, Improve your game!) is emitted as a single text block instead of a list with list_items; same for the Locations bullets in #6.
minor
text_mismatch #4: Item #4 mixes the heading 'TENNIS LESSONS FOR ALL AGES!' with body text and appears to bleed into the bullet list content also captured in #5, risking duplication.
Page 22 JSON
{
"document_id": 267,
"page": 22,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 18,
"counts_by_type": {
"caption": 1,
"figure": 2,
"footer": 1,
"heading": 2,
"text": 11,
"title": 1
},
"build_ms": 2,
"items": [
{
"id": "p22.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 322.824,
"t": 766.099,
"r": 580.09,
"b": 655.874
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p22.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 26.88,
"t": 750.24,
"r": 303.6,
"b": 32.16
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p22.2.1",
"order": 3,
"type": "text",
"bbox": {
"l": 36.96,
"t": 587.28,
"r": 300.24,
"b": 558
},
"text": "Pasadena Tennis Program"
},
{
"id": "p22.2.2",
"order": 4,
"type": "text",
"bbox": {
"l": 35.52,
"t": 545.76,
"r": 295.2,
"b": 419.04
},
"text": "TENNIS LESSONS FOR ALL AGES!\nBeginners to Advanced and Competitive Players.\n• Professional coaching!\n• UTR competitions!\n• Get Fit!\n• Learn to play tennis!\n• Improve your game!\nLocations:\n• Eaton Blanche Park\n• Hamilton Park\n• Washington Park"
},
{
"id": "p22.2.3",
"order": 5,
"type": "text",
"bbox": {
"l": 35.76,
"t": 389.04,
"r": 243.84,
"b": 267.6
},
"text": "Professional coaching!\nUTR competitions!\nGet Fit!\n\nLearn to play tennis!\n\nImprove your game!"
},
{
"id": "p22.2.4",
"order": 6,
"type": "text",
"bbox": {
"l": 36.48,
"t": 243.36,
"r": 209.52,
"b": 150
},
"text": "Locations:\n• Eaton Blanche Park\n• Hamilton Park\n• Washington Park"
},
{
"id": "p22.2.5",
"order": 7,
"type": "text",
"bbox": {
"l": 38.16,
"t": 120.24,
"r": 166.32,
"b": 98.88
},
"text": "T: (626) 399-1817"
},
{
"id": "p22.2.6",
"order": 8,
"type": "text",
"bbox": {
"l": 36.96,
"t": 89.76,
"r": 291.6,
"b": 47.04
},
"text": "E: office.moveyourfeet@gmail.com\nwww.moveyourfeet.tennis"
}
]
},
{
"id": "p22.3",
"order": 9,
"type": "title",
"bbox": {
"l": 331.44,
"t": 766.56,
"r": 560.4,
"b": 656.88
},
"text": "i TENNIS™",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p22.4",
"order": 10,
"type": "text",
"bbox": {
"l": 321.6,
"t": 616.08,
"r": 571.2,
"b": 540.96
},
"text": "Pasadena Class Locations\nRose Bowl Tennis Center at\nBrookside Park: 360 N. Arroyo Blvd\nGrant Park: 232 S. Michigan Ave."
},
{
"id": "p22.5",
"order": 11,
"type": "heading",
"bbox": {
"l": 322.32,
"t": 522.48,
"r": 503.52,
"b": 504.96
},
"text": "iTennis Group Lessons",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p22.6",
"order": 12,
"type": "text",
"bbox": {
"l": 321.6,
"t": 503.76,
"r": 569.52,
"b": 402
},
"text": "Learn the basics. Improve your game.\nWhatever your skill level, iTennis offers group clinics and workouts all year long. Join any time and pay a prorated fee. No more than 8 students per court. Please check our website at Rosebowl.i-tennis.com to check the most up-to-date schedule and locations."
},
{
"id": "p22.7",
"order": 13,
"type": "heading",
"bbox": {
"l": 322.8,
"t": 386.64,
"r": 434.4,
"b": 369.36
},
"text": "Tennis Camps",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p22.8",
"order": 14,
"type": "text",
"bbox": {
"l": 321.6,
"t": 368.88,
"r": 577.68,
"b": 295.92
},
"text": "iTennis welcomes players of all levels and ages\n6-16 to participate in one of our week-long\nsummer camps. Morning tennis only. Please\nvisit our website for more information.\nRosebowl.i-tennis.com"
},
{
"id": "p22.9",
"order": 15,
"type": "text",
"bbox": {
"l": 321.36,
"t": 283.68,
"r": 566.16,
"b": 252.96
},
"text": "Class time subject to change. Please contact our office before coming to a class."
},
{
"id": "p22.10",
"order": 16,
"type": "text",
"bbox": {
"l": 320.88,
"t": 223.68,
"r": 505.44,
"b": 116.4
},
"text": "Mailing Address & Contact Info\n920 Lohman Lane\nSouth Pasadena, CA 91030\nOffice: (626) 325-8366\neFax: (626) 628-1936\nitennisinc@gmail.com\nRosebowl.i-tennis.com"
},
{
"id": "p22.11",
"order": 17,
"type": "caption",
"bbox": {
"l": 246.96,
"t": 98.88,
"r": 295.2,
"b": 89.04
},
"text": "WEBPAGE",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "footnote",
"ai_reason": "'WEBPAGE' is the label under the QR code, not a footnote."
}
},
{
"id": "p22.12",
"order": 18,
"type": "footer",
"bbox": {
"l": 31.92,
"t": 19.92,
"r": 218.16,
"b": 8.16
},
"text": "22 Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 1
}
}
Page 23
24 item(s)
JSON
footer (1)
list (1)
list_item (6)
text (14)
title (2)
1 · TITLE
2 · TEXT
3 · TEXT
4 · LIST
5
6
7
8
9
10
11 · TEXT
12 · TEXT
13 · TEXT
14 · TEXT
15 · TITLE
16 · TEXT
17 · TEXT
18 · TEXT
19 · TEXT
20 · TEXT
21 · TEXT
22 · TEXT
23 · TEXT
24 · FOOTER
AI review
(claude-opus-5, conf 78%)
— The extraction captures nearly all page content in correct reading order (left column then right column, footer last), but item #22 appears to have appended stray text from the right-column title, and a few list_item boxes are duplicated/imprecise or missing bullet markers.
major
text_mismatch #22: Item #22's text contains an extra fragment ('/ YO…') that appears to be the start of the right-column title 'YOUTH SPORTS DIRECTORY', which is already captured as #23. This duplicates/corrupts content.
minor
wrong_bbox #20: Items #19 and #20 share the identical bbox (11,68,43,70); the second sub-bullet ('$199 or less, 50%') actually sits lower on the page (~70-72%).
minor
text_mismatch #16: List items #16 and #17 omit the leading '•' bullet present in the image (compare with #14, #15, #18).
minor
wrong_bbox #15: Right edge of the list bbox (#13) and items #15/#18 extend to 73-81% of page width, well past the green column which ends near 48%.
Page 23 JSON
{
"document_id": 267,
"page": 23,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 24,
"counts_by_type": {
"footer": 1,
"list": 1,
"list_item": 6,
"text": 14,
"title": 2
},
"build_ms": 2,
"items": [
{
"id": "p23.1",
"order": 1,
"type": "title",
"bbox": {
"l": 40.08,
"t": 728.88,
"r": 280.32,
"b": 657.36
},
"text": "FUTURE STARS\nYOUTH SPORTS SCHOLARSHIP",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p23.2",
"order": 2,
"type": "text",
"bbox": {
"l": 42,
"t": 631.2,
"r": 268.08,
"b": 562.32
},
"text": "Youth Sports Scholarship Program for non-city related sports programs i.e. tackle football (Pasadena Giants & Pasadena Wolf); little league baseball (West Pasadena); golf (The First Tee of Pasadena); lacrosse (Pasadena Lacrosse); rugby (Pasadena Rugby)."
},
{
"id": "p23.3",
"order": 3,
"type": "text",
"bbox": {
"l": 44.6398,
"t": 553.275,
"r": 146.969114,
"b": 543.879
},
"text": "Participant Scholarship:"
},
{
"id": "p23.4",
"order": 4,
"type": "list",
"bbox": {
"l": 49.787845,
"t": 545.23,
"r": 446.228755,
"b": 446.679
},
"text": "",
"attrs": {
"item_count": 6
},
"children": [
{
"id": "p23.4.1",
"order": 5,
"type": "list_item",
"bbox": {
"l": 50.0668,
"t": 545.23,
"r": 400.628975,
"b": 533.079
},
"text": "• Must live or attend school in Northwest Pasadena"
},
{
"id": "p23.4.2",
"order": 6,
"type": "list_item",
"bbox": {
"l": 63.5218,
"t": 534.3,
"r": 446.228755,
"b": 522.279
},
"text": "- Proof required (residency or school enrollment)"
},
{
"id": "p23.4.3",
"order": 7,
"type": "list_item",
"bbox": {
"l": 50.0668,
"t": 510.075,
"r": 219.020915,
"b": 500.679
},
"text": "• Must participate in a community-based recreational level youth sports program"
},
{
"id": "p23.4.4",
"order": 8,
"type": "list_item",
"bbox": {
"l": 50.0668,
"t": 488.475,
"r": 144.474946,
"b": 479.079
},
"text": "• Submit an application"
},
{
"id": "p23.4.5",
"order": 9,
"type": "list_item",
"bbox": {
"l": 49.787845,
"t": 477.675,
"r": 242.393011,
"b": 468.279
},
"text": "• At the time of registration, youth participants must be between the ages of 5-17"
},
{
"id": "p23.4.6",
"order": 10,
"type": "list_item",
"bbox": {
"l": 50.0668,
"t": 457.038,
"r": 176.308127,
"b": 446.679
},
"text": "• Demonstrate a financial need"
}
]
},
{
"id": "p23.5",
"order": 11,
"type": "text",
"bbox": {
"l": 42.24,
"t": 436.32,
"r": 267.12,
"b": 369.12
},
"text": "Provide documentation consistent with CDBG HUD guidelines for “low to very low” family income, or submit a Hardship Letter from a community organization such as a homeless shelter, church, or other non-profit organizations serving transitional families."
},
{
"id": "p23.6",
"order": 12,
"type": "text",
"bbox": {
"l": 42,
"t": 359.28,
"r": 271.44,
"b": 207.12
},
"text": "Team Scholarship:\n• Must be a 501c3 non-profit organization\n• 80% of youth participants served must be Pasadena residents/PUSD students\nOperate within the boundaries of the City of Pasadena or the PUSD service area\nSubmit an application\n• Offer one of the following registration discounts to youth participants who live or attend PUSD school in Northwest Pasadena\n- For registration fees of $200 or more, $100 of the lowest advertised registration fee\n- For registration fees of $199 or less, 50% of the lowest advertised registration fee"
},
{
"id": "p23.7",
"order": 13,
"type": "text",
"bbox": {
"l": 42.24,
"t": 198.96,
"r": 275.76,
"b": 174
},
"text": "Must increase total participation by 10% compared to the previous year."
},
{
"id": "p23.8",
"order": 14,
"type": "text",
"bbox": {
"l": 42.24,
"t": 166.32,
"r": 264.72,
"b": 140.88
},
"text": "For more information, please call (626) 744-7509 or email kjames@cityofpasadena.net.\nYOUTH SPORTS DIRECTORY"
},
{
"id": "p23.9",
"order": 15,
"type": "title",
"bbox": {
"l": 316.8,
"t": 729.12,
"r": 508.32,
"b": 639.6
},
"text": "YOUTH SPORTS\nDIRECTORY",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "\"YOUTH SPORTS DIRECTORY\" is a large display heading/title, matching the styling of item #1, not body text."
}
},
{
"id": "p23.10",
"order": 16,
"type": "text",
"bbox": {
"l": 318.72,
"t": 619.2,
"r": 459.12,
"b": 555.84
},
"text": "AYSO (Soccer League)\nRegistration information:\n700 W. Woodbury Rd. Unit E.\nAltadena, CA 91001\nayso13.org"
},
{
"id": "p23.11",
"order": 17,
"type": "text",
"bbox": {
"l": 318.72,
"t": 546.72,
"r": 459.36,
"b": 508.08
},
"text": "Pasadena Giants\nYouth Football & Cheering\npasadenagiants@gmail.com"
},
{
"id": "p23.12",
"order": 18,
"type": "text",
"bbox": {
"l": 318.96,
"t": 498.96,
"r": 470.64,
"b": 448.8
},
"text": "Pasadena Wolves\nYouth Football & Cheerleading\n(323) 353-3454\npasadenawolves@gmail.com"
},
{
"id": "p23.13",
"order": 19,
"type": "text",
"bbox": {
"l": 318.96,
"t": 439.2,
"r": 535.44,
"b": 399.84
},
"text": "Pasadena American Little League (Baseball)\nemail president@pallbb.org\npallbb.org"
},
{
"id": "p23.14",
"order": 20,
"type": "text",
"bbox": {
"l": 318.96,
"t": 390.72,
"r": 475.44,
"b": 352.56
},
"text": "Pasadena Rugby Football Club\nemail: youth@pasadenarfc.com\npasadenarfc.com"
},
{
"id": "p23.15",
"order": 21,
"type": "text",
"bbox": {
"l": 318.48,
"t": 342.96,
"r": 496.32,
"b": 291.6
},
"text": "Pasadena Running Roses Track Club\n(Youth Track & Field ages 5 to 18)\npasadenarunningroses@gmail.com\npasadenarunningroses.com"
},
{
"id": "p23.16",
"order": 22,
"type": "text",
"bbox": {
"l": 318.72,
"t": 283.2,
"r": 540.48,
"b": 232.08
},
"text": "Pasadena Southwest Little League (Baseball)\nLaura Unanue\nemail: president@pswll.com\npswll.com"
},
{
"id": "p23.17",
"order": 23,
"type": "text",
"bbox": {
"l": 318.72,
"t": 223.2,
"r": 522,
"b": 172.08
},
"text": "West Pasadena Little League (Baseball)\nBeverly Bogar - West Pasadena President\n(626) 483-9299\nleagueline.com/westpasadena"
},
{
"id": "p23.18",
"order": 24,
"type": "footer",
"bbox": {
"l": 408.48,
"t": 19.44,
"r": 593.28,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 23",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 78,
"added": 0,
"retyped": 1
}
}
Page 24
22 item(s)
JSON
figure (1)
footer (2)
heading (9)
text (10)
1 · FIGURE
2 · HEADING
3 · HEADING
4 · TEXT
5 · HEADING
6 · TEXT
7 · HEADING
8 · TEXT
9 · TEXT
10 · HEADING
11 · TEXT
12 · HEADING
13 · TEXT
14 · HEADING
15 · TEXT
16 · TEXT
17 · HEADING
18 · TEXT
19 · HEADING
20 · TEXT
21 · FOOTER
22 · FOOTER
AI review
(claude-opus-5, conf 70%)
—
Page 24 JSON
{
"document_id": 267,
"page": 24,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 22,
"counts_by_type": {
"figure": 1,
"footer": 2,
"heading": 9,
"text": 10
},
"build_ms": 2,
"items": [
{
"id": "p24.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 300,
"b": 605
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p24.2",
"order": 2,
"type": "heading",
"bbox": {
"l": 31.44,
"t": 743.04,
"r": 148.08,
"b": 679.2
},
"text": "TEEN",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 311.04,
"t": 756.24,
"r": 408.24,
"b": 741.36
},
"text": "TEEN SUMMER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.4",
"order": 4,
"type": "text",
"bbox": {
"l": 309.84,
"t": 736.8,
"r": 571.68,
"b": 654.96
},
"text": "Teen Summer offers organized instructional classes, unstructured activities such as game playing, socializing with peers, and outdoor recreational play. Participants can enjoy facility amenities and technology. LA PINTORESCA T EEN EDUCATION CENTER\n06/16-08/01 12PM - 6PM M-F FREE/$50 AGE: 12-17"
},
{
"id": "p24.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 605.04,
"r": 190.56,
"b": 575.04
},
"text": "ROBINSON PARK YOUTH COMMUNITY ROOM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.6",
"order": 6,
"type": "text",
"bbox": {
"l": 33.12,
"t": 570.72,
"r": 298.08,
"b": 497.28
},
"text": "The Youth Community Room at Robinson Park is open! Stop by to hang out with friends, enjoy movies and video games, play board games, or borrow sports equipment. Programs and activities are held daily. Open weekday evenings and Saturday afternoons. For more information, call (626) 744-7330."
},
{
"id": "p24.7",
"order": 7,
"type": "heading",
"bbox": {
"l": 33.12,
"t": 473.28,
"r": 172.8,
"b": 443.04
},
"text": "LA PINTORESCA TEEN\nEDUCATION CENTER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.8",
"order": 8,
"type": "text",
"bbox": {
"l": 33.12,
"t": 438.48,
"r": 298.8,
"b": 304.8
},
"text": "La Pintoresca Teen Education Center provides recreational programs for youth ages 12 to 17 in a safe and positive environment. The Teen Center offers organized instructional programs such as tutoring, science, math, art studio, DIY projects, poetry, teen talk, filmmaking, ceramics, photography, and college readiness. It also offers opportunities for unstructured activities such as game playing, socializing, club meetings, and outdoor recreational play. All programming is designed to support personal, academic, and socioemotional growth."
},
{
"id": "p24.9",
"order": 9,
"type": "text",
"bbox": {
"l": 33.12,
"t": 301.44,
"r": 298.08,
"b": 264.24
},
"text": "Facility amenities include an iMac computer lab, game tables, video game studio, teen lounge, outdoor space, and free Wi-Fi. For more information, call (626) 345-0706."
},
{
"id": "p24.10",
"order": 10,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 240.48,
"r": 277.68,
"b": 210.96
},
"text": "NEW! MIXED MEDIA STUDIO: EXPLORE, EXPERIMENT, CREATE!",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.11",
"order": 11,
"type": "text",
"bbox": {
"l": 33.12,
"t": 209.76,
"r": 294.72,
"b": 104.4
},
"text": "Dive into the exciting world of mixed media, where the only rule is to experiment! This hands-on class is designed for teens to explore by combining various materials, such as paints, pastels, collage elements, and found objects, into unique artworks. All materials are provided.\nLA PINTORESCA TEEN EDUCATION CENTER\n03/09-04/27 4PM - 5:30PM MON FREE AGE: 12-17"
},
{
"id": "p24.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 310.8,
"t": 640.08,
"r": 433.92,
"b": 625.92
},
"text": "LPTEC ART STUDIO",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.13",
"order": 13,
"type": "text",
"bbox": {
"l": 309.84,
"t": 625.68,
"r": 576.96,
"b": 508.56
},
"text": "These in-depth art experiences inspire teens to engage in ambitious explorations of concepts, creative expression, historical and cultural context, connections, applications, and materials. Art teen classes are designed for all skill levels, from advanced art students to teens who simply love making art. All materials are provided. LA PINTORESCA TEEN EDUCATION CENTER\n03/10-04/28 4PM - 5:30PM MON FREE AGE: 12-17\n06/16-07/28 4PM - 5:30PM MON FREE AGE: 12-17"
},
{
"id": "p24.14",
"order": 14,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 497.04,
"r": 518.4,
"b": 466.8
},
"text": "NEW! PREP FOR SUCCESS: YOUR JUMPSTART TO HIGH SCHOOL",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.15",
"order": 15,
"type": "text",
"bbox": {
"l": 310.08,
"t": 462.24,
"r": 576.72,
"b": 390
},
"text": "This engaging and interactive class is built to give middle school students a confident edge as they prepare for the academic and social transition to high school. Through dynamic activities and peer-led insights, teens will develop the practical skills and mindset needed to thrive in a new environment."
},
{
"id": "p24.16",
"order": 16,
"type": "text",
"bbox": {
"l": 309.36,
"t": 391.68,
"r": 569.04,
"b": 359.52
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER\n03/10-04/28 4PM - 5:30PM TUE FREE AGE: 12-17"
},
{
"id": "p24.17",
"order": 17,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 348.48,
"r": 538.56,
"b": 318.96
},
"text": "NEW! DESIGN & CUT: YOUR WORLD, PERSONALIZED",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.18",
"order": 18,
"type": "text",
"bbox": {
"l": 309.36,
"t": 313.68,
"r": 570.72,
"b": 212.4
},
"text": "Unleash your creativity and learn a cool new skill! In this hands-on workshop, teens use iMac computers to design custom graphics, stickers, and more, then watch a smart Cricut machine cut them out with amazing precision. Personalize your gear, create unique gifts, or just explore digital design, this is the place to be.\nLA PINTORESCA TEEN EDUCATION CENTER\n03/11-04/29 4PM - 5:30PM WED FREE AGE: 12-17"
},
{
"id": "p24.19",
"order": 19,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 200.4,
"r": 543.12,
"b": 170.16
},
"text": "NEW! TEEN CHEFS: COOK, NOURISH, THRIVE!",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p24.20",
"order": 20,
"type": "text",
"bbox": {
"l": 309.84,
"t": 165.84,
"r": 566.16,
"b": 74.4
},
"text": "Designed for teens eager to learn essential cooking techniques and nutrition knowledge. Participants will gain the confidence to prepare a variety of delicious, healthy meals and snacks for themselves and their families.\nLA PINTORESCA TEEN EDUCATION CENTER\n03/12-04/30 4PM - 5:30PM TH FREE AGE: 12-17"
},
{
"id": "p24.21",
"order": 21,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 18.48,
"r": 45.12,
"b": 8.88
},
"text": "24",
"attrs": {
"block_label": "number"
}
},
{
"id": "p24.22",
"order": 22,
"type": "footer",
"bbox": {
"l": 45.12,
"t": 19.44,
"r": 217.92,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
]
}
Page 25
26 item(s)
JSON
figure (3)
footer (3)
heading (6)
text (14)
1 · HEADING
2 · TEXT
3 · TEXT ·✨
4 · TEXT
5 · TEXT ·✨
6 · HEADING
7 · TEXT
8 · HEADING
9 · TEXT
10 · TEXT ·✨
11 · TEXT
12 · HEADING
13 · TEXT
14 · TEXT
15 · HEADING
16 · TEXT
17 · TEXT
18 · HEADING
19 · TEXT
20 · TEXT
21 · FIGURE
22 · FIGURE
23 · FIGURE
24 · FOOTER
25 · FOOTER
26 · FOOTER
AI review
(claude-opus-5, conf 78%)
— Most content is captured in correct reading order, but the Teen Summer section's venue/schedule lines (#6 truncates and the following location/date line is missing), and item #24's text mangles "CITYOFPASADENA.NET/RESERVE". A few lines are also merged into single items.
major
missing_item #6: Under TEEN SUMMER, the venue line "LA PINTORESCA TEEN EDUCATION CENTER" and the schedule line "06/22-07/31 12PM - 6PM M-F FREE/$50 AGE: 12-17" are not present as items (unless silently absorbed into the truncated #6); every other section has these as separate items.
minor
text_mismatch #24: Text rendered as "VISIT CITY OF PASADENA.NET / RESERVE"; the image shows "VISIT CITYOFPASADENA.NET/RESERVE" without spaces.
minor
other #13: Venue line and schedule line merged into one item ("LA PINTORESCA TEEN EDUCATION CENTER / 06/24-07/29 ..."), inconsistent with #3/#4 and #9/#10 which keep them separate. Same for #20.
minor
wrong_bbox #22: The REGISTER ONLINE! banner figure box (52,84,99,95) overlaps and duplicates the footer text region; #23 (QR code) is nested inside it but listed as a sibling figure.
Page 25 JSON
{
"document_id": 267,
"page": 25,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 26,
"counts_by_type": {
"figure": 3,
"footer": 3,
"heading": 6,
"text": 14
},
"build_ms": 2,
"items": [
{
"id": "p25.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 756.24,
"r": 273.12,
"b": 726.24
},
"text": "NEW! GAME ON! REC SPORTS & TEAM CHALLENGES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.84,
"t": 721.2,
"r": 280.32,
"b": 661.2
},
"text": "Designed for teens eager to learn essential cooking techniques and nutrition knowledge. Participants will gain the confidence to prepare a variety of delicious, healthy meals and snacks for themselves and their families."
},
{
"type": "text",
"bbox": {
"l": 36.72,
"t": 661.32,
"r": 195.84,
"b": 647.06
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Venue line under first program not covered; #2 ends at description and #3 starts at date line."
},
"children": [],
"order": 3,
"id": "p25.3"
},
{
"id": "p25.4",
"order": 4,
"type": "text",
"bbox": {
"l": 34.32,
"t": 646.32,
"r": 289.92,
"b": 631.44
},
"text": "03/13-05/01 4PM - 5:30PM TH FREE AGE: 12-17"
},
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 647.06,
"r": 471.24,
"b": 633.6
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Venue line for Culinary Academy"
},
"children": [],
"order": 5,
"id": "p25.5"
},
{
"id": "p25.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 619.68,
"r": 130.8,
"b": 605.52
},
"text": "TEEN SUMMER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.7",
"order": 7,
"type": "text",
"bbox": {
"l": 34.08,
"t": 600.24,
"r": 296.4,
"b": 522
},
"text": "Teen Summer offers organized instructional classes, unstructured activities such as game playing, socializing with peers, and outdoor recreational play. Participants can enjoy facility amenities and technology.\nLA PINTORESCA TEEN EDUCATION CENTER\n06/22-07/31 12PM - 6PM M-F FREE/$50 AGE: 12-17"
},
{
"id": "p25.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 510.72,
"r": 269.28,
"b": 480.72
},
"text": "NEW! UNLEASH YOUR INNER ARTIST: MIXED SUMMER MEDIA",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.9",
"order": 9,
"type": "text",
"bbox": {
"l": 33.84,
"t": 475.68,
"r": 287.76,
"b": 402.72
},
"text": "The exciting world of mixed media art, where the only limit is your imagination! This class is a fantastic opportunity for young artists of all skill levels to experiment, innovate, and create unique masterpieces using a combination of different materials and techniques. All materials are provided."
},
{
"type": "text",
"bbox": {
"l": 36.72,
"t": 401.54,
"r": 195.84,
"b": 388.08
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Venue line above 06/22-07/27 schedule not covered"
},
"children": [],
"order": 10,
"id": "p25.10"
},
{
"id": "p25.11",
"order": 11,
"type": "text",
"bbox": {
"l": 34.32,
"t": 388.56,
"r": 290.16,
"b": 374.16
},
"text": "06/22-07/27 3PM - 4:30PM M FREE AGE: 12-17"
},
{
"id": "p25.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 362.4,
"r": 292.32,
"b": 331.92
},
"text": "NEW! THE SUMMER GAMES CHALLENGE: SKILLS, STRATEGY, & FUN!",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.13",
"order": 13,
"type": "text",
"bbox": {
"l": 33.6,
"t": 327.6,
"r": 289.44,
"b": 254.16
},
"text": "Get ready to run, jump, and play your way through the summer! The Summer Games Challenge is the perfect opportunity for teens to engage in a wide variety of sports and recreational activities. It's a fun and exciting way to stay active, push your limits, and enjoy every moment of play!"
},
{
"id": "p25.14",
"order": 14,
"type": "text",
"bbox": {
"l": 34.32,
"t": 254.4,
"r": 290.16,
"b": 225.12
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER\n06/24-07/29 3PM- 4:30PM W FREE AGE: 12-17"
},
{
"id": "p25.15",
"order": 15,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 756.24,
"r": 525.36,
"b": 726.48
},
"text": "NEW! SUMMER TEEN CULINARY & NUTRITION ACADEMY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.16",
"order": 16,
"type": "text",
"bbox": {
"l": 309.36,
"t": 721.2,
"r": 573.6,
"b": 648.48
},
"text": "Unleash your inner chef this summer! This dynamic class is designed for teens who want to learn how to create delicious, healthy meals from scratch. For beginners or those who already love to cook, you'll gain the skills and confidence to navigate the kitchen like a pro and make smart food choices on your own."
},
{
"id": "p25.17",
"order": 17,
"type": "text",
"bbox": {
"l": 310.08,
"t": 634.08,
"r": 565.44,
"b": 619.44
},
"text": "06/25-07/30 3PM - 4:30PM TH FREE AGE: 12-17"
},
{
"id": "p25.18",
"order": 18,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 607.92,
"r": 566.4,
"b": 577.92
},
"text": "NEW! CREATIVE DESIGN: CRICUT & IMAC MAKERSPACE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p25.19",
"order": 19,
"type": "text",
"bbox": {
"l": 309.36,
"t": 572.64,
"r": 575.52,
"b": 498.96
},
"text": "In this dynamic class, teens will learn how to use a Cricut electronic cutting machine to bring their creative ideas to life. Using the free Cricut Design Space software on an iMac computer, participants will design custom graphics, explore different materials (like vinyl and cardstock), and make personalized projects to take home."
},
{
"id": "p25.20",
"order": 20,
"type": "text",
"bbox": {
"l": 310.56,
"t": 498.96,
"r": 568.56,
"b": 470.16
},
"text": "LA PINTORESCA TEEN EDUCATION CENTER\n06/26-07/31 4PM-5:30PM F FREE AGE: 12-17"
},
{
"id": "p25.21",
"order": 21,
"type": "figure",
"bbox": {
"l": 310.8,
"t": 430.8,
"r": 575.28,
"b": 234.24
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p25.22",
"order": 22,
"type": "figure",
"bbox": {
"l": 316.76,
"t": 129.9,
"r": 603.3201,
"b": 38.82
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p25.23",
"order": 23,
"type": "figure",
"bbox": {
"l": 536.16,
"t": 130.8,
"r": 578.4,
"b": 87.84
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p25.24",
"order": 24,
"type": "footer",
"bbox": {
"l": 317.04,
"t": 125.04,
"r": 533.76,
"b": 58.8
},
"text": "REGISTER ONLINE!\nVISIT CITY OF PASADENA.NET / RESERVE",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p25.25",
"order": 25,
"type": "footer",
"bbox": {
"l": 408.72,
"t": 19.44,
"r": 592.32,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p25.26",
"order": 26,
"type": "footer",
"bbox": {
"l": 581.76,
"t": 18.72,
"r": 593.76,
"b": 8.16
},
"text": "25",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 64,
"added": 3,
"retyped": 0
}
}
Page 26
42 item(s)
JSON
figure (3)
footer (2)
heading (2)
list (4)
list_item (25)
text (5)
title (1)
1 · FIGURE
2 · TITLE
3 · TEXT
4 · FIGURE
5 · LIST
6
7
8
9
10
11 · HEADING
12 · LIST
13
14
15
16
17
18 · HEADING
19 · LIST
20
21
22
23
24
25
26
27
28
29
30 · FIGURE
31 · TEXT
32 · TEXT
33 · LIST
34
35
36
37
38
39
40
41 · FOOTER
42 · FOOTER
AI review
(claude-opus-5, conf 78%)
— The extraction captures nearly all page content in a sensible reading order, but some boxes/structure are off: item #1 is a large figure covering the whole logo panel duplicated by #25/#26, the first two bullet lines are merged into a text block, and the closing paragraph #35 is nested inside the bullet list.
minor
wrong_bbox #1: Figure #1 (55,0,97,33) is an oversized box that overlaps the SGVLGBTQ logo region already captured by #25/#26; it also appears before the page title in reading order.
minor
reading_order #1: The right-column logo figure is placed first, before the left-column title #2; a reader would start with 'YOUTH AMBASSADORS'.
minor
nesting #5: Item #5 merges the intro line 'Ambassador Program opportunities include:' with the first bullet '• Pasadena Art Night', so that bullet is excluded from the list #6.
minor
nesting #35: The closing paragraph 'For more information, please visit sgvlgbtq.org...' is nested as a child of the bullet list #28 rather than being a sibling text block.
minor
text_mismatch #31: Bullet marker rendered as '-' ('- Improving the overall visibility...') while other bullets use '•' or no marker; markers are inconsistent across #29-#34.
Page 26 JSON
{
"document_id": 267,
"page": 26,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 42,
"counts_by_type": {
"figure": 3,
"footer": 2,
"heading": 2,
"list": 4,
"list_item": 25,
"text": 5,
"title": 1
},
"build_ms": 4,
"items": [
{
"id": "p26.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 337.24,
"t": 793.06,
"r": 596.408,
"b": 531.043
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p26.2",
"order": 2,
"type": "title",
"bbox": {
"l": 32.4,
"t": 759.12,
"r": 306,
"b": 656.64
},
"text": "YOUTH\nAMBASSADORS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p26.3",
"order": 3,
"type": "text",
"bbox": {
"l": 32.64,
"t": 651.6,
"r": 300.24,
"b": 529.2
},
"text": "The Pasadena Youth Ambassador Program began in 2001 to provide job experience to high school students through participation at special events held by both non-profit and for-profit organizations in the City of Pasadena. The program provides youth with the opportunity to gain valuable skills by exposing them to various experiences such as being docents, attending conferences, planning events, and being a spokesperson for the program. In addition, Ambassadors are City employees and active members of their community."
},
{
"id": "p26.4",
"order": 4,
"type": "figure",
"bbox": {
"l": 36.96,
"t": 522.48,
"r": 303.84,
"b": 343.44
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p26.5",
"order": 5,
"type": "list",
"bbox": {
"l": 33.84,
"t": 337.68,
"r": 282.48,
"b": 254.4
},
"text": "",
"attrs": {
"item_count": 5
},
"children": [
{
"id": "p26.5.1",
"order": 6,
"type": "list_item",
"bbox": {
"l": 34.56,
"t": 337.68,
"r": 240.96,
"b": 314.88
},
"text": "Ambassador Program opportunities include:\n• Pasadena Art Night"
},
{
"id": "p26.5.2",
"order": 7,
"type": "list_item",
"bbox": {
"l": 34.08,
"t": 314.88,
"r": 233.28,
"b": 302.88
},
"text": "• FAFSA, Scholarship, and College Training"
},
{
"id": "p26.5.3",
"order": 8,
"type": "list_item",
"bbox": {
"l": 34.08,
"t": 302.88,
"r": 282.48,
"b": 289.92
},
"text": "• Ronald McDonald's House of Charity – Walk for Kids"
},
{
"id": "p26.5.4",
"order": 9,
"type": "list_item",
"bbox": {
"l": 34.08,
"t": 290.85,
"r": 185.04,
"b": 278.64
},
"text": "• Rose Bowl Half Marathon & 5K"
},
{
"id": "p26.5.5",
"order": 10,
"type": "list_item",
"bbox": {
"l": 33.84,
"t": 278.85,
"r": 281.04,
"b": 254.4
},
"text": "• Partnerships with multiple City departments & local non-profits"
}
]
},
{
"id": "p26.6",
"order": 11,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 243.12,
"r": 119.76,
"b": 231.12
},
"text": "Program Benefits:"
},
{
"id": "p26.7",
"order": 12,
"type": "list",
"bbox": {
"l": 41.749844,
"t": 233.40999999999997,
"r": 582.525274,
"b": 168.394
},
"text": "",
"attrs": {
"item_count": 5
},
"children": [
{
"id": "p26.7.1",
"order": 13,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 233.40999999999997,
"r": 544.37676,
"b": 218.79399999999998
},
"text": "• Exposes students to new experiences and opportunities"
},
{
"id": "p26.7.2",
"order": 14,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 218.85000000000002,
"r": 124.638981,
"b": 207.28999999999996
},
"text": "• Builds confidence"
},
{
"id": "p26.7.3",
"order": 15,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 206.85000000000002,
"r": 153.860078,
"b": 195.28999999999996
},
"text": "• Creates leadership skills"
},
{
"id": "p26.7.4",
"order": 16,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 199.80999999999995,
"r": 441.212176,
"b": 183.28999999999996
},
"text": "• Provides work readiness training"
},
{
"id": "p26.7.5",
"order": 17,
"type": "list_item",
"bbox": {
"l": 41.749844,
"t": 183.01,
"r": 582.525274,
"b": 168.394
},
"text": "• Allows teens to become part of the alumni network"
}
]
},
{
"id": "p26.8",
"order": 18,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 158.88,
"r": 147.36,
"b": 146.88
},
"text": "Program Requirements:"
},
{
"id": "p26.9",
"order": 19,
"type": "list",
"bbox": {
"l": 33.12,
"t": 149.40999999999997,
"r": 572.922727,
"b": 37.2
},
"text": "",
"attrs": {
"item_count": 10
},
"children": [
{
"id": "p26.9.1",
"order": 20,
"type": "list_item",
"bbox": {
"l": 41.749844,
"t": 149.40999999999997,
"r": 572.922727,
"b": 134.79399999999998
},
"text": "• Age range: 14 - 18"
},
{
"id": "p26.9.2",
"order": 21,
"type": "list_item",
"bbox": {
"l": 41.749844,
"t": 134.85000000000002,
"r": 194.8779,
"b": 123.28999999999996
},
"text": "• Attend a high school in Pasadena"
},
{
"id": "p26.9.3",
"order": 22,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 122.85000000000002,
"r": 126.339146,
"b": 111.28999999999996
},
"text": "• Maintain a 2.5 GPA"
},
{
"id": "p26.9.4",
"order": 23,
"type": "list_item",
"bbox": {
"l": 42.06,
"t": 108.91999999999996,
"r": 221.727734,
"b": 99.28999999999996
},
"text": "• Must have access to email and internet"
},
{
"id": "p26.9.5",
"order": 24,
"type": "text",
"bbox": {
"l": 36,
"t": 84.91999999999996,
"r": 182.2283,
"b": 75.28999999999996
},
"text": "To view the website, please visit",
"attrs": {
"ai_retyped_from": "list_item",
"ai_reason": "'To view the website, please visit' is a plain paragraph line, not a bulleted list item."
}
},
{
"id": "p26.9.6",
"order": 25,
"type": "list_item",
"bbox": {
"l": 36,
"t": 73.66999999999996,
"r": 237.127875,
"b": 63.23000000000002
},
"text": "CityOfPasadena.net/Youth-Ambassadors."
},
{
"id": "p26.9.7",
"order": 26,
"type": "list_item",
"bbox": {
"l": 36,
"t": 65.40999999999997,
"r": 480.722841,
"b": 50.79399999999998
},
"text": "For more information, please call (626) 744-6879 or email"
},
{
"id": "p26.9.8",
"order": 27,
"type": "list_item",
"bbox": {
"l": 36,
"t": 50.85000000000002,
"r": 227.048135,
"b": 39.289999999999964
},
"text": "YouthAmbassadors@CityOfPasadena.net."
},
{
"id": "p26.9.9",
"order": 28,
"type": "list_item",
"bbox": {
"l": 33.12,
"t": 53.52,
"r": 298.8,
"b": 45.36
},
"text": "SGVLGBTQ",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p26.9.10",
"order": 29,
"type": "list_item",
"bbox": {
"l": 33.12,
"t": 45.36,
"r": 298.8,
"b": 37.2
},
"text": "SAN GABRIEL VALLEY CENTER",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"id": "p26.10",
"order": 30,
"type": "figure",
"bbox": {
"l": 360.96,
"t": 753.12,
"r": 566.88,
"b": 702
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p26.11",
"order": 31,
"type": "text",
"bbox": {
"l": 358.56,
"t": 752.64,
"r": 569.28,
"b": 639.6
},
"text": "SGVLGBTQ SAN GABRIEL VALLEY CENTER"
},
{
"id": "p26.12",
"order": 32,
"type": "text",
"bbox": {
"l": 343.68,
"t": 604.8,
"r": 584.4,
"b": 451.2
},
"text": "The San Gabriel Valley LGBTQ Center is a California Non-Profit Corporation, 501(c)(3), founded in 2011. Our mission is to promote a safe and inclusive San Gabriel Valley for people of all orientations and gender identities. We aim to enrich the lives of LGBTQ+ San Gabriel Valley residents by:"
},
{
"id": "p26.13",
"order": 33,
"type": "list",
"bbox": {
"l": 343.44,
"t": 436.32,
"r": 591.6,
"b": 48.24
},
"text": "",
"attrs": {
"item_count": 7
},
"children": [
{
"id": "p26.13.1",
"order": 34,
"type": "list_item",
"bbox": {
"l": 344.16,
"t": 436.32,
"r": 575.04,
"b": 402.72
},
"text": "Fostering advocacy, education, and respect for individuals"
},
{
"id": "p26.13.2",
"order": 35,
"type": "list_item",
"bbox": {
"l": 343.44,
"t": 401.41,
"r": 561.84,
"b": 335.76
},
"text": "Encouraging cultural diversity, healthy living, and full achievement of personal potential"
},
{
"id": "p26.13.3",
"order": 36,
"type": "list_item",
"bbox": {
"l": 344.4,
"t": 335.04,
"r": 570.48,
"b": 285.36
},
"text": "- Improving the overall visibility of the SGV LGBTQ community within the general population"
},
{
"id": "p26.13.4",
"order": 37,
"type": "list_item",
"bbox": {
"l": 344.16,
"t": 284.4,
"r": 577.44,
"b": 235.44
},
"text": "• Providing locally available, culturally competent programs and services"
},
{
"id": "p26.13.5",
"order": 38,
"type": "list_item",
"bbox": {
"l": 344.64,
"t": 234.24,
"r": 547.2,
"b": 184.8
},
"text": "Promoting interconnection amongst the SGV LGBTQ community"
},
{
"id": "p26.13.6",
"order": 39,
"type": "list_item",
"bbox": {
"l": 343.44,
"t": 184.08,
"r": 591.6,
"b": 115.44
},
"text": "All of this amazing work exists to celebrate and protect the lives of Queer and Transgender people across the San Gabriel Valley"
},
{
"id": "p26.13.7",
"order": 40,
"type": "text",
"bbox": {
"l": 343.44,
"t": 100.56,
"r": 571.68,
"b": 48.24
},
"text": "For more information, please visit sgvlgbtq.org. Follow us on social media at @sgvlgbtq",
"attrs": {
"ai_retyped_from": "list_item",
"ai_reason": "This is a closing paragraph, not a bulleted list item; it has no bullet in the image."
}
}
]
},
{
"id": "p26.14",
"order": 41,
"type": "footer",
"bbox": {
"l": 38.88,
"t": 19.44,
"r": 218.64,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p26.15",
"order": 42,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 18.96,
"r": 45.84,
"b": 9.12
},
"text": "26",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 2
}
}
Page 27
29 item(s)
JSON
figure (1)
footer (1)
heading (8)
table (8)
text (10)
title (1)
1 · TITLE
2 · FIGURE
3 · TEXT
4 · HEADING
5 · TEXT
6 ·✨
7 · HEADING
8 · TEXT
9 ·✨
10 · HEADING
11 · TEXT
12 ·✨
13 · HEADING
14 · TEXT
15 ·✨
16 · HEADING
17 · TEXT
18 ·✨
19 · TABLE ·✨
20 · HEADING
21 · TEXT
22 · HEADING
23 · TEXT
24 · HEADING
25 · TEXT
26 · TEXT ·✨
27 · TABLE ·✨
28 · TABLE ·✨
29 · FOOTER
AI review
(claude-opus-5, conf 88%)
— The extraction captures headings and descriptive paragraphs, but every class schedule block (venue name plus date/time/day/fee/age rows) — roughly a dozen tables of data — is entirely missing, and the reading order alternates between columns rather than completing the left column first.
major
missing_item #5: Missing schedule block after AEROBICS DANCE FITNESS text: 'ROBINSON PARK RECREATION CENTER' plus three rows (03/11-04/29, 05/06-06/24, 07/08-08/12 6:30PM-7:30PM WED $45/$90 / $34/$68 AGE: 18/UP).
major
missing_item #7: Missing 'OCTAVIA E. BUTLER MAGNET' venue line and three schedule rows under BALLET FOLKLORICO (03/10-04/28, 05/05-06/23, 07/07-08/11).
major
missing_item #9: Missing 'JACKIE ROBINSON COMMUNITY CENTER' and two YEAR-ROUND schedule rows (10AM-1PM and 3PM-6PM, M-F, FREE, AGE: 12/UP) under COMPUTER CLUB.
major
missing_item #11: Missing 'VILLA PARKE COMMUNITY CENTER' and three schedule rows under ADAPTIVE ART (03/11-04/29, 05/06-06/24, 07/08-08/12, 6PM-7:30PM WED FREE AGE: 18/UP).
major
missing_item #13: Missing 'VILLA PARKE COMMUNITY CENTER' and three schedule rows under CERAMICS (03/14-05/02, 05/19-06/27, 07/11-08/15, 8AM-9:30AM SAT $67/$134, $50/$100).
major
missing_item #15: Missing 'VILLA PARKE COMMUNITY CENTER' and three schedule rows under AZTEC DANCE (03/11-04/29, 05/06-06/24, 07/08-08/12, 6PM-8PM WED FREE AGE: ALL AGES).
major
missing_item #17: Missing 'JACKIE ROBINSON COMMUNITY CENTER' and schedule row 02/18-04/08 9 AM-11:10 AM M/W FREE AGE: 18/UP under ESL/BASIC-INTERMEDIATE CONVERSATION.
major
missing_item #19: Missing 'JACKIE ROBINSON COMMUNITY CENTER' and schedule row 04/20-06/10 9 AM-11:10 AM M/W FREE AGE: 18/UP under ESL/BASIC-INTERMEDIATE PRONUNCIATION.
major
reading_order #6: Reading order interleaves columns: items #6-#9 (right column BALLET FOLKLORICO / COMPUTER CLUB) are placed between left-column sections #5 and #10, then it returns to the left column (#10-#15) before resuming the right column (#16-#19). A person would read the entire left column first, then the right.
minor
wrong_type #1: 'ADULT' is the page title/section heading rendered as large display text; typing it as a 'header' (running header) is debatable.
Page 27 JSON
{
"document_id": 267,
"page": 27,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 29,
"counts_by_type": {
"figure": 1,
"footer": 1,
"heading": 8,
"table": 8,
"text": 10,
"title": 1
},
"build_ms": 2,
"items": [
{
"id": "p27.1",
"order": 1,
"type": "title",
"bbox": {
"l": 35.52,
"t": 756.96,
"r": 180.24,
"b": 694.8
},
"text": "ADULT",
"attrs": {
"block_label": "header",
"ai_retyped_from": "header",
"ai_reason": "'ADULT' is the large page title, not a running header."
}
},
{
"id": "p27.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 300,
"b": 613
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p27.3",
"order": 3,
"type": "text",
"bbox": {
"l": 33.12,
"t": 690.96,
"r": 258.72,
"b": 664.08
},
"text": "Programs may be impacted by holiday closures, including Memorial Day and Independence Day."
},
{
"id": "p27.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 656.64,
"r": 205.92,
"b": 642.72
},
"text": "AEROBICS DANCE FITNESS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.5",
"order": 5,
"type": "text",
"bbox": {
"l": 33.12,
"t": 641.52,
"r": 292.08,
"b": 508.32
},
"text": "Let's dance! This tried and true workout will get you in shape while building strength, stamina, coordination, muscle tone and balance through fun, repeated movement of all muscle groups with very low impact. This popular, co-ed class is a perfect way to dust off those sneakers and get back in shape!\nROBINSON PARK RECREATION CENTER\n03/11-04/29 6:30PM - 7:30PM WED $45/$90 AGE: 18/UP\n05/06-06/24 6:30PM - 7:30PM WED $45/$90 AGE: 18/UP\n07/08-08/12 6:30PM - 7:30PM WED $34/$68 AGE: 18/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 542.52,
"r": 299.88,
"b": 498.96
},
"text": "03/11-04/29 6:30PM - 7:30PM WED $45/$90 AGE: 18/UP\n05/06-06/24 6:30PM - 7:30PM WED $45/$90 AGE: 18/UP\n07/08-08/12 6:30PM - 7:30PM WED $34/$68 AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "Schedule table for Aerobics Dance Fitness has no extracted item."
},
"children": [],
"order": 6,
"id": "p27.5.1"
}
]
},
{
"id": "p27.6",
"order": 7,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 755.52,
"r": 445.92,
"b": 741.84
},
"text": "BALLET FOLKLORICO",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.7",
"order": 8,
"type": "text",
"bbox": {
"l": 309.36,
"t": 740.88,
"r": 572.4,
"b": 621.36
},
"text": "Baila con nosotros! (dance with us!) Learn the rich movements of this traditional Mexican heritage dance as well as other unique dances from Mexico. Participants will learn choreography, and increase their fitness levels while enjoying this traditional art of dance expression. OCTAVIA E. BUTLER MAGNET\n03/10-04/28 6:30PM - 7:30PM TUE $45/$90 AGE: 18/UP\n05/05-06/23 6:30PM - 7:30PM TUE $45/$90 AGE: 18/UP\n07/07-08/11 6:30PM - 7:30PM TUE $34/$68 AGE: 18/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 661.32,
"r": 581.4,
"b": 613.8
},
"text": "03/10-04/28 6:30PM - 7:30PM TUE $45/$90 AGE: 18/UP\n05/05-06/23 6:30PM - 7:30PM TUE $45/$90 AGE: 18/UP\n07/07-08/11 6:30PM - 7:30PM TUE $34/$68 AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "Schedule table for Ballet Folklorico not extracted (only paragraph text captured)."
},
"children": [],
"order": 9,
"id": "p27.7.1"
}
]
},
{
"id": "p27.8",
"order": 10,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 606.72,
"r": 423.84,
"b": 593.28
},
"text": "COMPUTER CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.9",
"order": 11,
"type": "text",
"bbox": {
"l": 309.36,
"t": 592.56,
"r": 573.36,
"b": 500.16
},
"text": "Students and adults are offered a place to use technology with free access to computers, internet, and Wi-Fi. Children 11 years and under must be accompanied by an adult.\nJACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 10AM - 1PM M-F FREE AGE: 12/UP\nYEAR-ROUND 3PM - 6PM M-F FREE AGE: 12/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 526.68,
"r": 581.4,
"b": 495
},
"text": "YEAR-ROUND 10AM - 1PM M-F FREE AGE: 12/UP\nYEAR-ROUND 3PM - 6PM M-F FREE AGE: 12/UP",
"attrs": {
"source": "ai_vision",
"reason": "Computer Club schedule table not extracted."
},
"children": [],
"order": 12,
"id": "p27.9.1"
}
]
},
{
"id": "p27.10",
"order": 13,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 486,
"r": 128.16,
"b": 472.56
},
"text": "ADAPTIVE ART",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.11",
"order": 14,
"type": "text",
"bbox": {
"l": 33.36,
"t": 472.32,
"r": 293.28,
"b": 351.36
},
"text": "Express yourself! This class provides adults with intellectual and developmental disabilities the opportunity to express themselves through art. Participants will explore their artistic skills through drawing and writing.\nVILLA PARKE COMMUNITY CENTER\n03/11-04/29 6PM - 7:30PM WED FREE AGE: 18/UP\n05/06-06/24 6PM - 7:30PM WED FREE AGE: 18/UP\n07/08-08/12 6PM - 7:30PM WED FREE AGE: 18/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 388.08,
"r": 299.88,
"b": 344.52
},
"text": "03/11-04/29 6PM - 7:30PM WED FREE AGE: 18/UP\n05/06-06/24 6PM - 7:30PM WED FREE AGE: 18/UP\n07/08-08/12 6PM - 7:30PM WED FREE AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "Adaptive Art schedule table not extracted."
},
"children": [],
"order": 15,
"id": "p27.11.1"
}
]
},
{
"id": "p27.12",
"order": 16,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 333.12,
"r": 103.44,
"b": 319.2
},
"text": "CERAMICS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.13",
"order": 17,
"type": "text",
"bbox": {
"l": 34.08,
"t": 318.96,
"r": 299.76,
"b": 210.48
},
"text": "Explore your artistic side in our ceramics class! Learn essential techniques such as pinching, coiling, slab building, and glazing. This class is taught by the Armory Center for the Arts.\nVILLA PARKE COMMUNITY CENTER\n03/14-05/02 8AM - 9:30AM SAT $67/$134 AGE: 18/UP\n05/19-06/27 8AM - 9:30AM SAT $67/$134 AGE: 18/UP\n07/11-08/15 8AM - 9:30AM SAT $50/$100 AGE: 18/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 241.56,
"r": 299.88,
"b": 198
},
"text": "03/14-05/02 8AM - 9:30AM SAT $67/$134 AGE: 18/UP\n05/19-06/27 8AM - 9:30AM SAT $67/$134 AGE: 18/UP\n07/11-08/15 8AM - 9:30AM SAT $50/$100 AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "Ceramics schedule table not extracted."
},
"children": [],
"order": 18,
"id": "p27.13.1"
}
]
},
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 312.84,
"r": 581.4,
"b": 297
},
"text": "02/18-04/08 9 AM-11:10 AM M/W FREE AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "ESL Conversation schedule row not extracted."
},
"children": [],
"order": 19,
"id": "p27.14"
},
{
"id": "p27.15",
"order": 20,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 192,
"r": 127.2,
"b": 177.12
},
"text": "AZTEC DANCE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.16",
"order": 21,
"type": "text",
"bbox": {
"l": 32.16,
"t": 172.56,
"r": 300.96,
"b": 36.48
},
"text": "Participate in traditional Aztec Indian dance steps, style, movement, drum rhythms, and songs. Workshops start with basic movements and then progress to choreographed dance steps. All classes are accompanied by live Aztec drumming. For more information, call (323) 363-5931.\nVILLA PARKE COMMUNITY CENTER\n03/11-04/29 6PM - 8PM WED FREE AGE: ALL AGES\n05/06-06/24 6PM - 8PM WED FREE AGE: ALL AGES\n07/08-08/12 6PM - 8PM WED FREE AGE: ALL AGES"
},
{
"id": "p27.17",
"order": 22,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 484.32,
"r": 483.36,
"b": 455.52
},
"text": "ESL/BASIC-INTERMEDIATE CONVERSATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.18",
"order": 23,
"type": "text",
"bbox": {
"l": 309.12,
"t": 454.08,
"r": 571.92,
"b": 313.92
},
"text": "Development of student confidence and ability to integrate into the English-speaking community through training and practice in intermediate level listening, speaking, and interpersonal communication skills. Topics include small talk, telephone communication, asking for/giving directions, and discussing personal interests and plans. ESLN 1072, CRN 40649. Provided by Pasadena City College. Register online at pasadena.edu/noncredit/index.php or call (626) 585-3036. JACKIE ROBINSON COMMUNITY CENTER\n02/18-04/08 9 AM-11:10 AM M/W FREE AGE: 18/UP"
},
{
"id": "p27.19",
"order": 24,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 300,
"r": 483.36,
"b": 270.96
},
"text": "ESL/BASIC-INTERMEDIATE PRONUNCIATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p27.20",
"order": 25,
"type": "text",
"bbox": {
"l": 308.88,
"t": 269.28,
"r": 571.44,
"b": 129.36
},
"text": "Effective pronunciation of American English. Topics include the fundamental components of stress, rhythm, and intonation, as well as recognizing and producing key individual speech sounds (vowels and consonants), within the context of beginning to intermediate vocabulary and grammar structures. ESLN 1082, CRN 40116. Provided by Pasadena City College. Register online at pasadena.edu/noncredit/index.php or call (626) 585-3036.\nJACKIE ROBINSON COMMUNITY CENTER\n04/20-06/10 9 AM-11:10 AM M/W FREE AGE: 18/UP"
},
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 126.72,
"r": 452.88,
"b": 110.88
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Location subheading below ESL Pronunciation paragraph not covered by any item."
},
"children": [],
"order": 26,
"id": "p27.21"
},
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 110.88,
"r": 581.4,
"b": 95.04
},
"text": "04/20-06/10 9 AM-11:10 AM M/W FREE AGE: 18/UP",
"attrs": {
"source": "ai_vision",
"reason": "ESL Pronunciation schedule row not extracted."
},
"children": [],
"order": 27,
"id": "p27.22"
},
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 43.56,
"r": 299.88,
"b": 0
},
"text": "03/11-04/29 6PM - 8PM WED FREE AGE: ALL AGES\n05/06-06/24 6PM - 8PM WED FREE AGE: ALL AGES\n07/08-08/12 6PM - 8PM WED FREE AGE: ALL AGES",
"attrs": {
"source": "ai_vision",
"reason": "Aztec Dance schedule table not extracted."
},
"children": [],
"order": 28,
"id": "p27.23"
},
{
"id": "p27.24",
"order": 29,
"type": "footer",
"bbox": {
"l": 408.72,
"t": 19.68,
"r": 593.28,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 27",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 80,
"added": 9,
"retyped": 1
}
}
Page 28
24 item(s)
JSON
footer (2)
heading (7)
table (1)
table_cell (5)
text (9)
1 · HEADING
2 · TEXT
3 · HEADING
4 · TEXT
5 · HEADING
6 · TEXT
7 · TEXT ·✨
8 · HEADING
9 · TEXT
10 · HEADING
11 · TEXT
12 · HEADING
13 · TEXT
14 · TEXT
15 · HEADING
16 · TEXT
17 · TABLE
18
19
20
21
22
23 · FOOTER
24 · FOOTER
AI review: page OK
(claude-opus-5, conf 78%)
— All visible content on both columns is captured in a sensible column-by-column reading order with correct headings, body text, schedule blocks and footer. Only minor structural inconsistencies remain (schedule tables nested inside paragraphs, one schedule block typed as text instead of a table).
minor
nesting #3: Venue line 'WASHINGTON PARK COMMUNITY HOUSE' appears to be folded into the paragraph #2 rather than captured as its own line/row; the schedule table #3 is nested inside the paragraph, which is structurally odd (same pattern for #6, #9, #12).
minor
table_structure #12: Table #12 mixes two venue sub-headers (ROBINSON PARK FITNESS CENTER and VILLA PARKE FITNESS CENTER) with their rows into one table; its bbox bottom (85%) slightly exceeds the visible block.
minor
wrong_type #19: The Restorative Yoga schedule block is typed as plain text while the equivalent blocks elsewhere on the page are tables (#15, #22); inconsistent typing of the same structure.
minor
text_mismatch #24: Date ranges in the WITNESS THE FITNESS table use hyphens ('03/14-05/02') whereas the image uses en dashes ('03/14–05/02'); trivial character-level difference.
Page 28 JSON
{
"document_id": 267,
"page": 28,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 24,
"counts_by_type": {
"footer": 2,
"heading": 7,
"table": 1,
"table_cell": 5,
"text": 9
},
"build_ms": 4,
"items": [
{
"id": "p28.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 756.24,
"r": 118.8,
"b": 742.32
},
"text": "REC FITNESS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.6,
"t": 741.84,
"r": 296.88,
"b": 650.64
},
"text": "Join Rec Fitness, a drop-in program for adults with intellectual and developmental disabilities! Enjoy self-guided games and activities to boost fitness, social skills, and more. Check out equipment during your visit, and stay active at your own pace!\nWASHINGTON PARK COMMUNITY HOUSE\n03/10-04/30 11AM-1PM T,TH FREE AGE: 18+"
},
{
"id": "p28.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 636.48,
"r": 213.36,
"b": 621.84
},
"text": "WOW DANCE ON THE MOVE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.4",
"order": 4,
"type": "text",
"bbox": {
"l": 34.08,
"t": 621.6,
"r": 299.28,
"b": 490.32
},
"text": "Come out and line dance! Line dance is a choreographed dance with a repeated sequence of steps with dancers in one or more lines or rows. The fund unique movements will keep your heart healthy, improve your balance and stimulate your mind. Learn it all at your own pace while you make new friends! JACKIE ROBINSON COMMUNITY CENTER\n03/09-04/29 6PM - 7PM M, W FREE AGE: 18/UP\n05/04-06/24 6PM - 7PM M, W FREE AGE: 18/UP\n07/06-08/12 6PM - 7PM M, W FREE AGE: 18/UP"
},
{
"id": "p28.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 476.16,
"r": 238.32,
"b": 462.72
},
"text": "VILLA PARKE BOXING PROGRAM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.6",
"order": 6,
"type": "text",
"bbox": {
"l": 32.64,
"t": 462.96,
"r": 300.72,
"b": 333.84
},
"text": "The Villa Parke Boxing membership offers adults the opportunity to learn Olympic-style boxing techniques. Training focuses on improving overall fitness and mental and physical health. Boxing greatly helps in the development of social skills, self-confidence, leadership, character and sportsmanship. Membership fees per 6 months.\nVILLA PARKE COMMUNITY CENTER\nYEAR-ROUND 9AM - 2PM M-F $65/$130 AGE: 18/UP\nYEAR-ROUND 7PM - 8PM M-F $65/$130 AGE: 18/UP"
},
{
"type": "text",
"bbox": {
"l": 306,
"t": 447.48,
"r": 465.12,
"b": 434.02
},
"text": "VICTORY PARK RECREATION CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Location line above the RESTORATIVE YOGA schedule rows is not covered."
},
"children": [],
"order": 7,
"id": "p28.7"
},
{
"id": "p28.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 319.44,
"r": 233.04,
"b": 305.28
},
"text": "FITNESS CENTER MEMBERSHIP",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.9",
"order": 9,
"type": "text",
"bbox": {
"l": 33.84,
"t": 304.8,
"r": 300.48,
"b": 131.04
},
"text": "Unlock your fitness potential with our 6-month Fitness Center Membership! Enjoy cardio equipment, exercise machines, and free weights for a complete workout experience. Memberships valid at Robinson Park and Villa Parke Fitness Centers. For more information, call (626) 744-6530. Join today!\nROBINSON PARK FITNESS CENTER\n8AM - 8PM M-TH $65/$130 AGE: 15/UP\n8AM - 5PM F, SAT $65/$130 AGE: 15/UP\nVILLA PARKE FITNESS CENTER\n9AM - 8PM M-TH $65/$130 AGE: 15/UP\n9AM - 7PM F $65/$130 AGE: 15/UP\n9AM - 4PM SAT $65/$130 AGE: 15/UP"
},
{
"id": "p28.10",
"order": 10,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 755.52,
"r": 390.24,
"b": 741.84
},
"text": "YOGA FLOW",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.11",
"order": 11,
"type": "text",
"bbox": {
"l": 309.12,
"t": 740.4,
"r": 568.56,
"b": 611.28
},
"text": "Let's focus, flow, and have some fun! This 60-minute vinyasa-style class is designed to get your body and breath moving. Longer holds build strength and focus, while stretching invites ease and surrender. You will leave feeling refreshed, centered, and strong. Open to all levels.\nVICTORY PARK RECREATION CENTER\n03/10-04/28 5:30PM-6:30PM TUE $45/$90 AGE: 18/UP\n05/05-06/23 5:30PM-6:30PM TUE $45/$90 AGE: 18/UP\n07/11-08/11 5:30PM-6:30PM TUE $34/$68 AGE: 18/UP"
},
{
"id": "p28.12",
"order": 12,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 595.92,
"r": 477.12,
"b": 582.24
},
"text": "NEW! RESTORATIVE YOGA",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.13",
"order": 13,
"type": "text",
"bbox": {
"l": 308.88,
"t": 580.8,
"r": 576.24,
"b": 448.08
},
"text": "Allow your body to gently open and restore in this nourishing, grounding restorative yoga class. We will begin with breathwork and meditation, then move slowly and intentionally into supported postures held for longer periods of time. The focus will be on deep relaxation and mindful release, creating space to soften tension and ease stress. This class offers an opportunity to fully settle into your body and reconnect with a sense of calm. You will leave feeling grounded, relaxed, and connected. Please bring your yoga mat, along with a yoga block and strap if you have one."
},
{
"id": "p28.14",
"order": 14,
"type": "text",
"bbox": {
"l": 309.6,
"t": 436.8,
"r": 569.04,
"b": 390.24
},
"text": "03/10–04/28 6:30PM–7:30PM TUE $45 AGE: 18/UP\n05/05–06/23 6:30PM–7:30PM TUE $45 AGE: 18/UP\n07/07–08/11 6:30PM–7:30PM TUE $34 AGE: 18/UP"
},
{
"id": "p28.15",
"order": 15,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 376.08,
"r": 456.72,
"b": 362.64
},
"text": "WITNESS THE FITNESS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p28.16",
"order": 16,
"type": "text",
"bbox": {
"l": 309.12,
"t": 360.72,
"r": 569.52,
"b": 241.68
},
"text": "Join us for a 60-minute fitness class that combines boxing, core, cardio, and strength exercises. This class focuses on teaching boxing and self-defense techniques while improving strength, endurance, hand-eye coordination, and confidence. You'll get a full-body workout designed to boost your fitness and boxing skills, all while fostering a sense of community and personal achievement. Leave each session feeling accomplished, energized, and ready to take on new challenges!"
},
{
"id": "p28.17",
"order": 17,
"type": "table",
"bbox": {
"l": 309.36,
"t": 240.48,
"r": 568.32,
"b": 182.88
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 4,
"integrity": {
"cells_checked": 5,
"cells_flagged": 0
}
},
"children": [
{
"id": "p28.17.1",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 238.99199999999996,
"r": 428.579897,
"b": 228.94799999999998
},
"text": "VILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 4,
"bbox_refit": true
}
},
{
"id": "p28.17.2",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 224.59199999999998,
"r": 362.388,
"b": 185.74800000000005
},
"text": "03/14-05/02\n05/09-06/27\n07/11-08/15",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p28.17.3",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 384,
"t": 224.59199999999998,
"r": 420.82812,
"b": 185.74800000000005
},
"text": "8AM-9AM\n8AM-9AM\n8AM-9AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p28.17.4",
"order": 21,
"type": "table_cell",
"bbox": {
"l": 456.00012,
"t": 224.59199999999998,
"r": 469.58424,
"b": 185.74800000000005
},
"text": "SAT\nSAT\nSAT",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p28.17.5",
"order": 22,
"type": "table_cell",
"bbox": {
"l": 492,
"t": 224.59199999999998,
"r": 566.700235,
"b": 185.74800000000005
},
"text": "$45/$90 AGE: 18/UP\n$45/$90 AGE: 18/UP\n$34/$68 AGE: 18/UP",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p28.18",
"order": 23,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 19.2,
"r": 45.6,
"b": 9.36
},
"text": "28",
"attrs": {
"block_label": "number"
}
},
{
"id": "p28.19",
"order": 24,
"type": "footer",
"bbox": {
"l": 46.56,
"t": 19.68,
"r": 218.4,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 78,
"added": 1,
"retyped": 0
}
}
Page 29
80 item(s)
JSON
figure (3)
footer (1)
heading (7)
table (7)
table_cell (51)
text (10)
title (1)
1 · TEXT
2 · FIGURE
3 · TITLE
4 · TEXT
5 · HEADING
6 · TEXT
7 · TEXT
8 · TEXT
9 · TABLE
10
11
12
13
14
15
16
17
18
19
20 · HEADING
21 · TEXT
22 · TABLE
23
24
25
26
27
28
29 · FIGURE
30 · TEXT
31 · FIGURE
32 · TEXT
33 · HEADING
34 · TABLE
35
36
37
38
39
40
41
42
43
44
45
46 · HEADING
47 · TABLE
48
49
50
51
52
53
54 · HEADING
55 · TABLE
56
57 ·✨
58
59
60
61
62
63 · HEADING
64 · TABLE
65
66 ·✨
67
68
69
70
71
72 · HEADING
73 · TABLE
74
75
76
77
78
79
80 · FOOTER
AI review
(claude-opus-5, conf 80%)
— Most content is captured, but reading order is broken at the start (the right-column subtitle #1 appears before the page title), several descriptive paragraphs are wrongly absorbed as table cells inside the right-column tables, and the "CHAIR AEROBICS"/"CROCHET" venue headers are mixed into tables. Text of the right-column descriptions is present but mis-typed, and the ESL/CONVERSATIONAL body text lost some content.
major
reading_order #1: Item #1 ("Learn how to navigate your cellphone.") is the sub-line of the right-column TECH TALK section (heading #107) but is placed first, before the page title #3. It should follow #107.
major
wrong_type #143: The COMPUTER CLASS description paragraph ("Lean all the basics on how to use a computer...") is captured as a table_cell inside table #142 rather than as body text preceding the schedule table.
major
wrong_type #162: The ART EXPLORATION description paragraph is captured as a table_cell inside table #161 instead of a separate text paragraph; it also appears truncated.
major
wrong_type #181: The DANCE FITNESS description paragraph is captured as a table_cell inside table #180 instead of a separate text block; the trailing word "adults." is not clearly represented.
major
wrong_type #200: The ESL/CONVERSATIONAL description ("Learn English through conversation! All ESL levels are welcome.") is captured as a table_cell inside table #199 instead of a text paragraph.
minor
table_structure #55: The venue header "VILLA PARKE COMMUNITY CENTER" is embedded as a full-width table_cell inside the CHAIR AEROBICS table (#55); similarly #84, #109, #125, #144, #163, #182, #201. These are section captions, not table rows (compare #8, which was correctly captured as a caption).
minor
text_mismatch #101: The register box text is merged/garbled: image reads "REGISTER ONLINE!" and "VISIT CITYOFPASADENA.NET/RESERVE"; extraction gives "VISIT CITY OF PASADENA.NET / RESERVE" with inserted spaces.
minor
other #103: The dotted border of the register box is captured as a figure with three phantom radio form_fields (#104–#106), which is spurious decoration/structure.
minor
wrong_bbox #100: Figure #100 (register box) ends at x=53 while the box extends to about x=50 and the QR code region; box also does not cover the full dotted frame consistently with #103.
Page 29 JSON
{
"document_id": 267,
"page": 29,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 80,
"counts_by_type": {
"figure": 3,
"footer": 1,
"heading": 7,
"table": 7,
"table_cell": 51,
"text": 10,
"title": 1
},
"build_ms": 30,
"items": [
{
"id": "p29.1",
"order": 1,
"type": "text",
"bbox": {
"l": 309.6,
"t": 741.36,
"r": 488.64,
"b": 728.88
},
"text": "Learn how to navigate your cellphone.",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "header",
"ai_reason": "This is the descriptive sentence under the Tech Talk heading, not a page header."
}
},
{
"id": "p29.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 306,
"b": 614
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p29.3",
"order": 3,
"type": "title",
"bbox": {
"l": 34.8,
"t": 759.6,
"r": 300.96,
"b": 704.64
},
"text": "OLDER ADULTS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p29.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.36,
"t": 667.92,
"r": 258.48,
"b": 641.76
},
"text": "Programs may be impacted by holiday closures, including Memorial Day and Independence Day."
},
{
"id": "p29.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 626.88,
"r": 144.72,
"b": 613.2
},
"text": "CHAIR AEROBICS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.6",
"order": 6,
"type": "text",
"bbox": {
"l": 32.88,
"t": 612.24,
"r": 291.12,
"b": 550.8
},
"text": "This class is designed to improve the overall muscle strength, range of motion, flexibility and balance of active older adults. Enhance your cardiovascular health and learn a variety of low-impact chair exercises in this engaging aerobics class. Sponsored by the Pasadena"
},
{
"id": "p29.7",
"order": 7,
"type": "text",
"bbox": {
"l": 34.8,
"t": 549.12,
"r": 101.52,
"b": 537.6
},
"text": "Senior Center.",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "'Senior Center.' is the continuation of the Chair Aerobics paragraph, not a caption."
}
},
{
"id": "p29.8",
"order": 8,
"type": "text",
"bbox": {
"l": 34.32,
"t": 536.4,
"r": 168,
"b": 522.96
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"block_label": "figure_title",
"ai_retyped_from": "caption",
"ai_reason": "Location subheading line, not a caption."
}
},
{
"id": "p29.9",
"order": 9,
"type": "table",
"bbox": {
"l": 34.08,
"t": 525.36,
"r": 294.48,
"b": 305.76
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 10,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.9.1",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 519.572,
"r": 152.579891,
"b": 379.928
},
"text": "03/09-04/27\n03/10-04/28\n03/12-04/30\n05/04-06/22\n05/05-06/23\n05/07-06/25\n07/06-08/10\n07/07-08/11\n07/09-08/13\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.2",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 519.572,
"r": 173.32812,
"b": 394.328
},
"text": "11AM - 12PM\n1:00PM - 2:00PM\n10:30AM - 11:30AM\n11AM - 12PM\n1:00PM - 2:00PM\n10:30AM - 11:30AM\n11AM - 12PM\n1:00PM - 2:00PM\n10:30AM - 11:30AM",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.3",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 179.99976,
"t": 519.572,
"r": 195.32388,
"b": 394.328
},
"text": "MON\nTUE\nTHU\nMON\nTUE\nTHU\nMON\nTUE\nTHU",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.4",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 215.999748,
"t": 519.572,
"r": 233.088276,
"b": 394.328
},
"text": "FREE\nFREE\nFREE\nFREE\nFREE\nFREE\nFREE\nFREE\nFREE",
"attrs": {
"row": 0,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.5",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 251.999748,
"t": 519.572,
"r": 291.756276,
"b": 394.328
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 0,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.6",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 375.572,
"r": 84.804,
"b": 307.928
},
"text": "03/09-04/27\n03/11-04/29\n05/11-06/22\n05/06-06/24\n07/06-08/10",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.7",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 375.572,
"r": 165.97212,
"b": 307.928
},
"text": "2:30PM - 3:30PM\n10AM - 11AM\n2:30PM - 3:30PM\n10AM - 11AM\n2:30PM - 3:30PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.8",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 179.999976,
"t": 375.572,
"r": 196.06812,
"b": 307.928
},
"text": "MON\nWED\nMON\nWED\nMON",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.9",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 215.999976,
"t": 375.572,
"r": 233.088096,
"b": 307.928
},
"text": "FREE\nFREE\nFREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.9.10",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 251.999976,
"t": 375.572,
"r": 291.756096,
"b": 307.928
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.10",
"order": 20,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 290.16,
"r": 295.68,
"b": 275.52
},
"text": "CROCHET & JEWELRY MAKING (SPANISH)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.11",
"order": 21,
"type": "text",
"bbox": {
"l": 33.12,
"t": 275.04,
"r": 300,
"b": 214.56
},
"text": "Unleash your creativity with our combined crochet and jewelry making class! Learn the basics of crochet, create beautiful accessories, and craft unique jewelry pieces. Perfect for beginners and crafters looking to expand their skills. All content for this class will be in Spanish."
},
{
"id": "p29.12",
"order": 22,
"type": "table",
"bbox": {
"l": 33.84,
"t": 213.84,
"r": 294.48,
"b": 156.48
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.12.1",
"order": 23,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 212.37199999999996,
"r": 152.556061,
"b": 202.32799999999997
},
"text": "VILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true
}
},
{
"id": "p29.12.2",
"order": 24,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 197.97199999999998,
"r": 84.408,
"b": 159.12800000000004
},
"text": "03/10-04/30\n05/05-05/25\n07/07-07/13",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.12.3",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 107.99976,
"t": 197.97199999999998,
"r": 148.75224,
"b": 159.12800000000004
},
"text": "9AM - 11AM\n9AM - 11AM\n9AM - 11AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.12.4",
"order": 26,
"type": "table_cell",
"bbox": {
"l": 179.99976,
"t": 197.97199999999998,
"r": 196.176282,
"b": 159.12800000000004
},
"text": "T, TH\nT, TH\nT, TH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.12.5",
"order": 27,
"type": "table_cell",
"bbox": {
"l": 215.999682,
"t": 197.97199999999998,
"r": 233.088162,
"b": 159.12800000000004
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.12.6",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 251.999802,
"t": 197.97199999999998,
"r": 291.756282,
"b": 159.12800000000004
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.13",
"order": 29,
"type": "figure",
"bbox": {
"l": 35.2201,
"t": 131.8451,
"r": 321.7801,
"b": 40.7651
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p29.14",
"order": 30,
"type": "text",
"bbox": {
"l": 36,
"t": 125.52,
"r": 247.68,
"b": 60.96
},
"text": "REGISTER ONLINE!\nVISIT CITY OF PASADENA.NET / RESERVE"
},
{
"id": "p29.15",
"order": 31,
"type": "figure",
"bbox": {
"l": 245.28,
"t": 125.04,
"r": 286.08,
"b": 84.72
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p29.16",
"order": 32,
"type": "text",
"bbox": {
"l": 33.12,
"t": 62.4,
"r": 307.68,
"b": 52.08
},
"text": "○ ○ ○"
},
{
"id": "p29.17",
"order": 33,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 756.72,
"r": 535.68,
"b": 742.08
},
"text": "TECH TALK - MOBILE PHONE CLASS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.18",
"order": 34,
"type": "table",
"bbox": {
"l": 309.36,
"t": 729.84,
"r": 569.76,
"b": 612.72
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 3,
"n_cols": 5,
"integrity": {
"cells_checked": 11,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.18.1",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 726.512,
"r": 428.556067,
"b": 716.468
},
"text": "VILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true
}
},
{
"id": "p29.18.2",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 712.112,
"r": 442.391866,
"b": 658.8679999999999
},
"text": "03/12-04/30\n05/07-06/25\n07/09-08/13\nJACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.3",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 384,
"t": 712.112,
"r": 445.60812,
"b": 673.268
},
"text": "10:30AM-11:30AM\n10:30AM-11:30AM\n10:30AM-11:30AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.4",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 456.000024,
"t": 712.112,
"r": 469.572144,
"b": 673.268
},
"text": "THU\nTHU\nTHU",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.5",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 492.000024,
"t": 712.112,
"r": 509.088264,
"b": 673.268
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.6",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 528.000024,
"t": 712.112,
"r": 567.756264,
"b": 673.268
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.7",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 654.512,
"r": 360.756,
"b": 615.668
},
"text": "03/09-04/27\n05/04-06/27\n07/06-08/10",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.8",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 384,
"t": 654.512,
"r": 420.75612,
"b": 615.668
},
"text": "2PM - 3PM\n2PM - 3PM\n2PM - 3PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.9",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 456,
"t": 654.512,
"r": 471.32412,
"b": 615.668
},
"text": "MON\nMON\nMON",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.10",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 492,
"t": 654.512,
"r": 509.08812,
"b": 615.668
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.18.11",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 528,
"t": 654.512,
"r": 567.75612,
"b": 615.668
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.19",
"order": 46,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 599.04,
"r": 430.32,
"b": 585.36
},
"text": "COMPUTER CLASS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.20",
"order": 47,
"type": "table",
"bbox": {
"l": 309.12,
"t": 586.32,
"r": 569.76,
"b": 501.12
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.20.1",
"order": 48,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 583.91,
"r": 567.106982,
"b": 547.268
},
"text": "Lean all the basics on how to use a computer, including navigating the internet and sending emails.\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.20.2",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 542.912,
"r": 360.456,
"b": 504.068
},
"text": "03/10-04/28\n05/05-06/23\n07/07-08/11",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.20.3",
"order": 50,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 542.912,
"r": 435.31212,
"b": 504.068
},
"text": "10:30AM-12PM\n10:30AM-12PM\n10:30AM-12PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.20.4",
"order": 51,
"type": "table_cell",
"bbox": {
"l": 455.99976,
"t": 542.912,
"r": 469.092,
"b": 504.068
},
"text": "TUE\nTUE\nTUE",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.20.5",
"order": 52,
"type": "table_cell",
"bbox": {
"l": 491.99952,
"t": 542.912,
"r": 509.08776,
"b": 504.068
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.20.6",
"order": 53,
"type": "table_cell",
"bbox": {
"l": 527.99964,
"t": 542.912,
"r": 567.75588,
"b": 504.068
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.21",
"order": 54,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 486.48,
"r": 430.8,
"b": 472.32
},
"text": "ART EXPLORATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.22",
"order": 55,
"type": "table",
"bbox": {
"l": 308.88,
"t": 472.56,
"r": 569.76,
"b": 363.84
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 6,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.22.1",
"order": 56,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 471.11,
"r": 554.436792,
"b": 410.468
},
"text": "Have fun drawing and painting! Explore watercolor, collage, and a variety of other media by expressing yourself and creating individual artworks “to go!” This class is taught by the Armory Center for the Arts.\nJACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 6,
"bbox_refit": true,
"merged_continuation": true
},
"children": [
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 419.76,
"r": 440.64,
"b": 403.92
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Location subheading above the Art Exploration schedule rows is not covered by any item (#56 ends at 48 with description text, #57 starts at 49).",
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 6
},
"children": [],
"order": 57,
"id": "p29.22.1.1"
}
]
},
{
"id": "p29.22.2",
"order": 58,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 406.112,
"r": 360.756,
"b": 367.268
},
"text": "03/09-04/27\n05/04-06/22\n07/06-08/10",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.22.3",
"order": 59,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 406.112,
"r": 430.21212,
"b": 367.268
},
"text": "1:30PM - 3PM\n1:30PM - 3PM\n1:30PM - 3PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.22.4",
"order": 60,
"type": "table_cell",
"bbox": {
"l": 455.99976,
"t": 406.112,
"r": 471.324,
"b": 367.268
},
"text": "MON\nMON\nMON",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.22.5",
"order": 61,
"type": "table_cell",
"bbox": {
"l": 491.99952,
"t": 406.112,
"r": 509.08776,
"b": 367.268
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.22.6",
"order": 62,
"type": "table_cell",
"bbox": {
"l": 527.99952,
"t": 406.112,
"r": 567.75588,
"b": 367.268
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 2,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.23",
"order": 63,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 349.68,
"r": 414.24,
"b": 335.76
},
"text": "DANCE FITNESS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.24",
"order": 64,
"type": "table",
"bbox": {
"l": 309.84,
"t": 335.28,
"r": 572.88,
"b": 224.16
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.24.1",
"order": 65,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 334.31,
"r": 572.596695,
"b": 271.26800000000003
},
"text": "Dance your way to health! Move your body to the rhythm of music and improve your health with this low-impact dance fitness class customized specifically for older adults.\nJACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
},
"children": [
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 285.12,
"r": 440.64,
"b": 269.28
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Location subheading in Dance Fitness section appears uncovered between the description block and the schedule rows.",
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5
},
"children": [],
"order": 66,
"id": "p29.24.1.1"
}
]
},
{
"id": "p29.24.2",
"order": 67,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 266.91200000000003,
"r": 360.456,
"b": 228.06799999999998
},
"text": "03/12-04/30\n05/07-06/25\n07/16-08/13",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.24.3",
"order": 68,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 266.91200000000003,
"r": 422.96412,
"b": 228.06799999999998
},
"text": "12PM - 1PM\n12PM - 1PM\n12PM - 1PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.24.4",
"order": 69,
"type": "table_cell",
"bbox": {
"l": 455.99976,
"t": 266.91200000000003,
"r": 469.632,
"b": 228.06799999999998
},
"text": "THU\nTHU\nTHU",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.24.5",
"order": 70,
"type": "table_cell",
"bbox": {
"l": 491.99976,
"t": 266.91200000000003,
"r": 509.088,
"b": 228.06799999999998
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.24.6",
"order": 71,
"type": "table_cell",
"bbox": {
"l": 527.99988,
"t": 266.91200000000003,
"r": 567.75612,
"b": 228.06799999999998
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.25",
"order": 72,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 211.68,
"r": 463.44,
"b": 197.28
},
"text": "ESL/CONVERSATIONAL",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p29.26",
"order": 73,
"type": "table",
"bbox": {
"l": 308.88,
"t": 198,
"r": 570,
"b": 112.32
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p29.26.1",
"order": 74,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 196.30999999999995,
"r": 558.616774,
"b": 159.668
},
"text": "Learn English through conversation! All ESL levels are welcome.\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.26.2",
"order": 75,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 155.312,
"r": 360.456,
"b": 115.26800000000003
},
"text": "03/10-04/30\n05/05-06/25\n07/07-08/13",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.26.3",
"order": 76,
"type": "table_cell",
"bbox": {
"l": 383.99976,
"t": 155.312,
"r": 434.70012,
"b": 115.26800000000003
},
"text": "9 AM-10:30AM\n9 AM-10:30AM\n9 AM-10:30AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.26.4",
"order": 77,
"type": "table_cell",
"bbox": {
"l": 455.99976,
"t": 155.312,
"r": 472.176149,
"b": 115.26800000000003
},
"text": "T, TH\nT, TH\nT, TH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.26.5",
"order": 78,
"type": "table_cell",
"bbox": {
"l": 491.999549,
"t": 155.312,
"r": 509.087909,
"b": 115.26800000000003
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p29.26.6",
"order": 79,
"type": "table_cell",
"bbox": {
"l": 527.999669,
"t": 155.312,
"r": 567.756029,
"b": 115.26800000000003
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p29.27",
"order": 80,
"type": "footer",
"bbox": {
"l": 408.72,
"t": 19.68,
"r": 593.28,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 29",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 62,
"added": 2,
"retyped": 3
}
}
Page 30
47 item(s)
JSON
footer (2)
heading (8)
table (8)
table_cell (23)
text (6)
1 · HEADING
2 · TEXT
3 ·✨
4 · HEADING
5 · TEXT
6 ·✨
7 · HEADING
8 · TEXT
9 ·✨
10 · HEADING
11 · TEXT
12 ·✨
13 · HEADING
14 · TABLE
15
16
17
18
19
20
21
22
23
24
25
26 · HEADING
27 · TEXT
28 ·✨
29 · HEADING
30 · TEXT
31 ·✨
32 · HEADING
33 · TABLE
34
35
36
37
38
39
40
41
42
43
44
45
46 · FOOTER
47 · FOOTER
Table integrity:
1 of 12 cells don't match the text layer at their coordinates.
r0c0 (21%): “A dance fitness class that incorporates Latin and internati…”
AI review
(claude-opus-5, conf 76%)
— The page content is largely captured, but the Spanish Class and Zumba sections wrongly wrap the descriptive paragraph into table cells of their schedule tables, and elsewhere the schedule tables are nested inside the description text items instead of being siblings. Reading order and text fidelity are otherwise good.
major
wrong_type #15: The descriptive paragraph 'Join us on for an introduction to the Spanish language with two levels based on experience.' is captured as a table_cell inside the Spanish Class schedule table; it is body text, not tabular data.
major
wrong_type #57: The Zumba description paragraph ('A dance fitness class that incorporates Latin and international music...') is captured as a table_cell of the schedule table rather than as a separate text paragraph.
minor
nesting #3: Schedule tables (#3, #6, #9, #12, #51, #54) are nested inside the preceding description text items rather than being siblings; their bounding boxes also overlap the parent text boxes.
minor
table_structure #16: Venue/level header rows ('JACKIE ROBINSON COMMUNITY CENTER', 'LEVEL 1', 'LEVEL 2', 'VILLA PARKE COMMUNITY CENTER') are represented as single full-width cells mixed with 5-column data rows, giving an inconsistent grid.
Page 30 JSON
{
"document_id": 267,
"page": 30,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 47,
"counts_by_type": {
"footer": 2,
"heading": 8,
"table": 8,
"table_cell": 23,
"text": 6
},
"build_ms": 16,
"items": [
{
"id": "p30.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 756.48,
"r": 183.12,
"b": 742.08
},
"text": "CITIZENSHIP (SPANISH)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.84,
"t": 742.56,
"r": 295.44,
"b": 623.52
},
"text": "Prepare for your U.S. citizenship test with our specialized Spanish course. Learn key topics and practice interview questions to gain the confidence needed to pass the exam. Sign up today and take a step closer to becoming a U.S. citizen! All content for this class is in Spanish.\nVILLA PARKE COMMUNITY CENTER\n03/10-05/01 8AM-9AM T, TH FREE AGE: 50/UP\n05/05-06/26 8AM-9AM T, TH FREE AGE: 50/UP\n07/07-08/14 8AM-9AM T, TH FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 677.16,
"r": 299.88,
"b": 629.64
},
"text": "VILLA PARKE COMMUNITY CENTER\n03/10-05/01 8AM-9AM T, TH FREE AGE: 50/UP\n05/05-06/26 8AM-9AM T, TH FREE AGE: 50/UP\n07/07-08/14 8AM-9AM T, TH FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Schedule rows and venue line for Citizenship (Spanish) are not covered by any item box (#2 ends at 21% but only covers paragraph text; the tabular rows are sep…"
},
"children": [],
"order": 3,
"id": "p30.2.1"
}
]
},
{
"id": "p30.3",
"order": 4,
"type": "heading",
"bbox": {
"l": 33.12,
"t": 609.36,
"r": 238.8,
"b": 580.08
},
"text": "CHAIR YOGA FOR BALANCE AND STABILITY",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.4",
"order": 5,
"type": "text",
"bbox": {
"l": 33.84,
"t": 577.92,
"r": 294.72,
"b": 435.84
},
"text": "Discover balance, strength, and inner peace in our yoga class. Guided by an experienced instructor, you'll learn fundamental postures and relaxation techniques in a supportive environment. Participants use chairs, often with standing options available. This unique yoga class is shoes-on and does not include floor work, ensuring accessibility for everyone. Beginners are welcome!\nVILLA PARKE COMMUNITY CENTER\n03/09-05/01 10AM - 11AM M, F FREE AGE: 50/UP\n05/04-06/26 10AM - 11AM M, F FREE AGE: 50/UP\n07/06-08/14 10AM - 11AM M, F FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 487.08,
"r": 299.88,
"b": 431.64
},
"text": "VILLA PARKE COMMUNITY CENTER\n03/09-05/01 10AM - 11AM M, F FREE AGE: 50/UP\n05/04-06/26 10AM - 11AM M, F FREE AGE: 50/UP\n07/06-08/14 10AM - 11AM M, F FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Chair Yoga schedule table rows are not represented as table/cells."
},
"children": [],
"order": 6,
"id": "p30.4.1"
}
]
},
{
"id": "p30.5",
"order": 7,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 421.92,
"r": 129.12,
"b": 407.28
},
"text": "LINE DANCING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.6",
"order": 8,
"type": "text",
"bbox": {
"l": 33.6,
"t": 408.24,
"r": 299.76,
"b": 274.8
},
"text": "Come out and line dance! Line dance is a choreographed dance with a repeated sequence of steps with dancers in one or more lines or rows. The fund unique movements will keep your heart healthy, improve your balance and stimulate your mind. Learn it all at your own pace while you make new friends! JACKIE ROBINSON COMMUNITY CENTER\n03/09-04/27 12:30PM - 1:30PM MON FREE AGE: 50/UP\n05/04-06/22 12:30PM - 1:30PM MON FREE AGE: 50/UP\n07/06-08/10 12:30PM - 1:30PM MON FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 324.72,
"r": 299.88,
"b": 269.28
},
"text": "JACKIE ROBINSON COMMUNITY CENTER\n03/09-04/27 12:30PM - 1:30PM MON FREE AGE: 50/UP\n05/04-06/22 12:30PM - 1:30PM MON FREE AGE: 50/UP\n07/06-08/10 12:30PM - 1:30PM MON FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Line Dancing schedule rows are not covered by a table item."
},
"children": [],
"order": 9,
"id": "p30.6.1"
}
]
},
{
"id": "p30.7",
"order": 10,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 261.84,
"r": 190.56,
"b": 247.68
},
"text": "NATURE WALKING CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.8",
"order": 11,
"type": "text",
"bbox": {
"l": 33.84,
"t": 247.44,
"r": 296.16,
"b": 140.16
},
"text": "Join us for a weekly walk at different sites around Pasadena! Bring water, comfortable shoes, and weather-appropriate clothing. Transportation departs from Villa Parke Community Center.\nVILLA PARKE COMMUNITY CENTER\n03/13-05/01 9AM-11:30AM FRI FREE AGE: 50/UP\n05/08-06/26 9AM-11:30AM FRI FREE AGE: 50/UP\n07/10-08/14 9AM-11:30AM FRI FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 30.6,
"t": 178.2,
"r": 299.88,
"b": 122.76
},
"text": "VILLA PARKE COMMUNITY CENTER\n03/13-05/01 9AM-11:30AM FRI FREE AGE: 50/UP\n05/08-06/26 9AM-11:30AM FRI FREE AGE: 50/UP\n07/10-08/14 9AM-11:30AM FRI FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Nature Walking Club schedule rows extend below item #8 (ends at 82%) and are uncovered."
},
"children": [],
"order": 12,
"id": "p30.8.1"
}
]
},
{
"id": "p30.9",
"order": 13,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 756.48,
"r": 414,
"b": 742.32
},
"text": "SPANISH CLASS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.10",
"order": 14,
"type": "table",
"bbox": {
"l": 309.36,
"t": 743.04,
"r": 570,
"b": 587.04
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 3,
"n_cols": 5,
"integrity": {
"cells_checked": 11,
"cells_flagged": 0
}
},
"children": [
{
"id": "p30.10.1",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 741.11,
"r": 567.42982,
"b": 690.068
},
"text": "Join us on for an introduction to the Spanish language with two levels based on experience.\nJACKIE ROBINSON COMMUNITY CENTER\nLEVEL 1",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.2",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 685.712,
"r": 360.456,
"b": 632.468
},
"text": "03/10-04/28\n05/05-06/23\n07/07-08/11\nLEVEL 2",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.3",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 685.712,
"r": 434.72412,
"b": 646.8679999999999
},
"text": "12:30PM - 2PM\n12:30PM - 2PM\n12:30PM - 2PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.4",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 455.99964,
"t": 685.712,
"r": 469.15188,
"b": 646.8679999999999
},
"text": "TUE\nTUE\nTUE",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.5",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 491.99964,
"t": 685.712,
"r": 509.08788,
"b": 646.8679999999999
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.6",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 527.99976,
"t": 685.712,
"r": 567.756,
"b": 646.8679999999999
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.7",
"order": 21,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 628.112,
"r": 360.456,
"b": 589.268
},
"text": "03/10-04/28\n05/05-06/23\n07/07-08/11",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.8",
"order": 22,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 628.112,
"r": 420.75612,
"b": 589.268
},
"text": "2PM - 3PM\n2PM - 3PM\n2PM - 3PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.9",
"order": 23,
"type": "table_cell",
"bbox": {
"l": 456,
"t": 628.112,
"r": 469.632,
"b": 589.268
},
"text": "THU\nTUE\nTUE",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.10",
"order": 24,
"type": "table_cell",
"bbox": {
"l": 492,
"t": 628.112,
"r": 509.08824,
"b": 589.268
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.10.11",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 528.00012,
"t": 628.112,
"r": 567.75636,
"b": 589.268
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p30.11",
"order": 26,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 572.64,
"r": 418.56,
"b": 558.72
},
"text": "BID WHIST CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.12",
"order": 27,
"type": "text",
"bbox": {
"l": 309.36,
"t": 557.76,
"r": 576.48,
"b": 443.28
},
"text": "Join us for the Bid Whist Card Club every Thursday and Friday! It is a popular, fast-paced, partnership trick-taking card game for four players (two teams). Enjoy the lively games, friendly competition, and great company. Whether you're a seasoned player or just curious, this is a welcoming space to engage with others and strengthen our community—one hand at a time! JACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 1PM - 4PM TH,F FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 463.32,
"r": 575.28,
"b": 431.64
},
"text": "JACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 1PM – 4PM TH,F FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Bid Whist Club venue and schedule row are not covered by a table item."
},
"children": [],
"order": 28,
"id": "p30.12.1"
}
]
},
{
"id": "p30.13",
"order": 29,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 430.08,
"r": 399.36,
"b": 416.16
},
"text": "BRIDGE CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.14",
"order": 30,
"type": "text",
"bbox": {
"l": 309.12,
"t": 415.68,
"r": 575.28,
"b": 283.68
},
"text": "Join us on Mondays for the self-instructed bridge club. Fifty-two (52) cards, one enjoyable game. Participants return to the table repeatedly for the mental challenge, competition, and fantastic company of those who share their love for the most fabulous card game. Participants of all experience levels are welcomed.\nJACKIE ROBINSON COMMUNITY CENTER\n03/09-04/27 10AM - 4PM MON FREE AGE: 50/UP\n05/04-06/22 10AM - 4PM MON FREE AGE: 50/UP\n07/06-08/10 10AM - 4PM MON FREE AGE: 50/UP",
"children": [
{
"type": "table",
"bbox": {
"l": 312.12,
"t": 332.64,
"r": 575.28,
"b": 273.24
},
"text": "JACKIE ROBINSON COMMUNITY CENTER\n03/09-04/27 10AM - 4PM MON FREE AGE: 50/UP\n05/04-06/22 10AM - 4PM MON FREE AGE: 50/UP\n07/06-08/10 10AM - 4PM MON FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Bridge Club schedule rows are not covered by any table item."
},
"children": [],
"order": 31,
"id": "p30.14.1"
}
]
},
{
"id": "p30.15",
"order": 32,
"type": "heading",
"bbox": {
"l": 308.88,
"t": 269.52,
"r": 360.96,
"b": 255.12
},
"text": "ZUMBA",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p30.16",
"order": 33,
"type": "table",
"bbox": {
"l": 309.36,
"t": 254.64,
"r": 571.2,
"b": 58.8
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 4,
"n_cols": 5,
"integrity": {
"cells_checked": 12,
"cells_flagged": 1,
"flags": [
{
"row": 0,
"col": 0,
"coverage": 0.21,
"text": "A dance fitness class that incorporates Latin and internati…"
}
]
}
},
"children": [
{
"id": "p30.16.1",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 309.36,
"t": 254.64,
"r": 571.2,
"b": 238.32
},
"text": "A dance fitness class that incorporates Latin and international music and dance moves — creating a fun, effective fitness program. These dance moves give you a total-body workout, combining all elements of fitness - cardio, muscle conditioning, balance and flexibility.",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5
}
},
{
"id": "p30.16.2",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 193.712,
"r": 442.391866,
"b": 183.668
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true
}
},
{
"id": "p30.16.3",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 181.712,
"r": 428.579897,
"b": 135.668
},
"text": "03/12-04/30\n05/07-06/25\n07/09-08/13\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.4",
"order": 37,
"type": "table_cell",
"bbox": {
"l": 384,
"t": 181.712,
"r": 419.24412,
"b": 147.668
},
"text": "12PM-1PM\n12PM-1PM\n12PM-1PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.5",
"order": 38,
"type": "table_cell",
"bbox": {
"l": 456.00012,
"t": 181.712,
"r": 472.06824,
"b": 147.668
},
"text": "WED\nWED\nWED",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.6",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 492,
"t": 181.712,
"r": 509.08812,
"b": 147.668
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.7",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 528,
"t": 181.712,
"r": 567.75612,
"b": 147.668
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.8",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 133.712,
"r": 360.804,
"b": 61.26800000000003
},
"text": "03/11-04/29\n03/12-05/30\n05/06-06/24\n05/07-06/25\n07/08-08/12\n07/09-08/13",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.9",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 383.99988,
"t": 133.712,
"r": 425.95212,
"b": 61.26800000000003
},
"text": "9AM-10AM\n9AM - 10AM\n9AM-10AM\n9 AM-10 AM\n9AM-10AM\n9 AM-10 AM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.10",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 455.99964,
"t": 133.712,
"r": 478.644,
"b": 61.26800000000003
},
"text": "WED\nTHURS\nWED\nTHURS\nWED\nTHURS",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.11",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 491.99952,
"t": 133.712,
"r": 509.088084,
"b": 61.26800000000003
},
"text": "FREE\nFREE\nFREE\nFREE\nFREE\nFREE",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p30.16.12",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 527.99952,
"t": 133.712,
"r": 567.756084,
"b": 61.26800000000003
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 3,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p30.17",
"order": 46,
"type": "footer",
"bbox": {
"l": 39.12,
"t": 19.68,
"r": 218.88,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p30.18",
"order": 47,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 18.72,
"r": 45.6,
"b": 8.16
},
"text": "30",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 62,
"added": 6,
"retyped": 0
}
}
Page 31
69 item(s)
JSON
footer (1)
heading (9)
table (3)
table_cell (48)
text (8)
1 · HEADING
2 · TEXT
3 · HEADING
4 · TABLE
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 · HEADING
37 · TEXT
38 · HEADING
39 · TEXT
40 · HEADING
41 · TABLE
42
43
44
45
46
47
48 · TABLE
49
50
51
52
53
54
55
56
57
58
59
60 · HEADING
61 · TEXT
62 · HEADING
63 · TEXT
64 · HEADING
65 · TEXT
66 · TEXT ·✨
67 · HEADING
68 · TEXT
69 · FOOTER
Table integrity:
1 of 31 cells don't match the text layer at their coordinates.
r5c1 (50%): “11AM - 12PM”
AI review
(claude-opus-5, conf 78%)
— Most text blocks are captured, but several schedule lines are missing entirely (Mexican Train Domino Club, Dominos/Cards, Coffee Connect, Speaker Series, Older Adults Soccer, Folklorico schedules), the "Please note" paragraph is absent, and the reading order places the left-column SEWING section after the entire right column.
major
missing_item #2: The Mexican Train Domino Club schedule lines are missing: 'JACKIE ROBINSON COMMUNITY CENTER' and 'YEAR ROUND 11AM - 1PM THU FREE AGE: 50/UP' (unless they are truncated into #2, they do not appear as items).
major
missing_item #50: The Dominos, Chess, and Cards Club schedule row 'JACKIE ROBINSON COMMUNITY CENTER / YEAR-ROUND 10AM-4PM M,W,F FREE AGE: 50/UP' is not captured as separate items.
major
missing_item #52: The Coffee Connect schedule 'JACKIE ROBINSON COMMUNITY CENTER / YEAR-ROUND 9AM-11AM FRI FREE AGE: 50/UP' is not captured.
major
missing_item #87: Power Up Your Life! Speaker Series schedule lines missing: 'VILLA PARKE COMMUNITY CENTER', '03/10-04/21 11:30AM - 12:30PM TUE FREE AGE: 50/UP', '05/05-06-09 11:30AM - 12:30PM TUE FREE AGE: 50/UP'.
major
missing_item #89: Older Adults Soccer schedule lines missing: 'VILLA PARKE COMMUNITY CENTER', '03/11-04/29 9AM-11AM M,W FREE AGE: 50/UP', '05/06-06/24 9AM –11AM M,W FREE AGE:50/UP', '07/08-08/12 9AM – 11AM M,W FREE AGE: 50/UP'.
major
missing_item #91: Folklorico Dance: the 'Please note: Additional costs for dresses may apply, details provided during the class.' paragraph and the schedule ('VILLA PARKE COMMUNITY CENTER', '03/12-04/30 5:30 – 7:30 PM THU FREE AGE: 50/UP', '05/07-06/25 5:30 – 7:30 PM THU FREE AGE: 50/UP') are missing.
major
reading_order #92: SEWING heading and its paragraph (#92-#93) belong at the bottom of the LEFT column and should come before the right-column items (#72 onward); they are placed last instead.
minor
table_structure #4: The Tai Chi table incorrectly absorbs the descriptive paragraph ('Chinese QiGong and Tai Chi health exercises...') as cell #5; it is body text, not a table cell. Same issue in table #54 with cell #55.
Page 31 JSON
{
"document_id": 267,
"page": 31,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 69,
"counts_by_type": {
"footer": 1,
"heading": 9,
"table": 3,
"table_cell": 48,
"text": 8
},
"build_ms": 17,
"items": [
{
"id": "p31.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 756.48,
"r": 233.04,
"b": 742.08
},
"text": "MEXICAN TRAIN DOMINO CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.2",
"order": 2,
"type": "text",
"bbox": {
"l": 33.36,
"t": 741.84,
"r": 299.76,
"b": 651.36
},
"text": "Open to all skill levels, from beginners to seasoned pros! Gather with friends and neighbors to share laughs and strategy as we play this beloved classic game. Don't miss out on the chance to experience endless fun and make new connections in our community.\nJACKIE ROBINSON COMMUNITY CENTER\nYEAR ROUND 11AM - 1PM THU FREE AGE: 50/UP"
},
{
"id": "p31.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 641.04,
"r": 84,
"b": 627.12
},
"text": "TAI CHI",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.4",
"order": 4,
"type": "table",
"bbox": {
"l": 34.32,
"t": 626.4,
"r": 295.44,
"b": 444.96
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 7,
"n_cols": 5,
"integrity": {
"cells_checked": 31,
"cells_flagged": 1,
"flags": [
{
"row": 5,
"col": 1,
"coverage": 0.5,
"text": "11AM - 12PM"
}
]
}
},
"children": [
{
"id": "p31.4.1",
"order": 5,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 625.91,
"r": 279.166812,
"b": 567.668
},
"text": "Chinese QiGong and Tai Chi health exercises suitable for older adults who want non-strenuous exercise to improve or maintain good health, physical balance, flexibility, memory and mental focus.\nJACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.2",
"order": 6,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 565.712,
"r": 157.44122,
"b": 543.668
},
"text": "02/19-06/11\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.3",
"order": 7,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 565.712,
"r": 163.40388,
"b": 555.668
},
"text": "9AM - 10:15AM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.4",
"order": 8,
"type": "table_cell",
"bbox": {
"l": 186.12,
"t": 565.712,
"r": 200.112,
"b": 555.668
},
"text": "THU",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.5",
"order": 9,
"type": "table_cell",
"bbox": {
"l": 215.999964,
"t": 565.712,
"r": 233.627964,
"b": 555.668
},
"text": "FREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.6",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 251.999964,
"t": 565.712,
"r": 293.375964,
"b": 555.668
},
"text": "AGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.7",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 541.712,
"r": 87.888,
"b": 507.668
},
"text": "03/09/04/27\n03/11-04/29\n05/04-06/22",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.8",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 541.712,
"r": 175.29624,
"b": 507.668
},
"text": "11:30AM - 12:30PM\n11AM - 12PM\n11:30AM - 12:30PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.9",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 186.119862,
"t": 541.712,
"r": 202.548,
"b": 507.668
},
"text": "MON\nWED\nMON",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.10",
"order": 14,
"type": "table_cell",
"bbox": {
"l": 216.000036,
"t": 541.712,
"r": 233.628402,
"b": 507.668
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.11",
"order": 15,
"type": "table_cell",
"bbox": {
"l": 251.999796,
"t": 541.712,
"r": 293.376402,
"b": 507.668
},
"text": "AGE: 50/UP\nAGE: 50/UP\nAGE: 50/UP",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.12",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 505.712,
"r": 86.604,
"b": 495.668
},
"text": "05/06-06/24",
"attrs": {
"row": 3,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.13",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 108.00012,
"t": 481.712,
"r": 153.02412,
"b": 471.668
},
"text": "11AM - 12PM",
"attrs": {
"row": 3,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.14",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 186.12,
"t": 505.712,
"r": 202.548,
"b": 495.668
},
"text": "WED",
"attrs": {
"row": 3,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.15",
"order": 19,
"type": "table_cell",
"bbox": {
"l": 216.000036,
"t": 505.712,
"r": 233.628036,
"b": 495.668
},
"text": "FREE",
"attrs": {
"row": 3,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.16",
"order": 20,
"type": "table_cell",
"bbox": {
"l": 252.000036,
"t": 505.712,
"r": 293.376036,
"b": 495.668
},
"text": "AGE: 50/UP",
"attrs": {
"row": 3,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.17",
"order": 21,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 493.712,
"r": 85.26,
"b": 483.668
},
"text": "07/06-08/10",
"attrs": {
"row": 4,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.18",
"order": 22,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 493.712,
"r": 175.29588,
"b": 483.668
},
"text": "11:30AM - 12:30PM",
"attrs": {
"row": 4,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.19",
"order": 23,
"type": "table_cell",
"bbox": {
"l": 186.119862,
"t": 493.712,
"r": 201.803862,
"b": 483.668
},
"text": "MON",
"attrs": {
"row": 4,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.20",
"order": 24,
"type": "table_cell",
"bbox": {
"l": 216.000042,
"t": 493.712,
"r": 233.628042,
"b": 483.668
},
"text": "FREE",
"attrs": {
"row": 4,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.21",
"order": 25,
"type": "table_cell",
"bbox": {
"l": 252.000042,
"t": 493.712,
"r": 293.376042,
"b": 483.668
},
"text": "AGE: 50/UP",
"attrs": {
"row": 4,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.22",
"order": 26,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 481.712,
"r": 105.097,
"b": 459.668
},
"text": "07/08-08/12\nWASHINGTON PARK",
"attrs": {
"row": 5,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.4.23",
"order": 27,
"type": "table_cell",
"bbox": {
"l": 86.544,
"t": 490.32,
"r": 138.768,
"b": 475.2
},
"text": "11AM - 12PM",
"attrs": {
"row": 5,
"col": 1,
"rowspan": 1,
"colspan": 1
}
},
{
"id": "p31.4.24",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 186.12,
"t": 481.712,
"r": 202.548,
"b": 471.668
},
"text": "WED",
"attrs": {
"row": 5,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.25",
"order": 29,
"type": "table_cell",
"bbox": {
"l": 216.000036,
"t": 481.712,
"r": 233.628036,
"b": 471.668
},
"text": "FREE",
"attrs": {
"row": 5,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.26",
"order": 30,
"type": "table_cell",
"bbox": {
"l": 252.000036,
"t": 481.712,
"r": 293.376036,
"b": 471.668
},
"text": "AGE: 50/UP",
"attrs": {
"row": 5,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.27",
"order": 31,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 457.712,
"r": 86.592,
"b": 447.668
},
"text": "02/24-06/09",
"attrs": {
"row": 6,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.28",
"order": 32,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 457.712,
"r": 152.91588,
"b": 447.668
},
"text": "9 - 10:35AM",
"attrs": {
"row": 6,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.29",
"order": 33,
"type": "table_cell",
"bbox": {
"l": 186.12,
"t": 457.712,
"r": 199.632,
"b": 447.668
},
"text": "TUE",
"attrs": {
"row": 6,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.30",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 216,
"t": 457.712,
"r": 233.628,
"b": 447.668
},
"text": "FREE",
"attrs": {
"row": 6,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.4.31",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 252,
"t": 457.712,
"r": 291.336,
"b": 447.668
},
"text": "AGE:50/UP",
"attrs": {
"row": 6,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p31.5",
"order": 36,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 426.96,
"r": 265.44,
"b": 412.08
},
"text": "DOMINOS, CHESS, AND CARDS CLUB",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.6",
"order": 37,
"type": "text",
"bbox": {
"l": 34.32,
"t": 411.84,
"r": 293.28,
"b": 357.6
},
"text": "Dominoes, Chess, and Cards Club meets weekdays to play recreational games and socialize.\nJACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 10AM-4PM M,W,F FREE AGE: 50/UP"
},
{
"id": "p31.7",
"order": 38,
"type": "heading",
"bbox": {
"l": 34.8,
"t": 353.52,
"r": 154.8,
"b": 339.6
},
"text": "COFFEE CONNECT",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.8",
"order": 39,
"type": "text",
"bbox": {
"l": 33.6,
"t": 339.12,
"r": 294.96,
"b": 271.44
},
"text": "There is no better way to start your Friday mornings than with a delicious cup of coffee, bingo games, good conversations, and meeting with friends.\nJACKIE ROBINSON COMMUNITY CENTER\nYEAR-ROUND 9AM-11AM FRI FREE AGE: 50/UP"
},
{
"id": "p31.9",
"order": 40,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 258.72,
"r": 167.28,
"b": 244.56
},
"text": "LOTERIA Y CAFECITO",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.10",
"order": 41,
"type": "table",
"bbox": {
"l": 32.88,
"t": 246.24,
"r": 298.08,
"b": 143.76
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 5,
"integrity": {
"cells_checked": 6,
"cells_flagged": 0
}
},
"children": [
{
"id": "p31.10.1",
"order": 42,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 245.89,
"r": 284.539605,
"b": 190.56799999999998
},
"text": "Join us for Lotería every Thursday! This beloved game of chance is accompanied by laughter, friendly competition, and new friendships! Come play!\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.10.2",
"order": 43,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 186.212,
"r": 84.456,
"b": 147.36800000000005
},
"text": "03/12-4/30\n05/07-06/25\n07/09-08/13",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.10.3",
"order": 44,
"type": "table_cell",
"bbox": {
"l": 107.99988,
"t": 186.212,
"r": 153.084,
"b": 147.36800000000005
},
"text": "11AM – 12PM\n11AM – 12PM\n11AM – 12PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.10.4",
"order": 45,
"type": "table_cell",
"bbox": {
"l": 179.99976,
"t": 186.212,
"r": 189.11988,
"b": 147.36800000000005
},
"text": "TH\nTH\nTH",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.10.5",
"order": 46,
"type": "table_cell",
"bbox": {
"l": 215.99964,
"t": 186.212,
"r": 233.08776,
"b": 147.36800000000005
},
"text": "FREE\nFREE\nFREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.10.6",
"order": 47,
"type": "table_cell",
"bbox": {
"l": 251.99964,
"t": 186.212,
"r": 296.19576,
"b": 147.36800000000005
},
"text": "AGES: 50/UP\nAGES: 50/UP\nAGES: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p31.11",
"order": 48,
"type": "table",
"bbox": {
"l": 309.36,
"t": 756.67,
"r": 571.2,
"b": 679.2
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 3,
"n_cols": 5,
"integrity": {
"cells_checked": 11,
"cells_flagged": 0
}
},
"children": [
{
"id": "p31.11.1",
"order": 49,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 756.67,
"r": 442.391866,
"b": 725.348
},
"text": "3036.\nJACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 5,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.11.2",
"order": 50,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 720.992,
"r": 428.579897,
"b": 696.548
},
"text": "02/24-06/09\nVILLA PARKE COMMUNITY CENTER",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p31.11.3",
"order": 51,
"type": "table_cell",
"bbox": {
"l": 384,
"t": 720.992,
"r": 421.32,
"b": 710.948
},
"text": "9AM-12PM",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.4",
"order": 52,
"type": "table_cell",
"bbox": {
"l": 455.99988,
"t": 720.992,
"r": 469.15188,
"b": 710.948
},
"text": "TUE",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.5",
"order": 53,
"type": "table_cell",
"bbox": {
"l": 491.99976,
"t": 720.992,
"r": 509.08776,
"b": 710.948
},
"text": "FREE",
"attrs": {
"row": 1,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.6",
"order": 54,
"type": "table_cell",
"bbox": {
"l": 527.99976,
"t": 720.992,
"r": 567.75576,
"b": 710.948
},
"text": "AGE: 50/UP",
"attrs": {
"row": 1,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.7",
"order": 55,
"type": "table_cell",
"bbox": {
"l": 312,
"t": 692.192,
"r": 358.248,
"b": 682.148
},
"text": "02/18-06/10",
"attrs": {
"row": 2,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.8",
"order": 56,
"type": "table_cell",
"bbox": {
"l": 383.99976,
"t": 692.192,
"r": 430.76376,
"b": 682.148
},
"text": "9AM-12:10PM",
"attrs": {
"row": 2,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.9",
"order": 57,
"type": "table_cell",
"bbox": {
"l": 455.99952,
"t": 692.192,
"r": 472.06752,
"b": 682.148
},
"text": "WED",
"attrs": {
"row": 2,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.10",
"order": 58,
"type": "table_cell",
"bbox": {
"l": 491.9994,
"t": 692.192,
"r": 509.0874,
"b": 682.148
},
"text": "FREE",
"attrs": {
"row": 2,
"col": 3,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
},
{
"id": "p31.11.11",
"order": 59,
"type": "table_cell",
"bbox": {
"l": 527.9994,
"t": 692.192,
"r": 567.7554,
"b": 682.148
},
"text": "AGE: 50/UP",
"attrs": {
"row": 2,
"col": 4,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true
}
}
]
},
{
"id": "p31.12",
"order": 60,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 665.52,
"r": 562.56,
"b": 651.36
},
"text": "POWER UP YOUR LIFE! SPEAKER SERIES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.13",
"order": 61,
"type": "text",
"bbox": {
"l": 308.88,
"t": 653.04,
"r": 576.72,
"b": 576.96
},
"text": "This series will dive into health, nutrition, and well-being. Get practical tips and strategies you can use every day!\nVILLA PARKE COMMUNITY CENTER\n03/10-04/21 11:30AM - 12:30PM TUE FREE AGE: 50/UP\n05/05-06-09 11:30AM - 12:30PM TUE FREE AGE: 50/UP"
},
{
"id": "p31.14",
"order": 62,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 563.76,
"r": 464.88,
"b": 549.36
},
"text": "OLDER ADULTS SOCCER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.15",
"order": 63,
"type": "text",
"bbox": {
"l": 309.84,
"t": 550.08,
"r": 574.56,
"b": 403.92
},
"text": "Join our soccer program designed for those who already know the game! Enjoy friendly, low impact matches that keep you active while building camaraderie and connection. With modified rules, this version offers a relaxed yet competitive environment for seasoned players to stay engaged and have fun. Bring your skills, meet fellow enthusiasts!\nVILLA PARKE COMMUNITY CENTER\n03/11-04/29 9AM-11AM M,W FREE AGE: 50/UP\n05/06-06/24 9AM-11AM M,W FREE AGE:50/UP\n07/08-08/12 9AM-11AM M,W FREE AGE: 50/UP"
},
{
"id": "p31.16",
"order": 64,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 387.6,
"r": 443.04,
"b": 373.44
},
"text": "FOLKLORICO DANCE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.17",
"order": 65,
"type": "text",
"bbox": {
"l": 309.84,
"t": 373.2,
"r": 569.76,
"b": 225.36
},
"text": "Dive into the vibrant world of Folklorico, where dance, tradition, and artistry come together! Learn about the diverse styles across Mexico, the stunning outfits, and the cultural significance behind each movement. Don't just watch—step into the rhythm, feel the energy, and be part of this unforgettable experience!\nPlease note: Additional costs for dresses may apply, details provided during the class.\nVILLA PARKE COMMUNITY CENTER\n03/12-04/30 5:30 - 7:30 PM THU FREE AGE: 50/UP\n05/07-06/25 5:30 - 7:30 PM THU FREE AGE: 50/UP"
},
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 221.76,
"r": 575.28,
"b": 142.56
},
"text": "Please note: Additional costs for dresses may apply, details provided during the class.\nVILLA PARKE COMMUNITY CENTER\n03/12-04/30 5:30 – 7:30 PM THU FREE AGE: 50/UP\n05/07-06/25 5:30 – 7:30 PM THU FREE AGE: 50/UP",
"attrs": {
"source": "ai_vision",
"reason": "Note text and schedule rows for Folklorico Dance not covered by any item."
},
"children": [],
"order": 66,
"id": "p31.18"
},
{
"id": "p31.19",
"order": 67,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 130.8,
"r": 90.72,
"b": 116.64
},
"text": "SEWING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p31.20",
"order": 68,
"type": "text",
"bbox": {
"l": 33.6,
"t": 116.4,
"r": 289.2,
"b": 90.24
},
"text": "Provided by Pasadena City College. Register online at pasadena.edu/noncredit/index.php or call (626) 585-"
},
{
"id": "p31.21",
"order": 69,
"type": "footer",
"bbox": {
"l": 409.2,
"t": 19.68,
"r": 593.28,
"b": 7.92
},
"text": "Spring/Summer I 2026 Recreation Guide 31",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 1,
"retyped": 0
}
}
Page 32
20 item(s)
JSON
figure (3)
footer (1)
heading (4)
text (12)
1 · TEXT
2 · HEADING
3 · TEXT
4 · FIGURE
5 · FIGURE
6 ·✨
7 · HEADING
8 · TEXT
9 · HEADING
10 · TEXT ·✨
11 · TEXT
12 · TEXT
13 · TEXT
14 · FIGURE
15 · TEXT
16 · TEXT
17 · TEXT
18 · TEXT
19 · TEXT
20 · FOOTER
AI review
(claude-opus-5, conf 82%)
— The narrative paragraphs and the ad panel are captured, but several blocks of schedule lines (the Strength Training and Karaoke class listings with their facility headings) are entirely missing, and the reading order interleaves the right-column figures into the left column.
major
missing_item #3: Missing the Strength Training schedule block after #3: 'VILLA PARKE COMMUNITY CENTER', the three date rows (03/10-04/30, 05/05-06/25, 07/07-08/13 10:30AM – 11:30AM T, TH FREE AGE: 50/UP), 'VICTORY PARK RECREATION CENTER', and two rows (03/10-04/28, 05/05-06/23 1PM – 2PM T FREE AGE: 50/UP).
major
missing_item #7: Missing the Karaoke schedule block after #7: 'VILLA PARKE COMMUNITY CENTER' heading and three rows (03/06-05/01, 05/08-06/26, 07/10-08/14 11:30AM – 12:30PM FRI FREE AGE: 50/UP).
minor
reading_order #4: The right-column figures #4 and #5 are inserted in the middle of the left-column text flow (before headings #6–#11), breaking column-by-column reading order; the JACKIE ROBINSON panel content (#12–#19) also comes after left-column content while its container figure #5 precedes it.
minor
wrong_type #9: 'VILLA PARKE COMMUNITY CENTER' is typed as a heading here while the identical facility labels elsewhere are not captured at all; it is a small caption-style label rather than a section heading.
minor
other #11: Two separate schedule lines are merged into a single text item with a '/' separator instead of preserving line/row structure.
minor
wrong_type #12: 'JACKIE ROBINSON COMMUNITY CENTER' and 'GRAB AND GO FROZEN MEAL PROGRAM' (#13) are prominent titles in the ad panel but typed as plain text.
Page 32 JSON
{
"document_id": 267,
"page": 32,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 20,
"counts_by_type": {
"figure": 3,
"footer": 1,
"heading": 4,
"text": 12
},
"build_ms": 1,
"items": [
{
"id": "p32.1",
"order": 1,
"type": "text",
"bbox": {
"l": 34.8,
"t": 758.64,
"r": 292.8,
"b": 744.24
},
"text": "07/09-08/13 5:30 – 7:30 PM THU FREE AGE: 50/UP",
"attrs": {
"block_label": "header",
"ai_retyped_from": "header",
"ai_reason": "This is a class schedule row continuing from the previous page, not a page header."
}
},
{
"id": "p32.2",
"order": 2,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 729.6,
"r": 210,
"b": 714.24
},
"text": "NEW! STRENGTH TRAINING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p32.3",
"order": 3,
"type": "text",
"bbox": {
"l": 35.04,
"t": 710.64,
"r": 293.52,
"b": 539.76
},
"text": "Join our Strength Training class, designed specifically for older adults to enhance muscle strength, flexibility, and balance in a fun and supportive environment. Whether you prefer using weights or just your body weight, this class offers adaptable exercises to suit all fitness levels!\nVILLA PARKE COMMUNITY CENTER\n03/10-04/30 10:30AM – 11:30AM T, TH FREE AGE: 50/UP\n05/05-06/25 10:30AM – 11:30AM T, TH FREE AGE: 50/UP\n07/07-08/13 10:30AM – 11:30AM T, TH FREE AGE: 50/UP\nVICTORY PARK RECREATION CENTER\n03/10-04/28 1PM – 2PM T FREE AGE: 50/UP\n05/05-06/23 1PM – 2PM T FREE AGE: 50/UP"
},
{
"id": "p32.4",
"order": 4,
"type": "figure",
"bbox": {
"l": 311.52,
"t": 757.2,
"r": 575.52,
"b": 583.2
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p32.5",
"order": 5,
"type": "figure",
"bbox": {
"l": 312,
"t": 534.0668,
"r": 576,
"b": 69.9098
},
"text": "",
"attrs": {
"source": "pdf_image"
},
"children": [
{
"type": "heading",
"bbox": {
"l": 330.48,
"t": 524.3,
"r": 563.04,
"b": 481.54
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Ad headline text is not covered by any text item (only a figure box spans the ad)."
},
"children": [],
"order": 6,
"id": "p32.5.1"
}
]
},
{
"id": "p32.6",
"order": 7,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 522,
"r": 136.56,
"b": 507.36
},
"text": "NEW! KARAOKE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p32.7",
"order": 8,
"type": "text",
"bbox": {
"l": 33.84,
"t": 501.84,
"r": 295.68,
"b": 386.64
},
"text": "Join us for a fun-filled hour of karaoke designed for older adults. Whether you love belting out classics or simply enjoy listening to your favorite tunes, this activity is all about music, memories, and good company. No experience needed—just bring your enthusiasm!\nVILLA PARKE COMMUNITY CENTER\n03/06-05/01 11:30AM – 12:30PM FRI FREE AGE: 50/UP\n05/08-06/26 11:30AM – 12:30PM FRI FREE AGE: 50/UP\n07/10-08/14 11:30AM – 12:30PM FRI FREE AGE: 50/UP"
},
{
"id": "p32.8",
"order": 9,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 370.32,
"r": 224.4,
"b": 339.36
},
"text": "NEW! NON-CONTACT BOXING FOR OLDER ADULTS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"type": "text",
"bbox": {
"l": 36.72,
"t": 331.06,
"r": 159.12,
"b": 319.97
},
"text": "VILLA PARKE COMMUNITY CENTER",
"attrs": {
"source": "ai_vision",
"reason": "Venue line above the boxing description is not included in any item."
},
"children": [],
"order": 10,
"id": "p32.9"
},
{
"id": "p32.10",
"order": 11,
"type": "text",
"bbox": {
"l": 34.08,
"t": 321.12,
"r": 294,
"b": 200.16
},
"text": "Stay active and energized with this fun, non-contact boxing class designed for adults 50 and older. Learn basic boxing moves like jabs, hooks, and footwork in a safe, supportive environment—no hitting involved! Improve cardiovascular health, build strength and balance, boost coordination, sharpen mental focus, and reduce stress—all while having fun. No experience needed. All fitness levels welcome! Just bring comfortable workout clothes, water, and a positive attitude."
},
{
"id": "p32.11",
"order": 12,
"type": "text",
"bbox": {
"l": 34.56,
"t": 196.8,
"r": 293.52,
"b": 166.32
},
"text": "05/08-06/26 11AM – 12PM FRI FREE AGE: 50/UP\n07/10-08/14 11AM – 12PM FRI FREE AGE: 50/UP\nJACKIE ROBINSON COMMUNITY CENTER"
},
{
"id": "p32.12",
"order": 13,
"type": "text",
"bbox": {
"l": 368.4,
"t": 467.76,
"r": 525.84,
"b": 404.4
},
"text": "GRAB AND GO\nFROZEN MEAL\nPROGRAM"
},
{
"id": "p32.13",
"order": 14,
"type": "figure",
"bbox": {
"l": 357.36,
"t": 393.6,
"r": 529.68,
"b": 371.52
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p32.14",
"order": 15,
"type": "text",
"bbox": {
"l": 350.4,
"t": 356.64,
"r": 540,
"b": 328.56
},
"text": "PICK UP 7 FROZEN MEALS EVERY WEDNESDAY AT 11 AM"
},
{
"id": "p32.15",
"order": 16,
"type": "text",
"bbox": {
"l": 340.8,
"t": 318,
"r": 554.64,
"b": 230.88
},
"text": "MUST BE 60+ YEARS OLD\nTO PARTICIPATE\nINTAKE FORM REQUIRED\nTO SIGN UP & NO NEED TO BE IN\nTHE HOT MEAL PROGRAM\nTO BE ELIGIBLE"
},
{
"id": "p32.16",
"order": 17,
"type": "text",
"bbox": {
"l": 361.44,
"t": 221.76,
"r": 526.8,
"b": 177.6
},
"text": "INQUIRE AT FRONT DESK\n1020 N FAIR OAKS AVE,\nPASADENA, CA 91103"
},
{
"id": "p32.17",
"order": 18,
"type": "text",
"bbox": {
"l": 380.64,
"t": 167.52,
"r": 501.12,
"b": 118.56
},
"text": "San Gabriel Valley\nYWCA IS ON\nA MISSION"
},
{
"id": "p32.18",
"order": 19,
"type": "text",
"bbox": {
"l": 357.84,
"t": 110.4,
"r": 530.4,
"b": 81.12
},
"text": "FOR GENERAL QUESTIONS\n(626)-214-9456"
},
{
"id": "p32.19",
"order": 20,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 19.44,
"r": 217.68,
"b": 8.16
},
"text": "32 Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 2,
"retyped": 1
}
}
Page 33
31 item(s)
JSON
figure (1)
footer (1)
heading (8)
table_cell (4)
text (16)
title (1)
1 · FIGURE
2 · TITLE
3 · TEXT
4 · HEADING
5 · TEXT
6 · TEXT ·✨
7 · HEADING
8 · TEXT
9
10
11
12
13 · TEXT ·✨
14 · HEADING
15 · TEXT
16 · HEADING
17 · TEXT
18 · TEXT
19 · HEADING
20 · TEXT
21 · TEXT
22 · HEADING
23 · TEXT
24 · TEXT
25 · HEADING
26 · TEXT
27 · HEADING
28 · TEXT
29 · TEXT
30 · TEXT ·✨
31 · FOOTER
AI review
(claude-opus-5, conf 82%)
— Most of the page is captured, but the Spanish class schedule lines (LEVEL 1/2/3 with days and times) are missing, the Meditation schedule line is missing, and the French intro paragraph was wrongly folded into a table as a cell.
major
missing_item #29: The Spanish schedule lines "LEVEL 1: TUE 9AM - 10AM", "LEVEL 2: TUE 10AM - 11AM", "LEVEL3: TUE 11AM - 12PM" (between the Spanish description and item #30) are not extracted.
major
missing_item #41: The Meditation schedule line "50+ MON 11AM - 12PM FEE: $55 PER 10 WEEK SESSION" (below the meditation paragraph) is missing from the extraction.
major
table_structure #8: The French intro paragraph ("Whether you're new or want to continue learning...") is captured as a single table_cell spanning the table width; it is body text preceding the schedule, not a table row. Similarly #27 (the fee line) is a full-width cell rather than table content.
minor
wrong_bbox #8: Cell #8 bbox (5,54,47,56) is too short for a three-line paragraph, indicating the table grid does not align with the visible layout.
minor
other #7: The Spanish and Ballroom Dancing schedule blocks are extracted as plain text while the analogous French block is a table — inconsistent structuring of equivalent content.
Page 33 JSON
{
"document_id": 267,
"page": 33,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 31,
"counts_by_type": {
"figure": 1,
"footer": 1,
"heading": 8,
"table_cell": 4,
"text": 16,
"title": 1
},
"build_ms": 6,
"items": [
{
"id": "p33.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 300,
"b": 581
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p33.2",
"order": 2,
"type": "title",
"bbox": {
"l": 18.24,
"t": 767.52,
"r": 296.88,
"b": 654.48
},
"text": "PASADENA\nSENIOR CENTER",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p33.3",
"order": 3,
"type": "text",
"bbox": {
"l": 32.16,
"t": 636.48,
"r": 298.8,
"b": 465.12
},
"text": "The Pasadena Senior Center provides recreational, educational and wellness activities for seniors age 50 and older. Located at 85 East Holly Street in Old Pasadena, the Senior Center is a place where Seniors can gather to meet friends for coffee, attend educational lectures or participate in fitness classes, interest clubs and games such as pool, backgammon, chess and checkers. The membership is $45/year (rates are subject to change) plus the class fee (listed in the classes below) to participate. Non-members can participate in classes for the class prices listed below plus an additional $10. For more information on the Pasadena Senior Center, please visit PasadenaSeniorCenter.org, email info@pasadenaseniorcenter.org or call (626) 795-4331."
},
{
"id": "p33.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 450.96,
"r": 177.12,
"b": 437.28
},
"text": "ART & JOY OF SEWING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.5",
"order": 5,
"type": "text",
"bbox": {
"l": 33.6,
"t": 436.8,
"r": 288.24,
"b": 396.96
},
"text": "Beginner and advanced students are welcome. Additional supplies may be required to be purchased. 50+ MON 10:30 AM - 1:30 PM $125 PER 10 WEEK SESSION"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 399.96,
"r": 293.76,
"b": 386.5
},
"text": "50+ MON 10:30 AM - 1:30 PM $125 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Schedule/fee line for Art & Joy of Sewing not covered by item #5 (ends at 50)."
},
"children": [],
"order": 6,
"id": "p33.6"
},
{
"id": "p33.7",
"order": 7,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 381.12,
"r": 149.76,
"b": 367.92
},
"text": "FRENCH CLASSES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.8",
"order": 8,
"type": "text",
"bbox": {
"l": 32.64,
"t": 366.72,
"r": 287.52,
"b": 231.12
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 2,
"n_cols": 3,
"integrity": {
"cells_checked": 4,
"cells_flagged": 0
},
"ai_retyped_from": "table",
"ai_reason": "The French classes block is body text plus aligned schedule lines, not a table with cells."
},
"children": [
{
"id": "p33.8.1",
"order": 9,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 366.65,
"r": 284.967115,
"b": 331.09
},
"text": "Whether you're new or want to continue learning the beautiful French language, our French class levels will accommodate your skill level.",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 3,
"bbox_refit": true
}
},
{
"id": "p33.8.2",
"order": 10,
"type": "table_cell",
"bbox": {
"l": 36,
"t": 328.052,
"r": 253.256383,
"b": 231.60799999999995
},
"text": "FRENCH 1:\nFRENCH 1B:\nFRENCH 2:\nFRENCH 3:\nFRENCH 4:\nFRENCH 5:\n50+ FEE: $55 PER 10 WEEK SESSION (INDIVIDUAL CLASS LEVEL)",
"attrs": {
"row": 1,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p33.8.3",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 108,
"t": 328.052,
"r": 124.06812,
"b": 246.00800000000004
},
"text": "WED\nWED\nMON\nMON\nWED\nWED",
"attrs": {
"row": 1,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p33.8.4",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 143.99988,
"t": 328.052,
"r": 203.41188,
"b": 246.00800000000004
},
"text": "2:30 PM - 4 PM\n2:30 PM - 4 PM\n9:30 AM - 11 AM\n11 AM - 12:30 PM\n11 AM - 12:30 PM\n9:30 AM - 11 AM",
"attrs": {
"row": 1,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 221.76,
"r": 569.16,
"b": 209.88
},
"text": "50+ MON 11AM - 12PM FEE: $55 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Meditation schedule/fee line not covered by item #24."
},
"children": [],
"order": 13,
"id": "p33.9"
},
{
"id": "p33.10",
"order": 14,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 214.56,
"r": 92.88,
"b": 201.36
},
"text": "SPANISH",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.11",
"order": 15,
"type": "text",
"bbox": {
"l": 33.6,
"t": 200.4,
"r": 295.2,
"b": 87.6
},
"text": "Welcome to Spanish! This class will be a fun introduction to greetings, vocabulary, and grammar in a foreign language. Class will be a fun learning experience with a qualified Spanish teacher in which we will share in class discussion and conversation.\nLEVEL 1: TUE 9AM - 10AM\nLEVEL 2: TUE 10AM - 11AM\nLEVEL3: TUE 11AM - 12PM\n50+ EEE: $55 PER 10 WEEK SESSION (INDIVIDUAL CLASS LEVEL)"
},
{
"id": "p33.12",
"order": 16,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 756,
"r": 536.64,
"b": 727.2
},
"text": "GETTING TO KNOW YOUR IPAD AND\nIPHONE (BEGINNERS)",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.13",
"order": 17,
"type": "text",
"bbox": {
"l": 308.64,
"t": 725.76,
"r": 566.88,
"b": 650.64
},
"text": "Whether you're new to your iPad or iPhone, or want to learn the different features that your device can offer, then this class is for you. From updating and changing your settings to taking pictures and editing videos, this class is for the everyday user. Bring your own device or borrow one from PSC."
},
{
"id": "p33.14",
"order": 18,
"type": "text",
"bbox": {
"l": 310.08,
"t": 653.04,
"r": 571.2,
"b": 638.64
},
"text": "50+ TUE 10 AM - 11 AM FEE: $60 PER 10 WEEK SESSION"
},
{
"id": "p33.15",
"order": 19,
"type": "heading",
"bbox": {
"l": 310.32,
"t": 626.16,
"r": 448.08,
"b": 613.2
},
"text": "BALLROOM DANCING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.16",
"order": 20,
"type": "text",
"bbox": {
"l": 309.12,
"t": 612,
"r": 576.72,
"b": 539.52
},
"text": "Participants will learn the basic patterns and character of the most popular ballroom dances, as well as how to recognize the music. They will learn the basics of leading, following, and developing time and rhythm. At the end of this series of classes, students should feel comfortable dancing through an entire song at parties and weddings."
},
{
"id": "p33.17",
"order": 21,
"type": "text",
"bbox": {
"l": 309.12,
"t": 539.52,
"r": 531.12,
"b": 495.84
},
"text": "LEVEL 1: WED 1 PM - 2 PM\nLEVEL 2: WED 2 PM - 3 PM\n50+ FEE: $60 PER 10 WEEK SESSION (INDIVIDUAL CLASS LEVEL)"
},
{
"id": "p33.18",
"order": 22,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 479.52,
"r": 480.48,
"b": 466.8
},
"text": "BALLROOM LINE DANCING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.19",
"order": 23,
"type": "text",
"bbox": {
"l": 309.12,
"t": 464.64,
"r": 577.44,
"b": 364.8
},
"text": "Seniors love Ballroom Line Dancing because it's fun, easy to learn and they can dance to all the beautiful ballroom music without a partner. \"Ballroom line dancing\" is line dancing with a twist. Students will learn the basic steps of many ballroom dances (e.g., Foxtrot, Cha Cha, etc.) in a line dance format. At the end of each class, students should feel comfortable dancing through an entire song at dance parties and weddings."
},
{
"id": "p33.20",
"order": 24,
"type": "text",
"bbox": {
"l": 310.08,
"t": 368.88,
"r": 570,
"b": 353.76
},
"text": "50+ WED 3 PM - 4 PM FEE: $60 PER 10 WEEK SESSION"
},
{
"id": "p33.21",
"order": 25,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 338.16,
"r": 392.4,
"b": 325.44
},
"text": "MEDITATION",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.22",
"order": 26,
"type": "text",
"bbox": {
"l": 308.88,
"t": 323.52,
"r": 576.48,
"b": 218.4
},
"text": "Participants will gain skills in many different meditation techniques from various lineages as together we train our minds for better focus in order to meet each moment of life in greater awareness, peace, and presence. Open to all levels of meditators, from first timers to practiced sitters, because we can all use more tools to learn to rebalance our minds, hearts, and lives! Bring an open mind, your natural curiosity, and a smile!\n50+ MON 11AM - 12PM FEE: $55 PER 10 WEEK SESSION"
},
{
"id": "p33.23",
"order": 27,
"type": "heading",
"bbox": {
"l": 309.84,
"t": 185.76,
"r": 399.12,
"b": 172.56
},
"text": "ZUMBA GOLD",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p33.24",
"order": 28,
"type": "text",
"bbox": {
"l": 308.88,
"t": 171.36,
"r": 568.32,
"b": 111.6
},
"text": "This is a fitness program designed to take the exciting Latin and international dance rhythms of Zumba and bring them to the active older adult. This exhilarating program is so easy to follow that people of any age can enjoy it."
},
{
"id": "p33.25",
"order": 29,
"type": "text",
"bbox": {
"l": 309.36,
"t": 110.4,
"r": 565.2,
"b": 96.72
},
"text": "50+ MON 12:30PM - 1:30PM FEE: $55 PER 10 WEEK SESSION"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 87.12,
"r": 275.4,
"b": 23.76
},
"text": "LEVEL 1: TUE 9AM - 10AM\nLEVEL 2: TUE 10AM - 11AM\nLEVEL3: TUE 11AM - 12PM\n50+ FEE: $55 PER 10 WEEK SESSION (INDIVIDUAL CLASS LEVEL)",
"attrs": {
"source": "ai_vision",
"reason": "Spanish class schedule lines are not covered by any item."
},
"children": [],
"order": 30,
"id": "p33.26"
},
{
"id": "p33.27",
"order": 31,
"type": "footer",
"bbox": {
"l": 408.96,
"t": 19.44,
"r": 593.28,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 33",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 76,
"added": 3,
"retyped": 1
}
}
Page 34
24 item(s)
JSON
footer (2)
heading (8)
text (14)
1 · HEADING
2 · TEXT
3 · HEADING
4 · TEXT
5 · TEXT ·✨
6 · HEADING
7 · TEXT
8 · TEXT ·✨
9 · HEADING
10 · TEXT
11 · HEADING
12 · TEXT
13 · HEADING
14 · TEXT
15 ·✨
16 · HEADING
17 · TEXT
18 ·✨
19 · TEXT ·✨
20 · HEADING
21 · TEXT
22 · TEXT ·✨
23 · FOOTER
24 · FOOTER
AI review
(claude-opus-5, conf 80%)
— Most body text is captured, but several schedule lines are missing or merged, the reading order interleaves the two columns incorrectly (items #19–#22 belong to the left column before the right column), and some nesting is spurious.
major
reading_order #11: Reading order breaks column flow: the left column is interrupted after #10, the entire right column (#11–#18) is inserted, and then left-column continuation (#19–#22) resumes. Left column items #19–#22 should follow #10 before the right column begins.
major
missing_item #2: The schedule line for STEP TO THE BEAT AEROBICS ('50+ MON 3 PM - 4 PM FEE: $70 PER 8 WEEK SESSION') is not present as an item (unless silently merged into truncated #2).
major
missing_item #10: QIGONG & TAI CHI schedule lines 'BEGINNER: TH 10:30 AM - 11:30 AM' and 'INTERMEDIATE: TH 11:30 AM - 12:30 PM' are missing (possibly truncated into #10).
major
missing_item #22: STRENGTH TRAINING has two schedule rows in the image ('50+ TH 8:30 AM–9:30 AM ...' and '50+ TH 9:30 AM–10:30 AM ...'); only the second one (#22) is captured.
major
missing_item #12: YOGA schedule line '50+ WED 9:00 AM–10:30 AM FEE: $55 PER 10 WEEK SESSION' is missing as a separate item.
major
missing_item #14: YOGA AND PRESENCE PRACTICE first schedule row '50+ MON 9:30 AM - 10:45 AM FEE: $60 PER 10 WEEK SESSION' is missing; only the SAT row (#15) is captured.
minor
nesting #15: Schedule line #15 is nested under the description paragraph #14; comparable schedule lines elsewhere (#5, #8, #22) are siblings, so nesting is inconsistent.
minor
nesting #18: Schedule line #18 is nested inside description #17, inconsistent with other schedule lines.
minor
text_mismatch #16: Heading uses straight single quotes ('LET US PLAY') where the image shows double quotes ("LET US PLAY" IMPROV).
Page 34 JSON
{
"document_id": 267,
"page": 34,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 24,
"counts_by_type": {
"footer": 2,
"heading": 8,
"text": 14
},
"build_ms": 1,
"items": [
{
"id": "p34.1",
"order": 1,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 756,
"r": 220.32,
"b": 742.08
},
"text": "STEP TO THE BEAT AEROBICS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.2",
"order": 2,
"type": "text",
"bbox": {
"l": 32.88,
"t": 740.88,
"r": 299.76,
"b": 642.48
},
"text": "This class will help improve your cardiovascular system by challenging your heart and lungs. Participants will use their own body weight and improve agility, mobility, and balance. We will warm-up, exercise and cool down. Participants will enjoy walking or stepping to the beat. This class is fun, interactive, and great for individuals with all levels of fitness.\n50+ MON 3 PM - 4 PM FEE: $70 PER 8 WEEK SESSION"
},
{
"id": "p34.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 34.32,
"t": 629.76,
"r": 144.72,
"b": 616.08
},
"text": "CHAIR AEROBICS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.36,
"t": 615.36,
"r": 299.28,
"b": 551.76
},
"text": "This course offers a combination of low-impact movements, chair aerobics, and the use of weights. Participants will tone their muscles and increase flexibility.\n50+ FRI 9:15 AM-9:45 AM FEE: $60 PER 10 WEEK SESSION"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 559.15,
"r": 302.94,
"b": 545.69
},
"text": "50+\tFRI\t9:15 AM-9:45 AM\tFEE: $60 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Schedule/fee line for Chair Aerobics not covered"
},
"children": [],
"order": 5,
"id": "p34.5"
},
{
"id": "p34.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 540.24,
"r": 150.96,
"b": 526.32
},
"text": "PEP UP YOUR LIFE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.7",
"order": 7,
"type": "text",
"bbox": {
"l": 33.36,
"t": 525.12,
"r": 299.04,
"b": 449.52
},
"text": "Designed to improve strength, balance and flexibility, this introductory level class will improve the way you feel about your health and body, while increasing muscle mass and bone density. Participants work at their own pace and within their own comfort range.\n\n50+ FRI 9:30 AM–10:30 AM FEE: $55 PER 10 WEEK SESSION"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 453.82,
"r": 302.94,
"b": 440.35
},
"text": "50+\tFRI\t9:30 AM–10:30 AM\tFEE: $55 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Schedule/fee line for Pep Up Your Life not covered"
},
"children": [],
"order": 8,
"id": "p34.8"
},
{
"id": "p34.9",
"order": 9,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 438,
"r": 150,
"b": 423.6
},
"text": "QIGONG & TAI CHI",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.10",
"order": 10,
"type": "text",
"bbox": {
"l": 33.36,
"t": 423.12,
"r": 284.4,
"b": 342.96
},
"text": "This class combines Qigong and Tai Chi movements to enhance your physical and spiritual well-being and increase your youthful vitality and longevity.\nBEGINNER: TH 10:30 AM - 11:30 AM\nINTERMEDIATE: TH 11:30 AM - 12:30 PM\n50+ FEE: $50 PER 10 WEEK SESSION"
},
{
"id": "p34.11",
"order": 11,
"type": "heading",
"bbox": {
"l": 309.6,
"t": 756.24,
"r": 350.4,
"b": 742.56
},
"text": "YOGA",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.12",
"order": 12,
"type": "text",
"bbox": {
"l": 309.36,
"t": 741.6,
"r": 568.32,
"b": 665.28
},
"text": "Yoga is valuable for everyone: the young, the old,\nbeginners, and advanced practitioners. Each student\nproceeds at his or her own pace. Yoga's emphasis is on\nthe precise alignment of the body in the asanas (poses)\nand the careful sequencing and timings of the asanas.\n50+ WED 9:00 AM–10:30 AM FEE: $55 PER 10 WEEK SESSION"
},
{
"id": "p34.13",
"order": 13,
"type": "heading",
"bbox": {
"l": 309.12,
"t": 654,
"r": 516,
"b": 639.84
},
"text": "YOGA AND PRESENCE PRACTICE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.14",
"order": 14,
"type": "text",
"bbox": {
"l": 308.88,
"t": 638.88,
"r": 575.76,
"b": 537.6
},
"text": "Join us for a practical yet fun blend of yoga and meditation-movement and awareness. These ancient practices designed to bring balance strength, flexibility and mindfulness are still appropriate and available to us all today. Create unity of mind, body and spirit! Learn to breathe properly and work at your own level.\n50+ MON 9:30 AM - 10:45 AM FEE: $60 PER 10 WEEK SESSION\n50+ SAT 8:15 AM – 9:15 AM FEE: $60 PER 10 WEEK SESSION",
"children": [
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 546.48,
"r": 581.4,
"b": 533.02
},
"text": "50+\tSAT\t8:15 AM – 9:15 AM\tFEE: $60 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Second schedule line not covered"
},
"children": [],
"order": 15,
"id": "p34.14.1"
}
]
},
{
"id": "p34.15",
"order": 16,
"type": "heading",
"bbox": {
"l": 310.08,
"t": 525.6,
"r": 456,
"b": 512.16
},
"text": "\"LET US PLAY\" IMPROV",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.16",
"order": 17,
"type": "text",
"bbox": {
"l": 309.6,
"t": 510.48,
"r": 563.04,
"b": 447.36
},
"text": "Join us for a playful, participatory class of theater and improv games designed to unlock creativity, free the imagination, ignite spontaneity, increase mental focus, build confidence, and nurture group connection.\n50+ T 2 PM - 3:30 PM FEE: $20 PER 10 WEEK SESSION",
"children": [
{
"type": "text",
"bbox": {
"l": 312.12,
"t": 456.98,
"r": 569.16,
"b": 443.52
},
"text": "50+\tT\t2 PM - 3:30 PM\tFEE: $20 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Improv schedule/fee line not covered"
},
"children": [],
"order": 18,
"id": "p34.16.1"
}
]
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 346.1,
"r": 165.24,
"b": 332.64
},
"text": "50+ FEE: $50 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Qigong fee line not covered"
},
"children": [],
"order": 19,
"id": "p34.17"
},
{
"id": "p34.18",
"order": 20,
"type": "heading",
"bbox": {
"l": 34.08,
"t": 328.32,
"r": 171.6,
"b": 314.88
},
"text": "STRENGTH TRAINING",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p34.19",
"order": 21,
"type": "text",
"bbox": {
"l": 33.36,
"t": 313.44,
"r": 294.72,
"b": 208.8
},
"text": "Learn how to strengthen your body without access to workout machines. This virtual strength class uses free weights, bands, ankle weights, or anything you can use around your house to create resistance. Every large muscle group in the body will experience resistance to promote muscle building in the comfort of your home.\n\n50+ TH 8:30 AM–9:30 AM FEE: $75 PER 10 WEEK SESSION\n\n50+ TH 9:30 AM–10:30 AM FEE: $75 PER 10 WEEK SESSION"
},
{
"type": "text",
"bbox": {
"l": 30.6,
"t": 209.88,
"r": 302.94,
"b": 196.42
},
"text": "50+\tTH\t9:30 AM–10:30 AM\tFEE: $75 PER 10 WEEK SESSION",
"attrs": {
"source": "ai_vision",
"reason": "Strength Training second schedule line not covered"
},
"children": [],
"order": 22,
"id": "p34.20"
},
{
"id": "p34.21",
"order": 23,
"type": "footer",
"bbox": {
"l": 37.2,
"t": 19.44,
"r": 217.68,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p34.22",
"order": 24,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 18.48,
"r": 45.12,
"b": 8.16
},
"text": "34",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 70,
"added": 6,
"retyped": 0
}
}
Page 35
22 item(s)
JSON
figure (2)
footer (2)
heading (7)
text (10)
title (1)
1 · FIGURE
2 · TITLE
3 · FIGURE
4 · HEADING
5 · TEXT
6 · HEADING
7 · TEXT
8 · HEADING
9 · TEXT
10 · TEXT
11 · HEADING
12 · TEXT
13 · HEADING
14 · TEXT
15 · TEXT
16 · TEXT
17 · HEADING
18 · TEXT
19 · HEADING
20 · TEXT
21 · FOOTER
22 · FOOTER
AI review
(claude-opus-5, conf 76%)
— Most text blocks and headings are captured, but the reading order jumps from the left column to the right column and back, and the WIC schedule lines are duplicated across two overlapping items. Footer is also split into overlapping duplicates.
major
reading_order #19: Reading order interleaves columns: the left column is broken (#4–#7), then the entire right column (#8–#18), then back to the left column (#19–#20). The left column's 'FREE COMMUNITY LEGAL CLINIC' section should follow #7 before moving to the right column.
major
text_mismatch #16: Item #16 duplicates the 'M-TH 8AM-5PM YEAR-ROUND' line already captured in #15, and its bbox overlaps #15; the WIC schedule block is split/duplicated rather than segmented cleanly.
minor
text_mismatch #21: Footer text captured as 'Spring/Summer I 2026 Recreation Guide 3' — trailing '3' is a fragment of the page number '35', which is also captured separately in #22 (overlapping duplication).
minor
other #1: Item #1 is a decorative background gradient block overlapping the title #2; questionable as a figure.
Page 35 JSON
{
"document_id": 267,
"page": 35,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 22,
"counts_by_type": {
"figure": 2,
"footer": 2,
"heading": 7,
"text": 10,
"title": 1
},
"build_ms": 1,
"items": [
{
"id": "p35.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 792,
"r": 296,
"b": 636
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p35.2",
"order": 2,
"type": "title",
"bbox": {
"l": 33.12,
"t": 776.88,
"r": 262.56,
"b": 666.24
},
"text": "COMMUNITY SERVICES",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p35.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 22.8,
"t": 648.24,
"r": 278.16,
"b": 478.32
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p35.4",
"order": 4,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 463.44,
"r": 182.88,
"b": 449.28
},
"text": "COMMUNITY SERVICES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.5",
"order": 5,
"type": "text",
"bbox": {
"l": 32.88,
"t": 444,
"r": 280.08,
"b": 349.92
},
"text": "Community Services representatives are available by appointment to assist the public with referrals and general inquiries.\nJACKIE ROBINSON COMMUNITY CENTER\nAND VILLA PARKE COMMUNITY CENTER\nM-F 8AM-5PM YEAR-ROUND FEES VARY\nBY APPOINTMENT ONLY. PLEASE CALL (626) 744-7300."
},
{
"id": "p35.6",
"order": 6,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 333.84,
"r": 203.04,
"b": 319.68
},
"text": "HOUSING RIGHTS CENTER",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.7",
"order": 7,
"type": "text",
"bbox": {
"l": 32.88,
"t": 314.64,
"r": 300,
"b": 210.72
},
"text": "Housing Rights Center (HRC) provides residents with free housing discrimination investigation, fair housing enforcement, outreach and public education, and landlord-tenant counseling, and is able to assist clients in multiple languages. For more information, call (626) 791-0211 or (800) 477-5977.\nJACKIE ROBINSON COMMUNITY CENTER\nM-F 8:30AM-5PM YEAR-ROUND FREE"
},
{
"id": "p35.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 308.64,
"t": 756.48,
"r": 554.16,
"b": 727.44
},
"text": "BLOOD PRESSURE AND BLOOD SUGAR SCREENINGS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.9",
"order": 9,
"type": "text",
"bbox": {
"l": 309.12,
"t": 725.04,
"r": 573.36,
"b": 665.04
},
"text": "Free blood pressure and blood sugar screenings by a registered nurse provided by Huntington Health, an affiliate of Cedars Sinai. This provides hypertension (high blood pressure) and diabetes (high blood sugar) risk assessment and screening. No appointment necessary."
},
{
"id": "p35.10",
"order": 10,
"type": "text",
"bbox": {
"l": 308.4,
"t": 662.64,
"r": 560.16,
"b": 620.16
},
"text": "For more information, call (626-397-3376).\nJACKIE ROBINSON COMMUNITY CENTER\n3RD THURS. OF EACH MONTH 11:30AM-1:30PM YEAR-ROUND FREE"
},
{
"id": "p35.11",
"order": 11,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 607.44,
"r": 524.16,
"b": 593.28
},
"text": "PASSPORT ACCEPTANCE SERVICE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.12",
"order": 12,
"type": "text",
"bbox": {
"l": 309.12,
"t": 593.04,
"r": 577.92,
"b": 527.04
},
"text": "U.S. Citizens may apply for their U.S. Passport with our trained Passport Acceptance Agents. Application processing fee is $35. Photos can be taken on site for $10. JACKIE ROBINSON COMMUNITY CENTER\nBY APPOINTMENT ONLY. PLEASE CALL (626) 744-7318."
},
{
"id": "p35.13",
"order": 13,
"type": "heading",
"bbox": {
"l": 309.36,
"t": 511.44,
"r": 407.76,
"b": 497.52
},
"text": "WIC PROGRAM",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.14",
"order": 14,
"type": "text",
"bbox": {
"l": 309.12,
"t": 496.56,
"r": 564,
"b": 412.8
},
"text": "A program of the Pasadena Public Health Department, WIC is a supplemental food program and nutrition education for eligible pregnant and breastfeeding women, infants, and children up to the age of 5. Closed every other Friday and City Holidays. For more information, please visit CityOfPasadena.net/Public-Health/wic or call (626) 744-6520."
},
{
"id": "p35.15",
"order": 15,
"type": "text",
"bbox": {
"l": 309.84,
"t": 410.16,
"r": 504.48,
"b": 382.8
},
"text": "VILLA PARKE COMMUNITY CENTER\nM-TH 8AM-5PM YEAR-ROUND"
},
{
"id": "p35.16",
"order": 16,
"type": "text",
"bbox": {
"l": 309.6,
"t": 400.08,
"r": 504.72,
"b": 353.76
},
"text": "M-TH 8AM-5PM YEAR-ROUND PASADENA PUBLIC HEALTH DEPARTMENT\nM,W 8AM-5PM YEAR-ROUND"
},
{
"id": "p35.17",
"order": 17,
"type": "heading",
"bbox": {
"l": 311.04,
"t": 338.4,
"r": 484.8,
"b": 324.72
},
"text": "IMMIGRATION ASSISTANCE",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.18",
"order": 18,
"type": "text",
"bbox": {
"l": 308.64,
"t": 323.28,
"r": 570.48,
"b": 216.24
},
"text": "Community Service staff assist individuals seeking an adjustment in status, advocacy, referral, and information regarding family petitions, Deferred Action Childhood Arrival (DACA), citizenship, and registry. By appointment only.\nJACKIE ROBINSON COMMUNITY CENTER\nAND VILLA PARKE COMMUNITY CENTER\nM-F 8AM-5PM YEAR-ROUND FEES VARY"
},
{
"id": "p35.19",
"order": 19,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 198.48,
"r": 243.12,
"b": 184.32
},
"text": "FREE COMMUNITY LEGAL CLINIC",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p35.20",
"order": 20,
"type": "text",
"bbox": {
"l": 33.12,
"t": 183.12,
"r": 289.92,
"b": 45.36
},
"text": "Open to all individuals and community members who need legal assistance, but lack the resources to hire an attorney. Assist with housing; family law; bankruptcy/consumer debt; probate; civil matters; public benefits; expungements and other issues. Please bring all documents related to your case. If you can't attend the clinic and are in need of support, please call Public Counsel at (213) 385-2977. This service is sponsored by Public Counsel.\nJACKIE ROBINSON COMMUNITY CENTER\n2ND SAT. OF EACH MONTH 9AM-12PM YEAR-ROUND FREE"
},
{
"id": "p35.21",
"order": 21,
"type": "footer",
"bbox": {
"l": 408.72,
"t": 19.44,
"r": 592.8,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 3",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p35.22",
"order": 22,
"type": "footer",
"bbox": {
"l": 581.52,
"t": 18.48,
"r": 594,
"b": 7.68
},
"text": "35",
"attrs": {
"block_label": "number"
}
}
]
}
Page 36
36 item(s)
JSON
figure (4)
footer (2)
heading (4)
list (3)
list_item (17)
text (5)
title (1)
1 · FIGURE
2 · TITLE
3 · HEADING
4 · LIST
5
6
7
8
9
10
11
12 · FIGURE
13 · TEXT
14 · FIGURE
15 · FIGURE
16 · TEXT
17 · TEXT
18 · HEADING
19 · LIST
20
21
22
23
24
25
26
27
28 · HEADING
29 · LIST
30
31
32
33
34 · TEXT ·✨
35 · FOOTER
36 · FOOTER
AI review
(claude-opus-5, conf 78%)
— Most content is captured, but two text items have wrong/merged text: #13 appends the VITA banner line to the Pasadena logo text, and #15 truncates the banner heading to just "Volunteer". Bullet list items in the left column are typed as plain text rather than list items, and #22 (a heading) is incorrectly nested inside the list of #18.
major
text_mismatch #13: Text includes "Volunteer Income Tax Assistance Program", which belongs to the right column's banner (item #15), not the Pasadena Rent Stabilization Department logo.
major
text_mismatch #15: Heading text truncated to "Volunteer"; the image reads "Volunteer Income Tax Assistance Program".
minor
wrong_type #4: Items #4–#9 are visibly bulleted list items but are typed as plain text and are not grouped in a list.
minor
nesting #22: "CAN HELP WITH:" heading is nested as a child of the list starting at #18; it should be a sibling heading outside the list.
minor
text_mismatch #27: Missing leading bullet marker "•" present in the image for the "Earn Income Credit..." item.
minor
wrong_bbox #24: Bounding box height (57–58%) is too small for the two-line wrapped item shown in the image.
Page 36 JSON
{
"document_id": 267,
"page": 36,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 36,
"counts_by_type": {
"figure": 4,
"footer": 2,
"heading": 4,
"list": 3,
"list_item": 17,
"text": 5,
"title": 1
},
"build_ms": 2,
"items": [
{
"id": "p36.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 34.98,
"t": 769.1446,
"r": 324.18,
"b": 27.6996
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p36.2",
"order": 2,
"type": "title",
"bbox": {
"l": 51.12,
"t": 743.04,
"r": 275.04,
"b": 537.36
},
"text": "We're here to help you navigate Pasadena's Rent Stabilization",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p36.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 59.52,
"t": 525.84,
"r": 301.44,
"b": 510
},
"text": "Rent Stabilization Department's Services:"
},
{
"id": "p36.4",
"order": 4,
"type": "list",
"bbox": {
"l": 52.56,
"t": 504,
"r": 276.24,
"b": 352.8
},
"text": "",
"attrs": {
"item_count": 7
},
"children": [
{
"id": "p36.4.1",
"order": 5,
"type": "list_item",
"bbox": {
"l": 67.44,
"t": 504,
"r": 271.44,
"b": 476.16
},
"text": "Assisting tenants, managers, and housing providers",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.2",
"order": 6,
"type": "list_item",
"bbox": {
"l": 67.2,
"t": 473.76,
"r": 276.24,
"b": 459.36
},
"text": "Community outreach & education",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.3",
"order": 7,
"type": "list_item",
"bbox": {
"l": 67.44,
"t": 456.48,
"r": 250.08,
"b": 441.84
},
"text": "Implementing local rent laws",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.4",
"order": 8,
"type": "list_item",
"bbox": {
"l": 67.44,
"t": 439.44,
"r": 198,
"b": 425.04
},
"text": "Housing counseling",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.5",
"order": 9,
"type": "list_item",
"bbox": {
"l": 67.68,
"t": 422.64,
"r": 199.92,
"b": 408.48
},
"text": "Hearings & petitions",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.6",
"order": 10,
"type": "list_item",
"bbox": {
"l": 67.2,
"t": 405.84,
"r": 197.52,
"b": 390.48
},
"text": "Monthly workshops",
"attrs": {
"bbox_estimated": true
}
},
{
"id": "p36.4.7",
"order": 11,
"type": "list_item",
"bbox": {
"l": 52.56,
"t": 382.32,
"r": 271.68,
"b": 352.8
},
"text": "Empowering everyone to thrive in an equitable rental housing environment.",
"attrs": {
"bbox_estimated": true
}
}
]
},
{
"id": "p36.5",
"order": 12,
"type": "figure",
"bbox": {
"l": 34.8,
"t": 343.92,
"r": 323.04,
"b": 116.4
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p36.6",
"order": 13,
"type": "text",
"bbox": {
"l": 90.72,
"t": 111.12,
"r": 268.08,
"b": 82.08
},
"text": "For more details, contact us at (626) 744-7999."
},
{
"id": "p36.7",
"order": 14,
"type": "figure",
"bbox": {
"l": 86.16,
"t": 76.08,
"r": 272.88,
"b": 44.16
},
"text": "PASADENA\nRENT STABILIZATION DEPARTMENT\nVolunteer Income Tax Assistance Program",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "This region is the Pasadena Rent Stabilization Department logo image, not the text stated; also the appended 'Volunteer Income Tax Assistance Program' text doe…"
}
},
{
"id": "p36.8",
"order": 15,
"type": "figure",
"bbox": {
"l": 339.36,
"t": 766.8,
"r": 602.4,
"b": 613.44
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p36.9",
"order": 16,
"type": "text",
"bbox": {
"l": 343.2,
"t": 609.12,
"r": 597.36,
"b": 589.44
},
"text": "Volunteer"
},
{
"id": "p36.10",
"order": 17,
"type": "text",
"bbox": {
"l": 341.52,
"t": 577.92,
"r": 588.72,
"b": 504.24
},
"text": "FREE TAX\nPREPARATION"
},
{
"id": "p36.11",
"order": 18,
"type": "heading",
"bbox": {
"l": 341.76,
"t": 498,
"r": 437.04,
"b": 480
},
"text": "INCOME LIMITS:"
},
{
"id": "p36.12",
"order": 19,
"type": "list",
"bbox": {
"l": 343.808,
"t": 477.354,
"r": 595.121787,
"b": 245.23400000000004
},
"text": "",
"attrs": {
"item_count": 8
},
"children": [
{
"id": "p36.12.1",
"order": 20,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 477.354,
"r": 546.947934,
"b": 463.634
},
"text": "• Taxpayers with 3 or more dependents: up to $75,000"
},
{
"id": "p36.12.2",
"order": 21,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 443.754,
"r": 552.393934,
"b": 430.034
},
"text": "• Taxpayers with less than 3 dependents: Up to $65,000"
},
{
"id": "p36.12.3",
"order": 22,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 410.154,
"r": 509.637934,
"b": 396.434
},
"text": "• Taxpayers with no dependents: up to $56,000"
},
{
"id": "p36.12.4",
"order": 23,
"type": "heading",
"bbox": {
"l": 343.808,
"t": 361.374,
"r": 436.24,
"b": 345.694
},
"text": "CAN HELP WITH:",
"attrs": {
"ai_retyped_from": "list_item",
"ai_reason": "'CAN HELP WITH:' is a section heading (same style as 'INCOME LIMITS:' and 'LOCATION:'), not a list item."
}
},
{
"id": "p36.12.5",
"order": 24,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 342.954,
"r": 594.086,
"b": 329.234
},
"text": "• Schedule C-EZ and C (Cash Income, 1099-MISC & Expense<5,000)"
},
{
"id": "p36.12.6",
"order": 25,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 309.354,
"r": 587.856,
"b": 295.634
},
"text": "• Schedule A (Own a house but do not rent out a room)"
},
{
"id": "p36.12.7",
"order": 26,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 275.754,
"r": 524.94,
"b": 262.034
},
"text": "• Schedule B (Interest & Dividends)"
},
{
"id": "p36.12.8",
"order": 27,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 258.95399999999995,
"r": 595.121787,
"b": 245.23400000000004
},
"text": "Earn Income Credit, Child Tax Credit, Education Credits, Child Care Credits, Etc."
}
]
},
{
"id": "p36.13",
"order": 28,
"type": "heading",
"bbox": {
"l": 342.72,
"t": 212.4,
"r": 404.88,
"b": 194.88
},
"text": "LOCATION:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p36.14",
"order": 29,
"type": "list",
"bbox": {
"l": 353.132,
"t": 191.75400000000002,
"r": 561.072,
"b": 102.61400000000003
},
"text": "",
"attrs": {
"item_count": 4
},
"children": [
{
"id": "p36.14.1",
"order": 30,
"type": "list_item",
"bbox": {
"l": 353.916,
"t": 191.75400000000002,
"r": 506.278,
"b": 178.034
},
"text": "• Villa Parke Community Center"
},
{
"id": "p36.14.2",
"order": 31,
"type": "list_item",
"bbox": {
"l": 353.132,
"t": 174.95399999999995,
"r": 425.4,
"b": 161.23400000000004
},
"text": "363 E. Villa St."
},
{
"id": "p36.14.3",
"order": 32,
"type": "list_item",
"bbox": {
"l": 353.132,
"t": 158.154,
"r": 456.494,
"b": 144.43399999999997
},
"text": "Pasadena CA, 91101"
},
{
"id": "p36.14.4",
"order": 33,
"type": "text",
"bbox": {
"l": 382.212,
"t": 122.21400000000006,
"r": 561.072,
"b": 102.61400000000003
},
"text": "APPOINTMENT REQUIRED YEAR-ROUND SERVICE (626) 744-6530",
"attrs": {
"ai_retyped_from": "list_item",
"ai_reason": "'APPOINTMENT REQUIRED / YEAR-ROUND SERVICE' is a centered callout statement, not a bulleted location list entry."
}
}
]
},
{
"type": "text",
"bbox": {
"l": 367.2,
"t": 71.28,
"r": 581.4,
"b": 31.68
},
"text": "(626) 744-6530",
"attrs": {
"source": "ai_vision",
"reason": "Large phone number at bottom of right panel; item #33 box (62,85,92,87) does not cover this region."
},
"children": [],
"order": 34,
"id": "p36.15"
},
{
"id": "p36.16",
"order": 35,
"type": "footer",
"bbox": {
"l": 37.2,
"t": 19.68,
"r": 218.88,
"b": 7.92
},
"text": "Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
},
{
"id": "p36.17",
"order": 36,
"type": "footer",
"bbox": {
"l": 32.16,
"t": 19.2,
"r": 45.6,
"b": 8.16
},
"text": "36",
"attrs": {
"block_label": "number"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 1,
"retyped": 3
}
}
Page 37
28 item(s)
JSON
figure (2)
footer (1)
heading (3)
list (2)
list_item (5)
text (13)
title (2)
1 · TITLE
2 · FIGURE
3 · FIGURE
4 · TEXT
5 · HEADING
6 · TEXT
7 · TEXT
8 · HEADING
9 · TEXT
10 · LIST ·✨
11 ·✨
12 ·✨
13 · HEADING
14 · TEXT
15 · TITLE
16 · TEXT
17 · TEXT
18 · TEXT
19 · TEXT
20 · TEXT
21 · TEXT
22 · LIST
23
24
25 · TEXT
26 ·✨
27 · TEXT
28 · FOOTER
AI review
(claude-opus-5, conf 70%)
—
Page 37 JSON
{
"document_id": 267,
"page": 37,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 28,
"counts_by_type": {
"figure": 2,
"footer": 1,
"heading": 3,
"list": 2,
"list_item": 5,
"text": 13,
"title": 2
},
"build_ms": 3,
"items": [
{
"id": "p37.1",
"order": 1,
"type": "title",
"bbox": {
"l": 28.08,
"t": 767.76,
"r": 255.36,
"b": 657.36
},
"text": "COMMUNITY GARDEN",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p37.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 0,
"t": 767,
"r": 306,
"b": 592
},
"text": "",
"attrs": {
"source": "pdf_image"
}
},
{
"id": "p37.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 30,
"t": 642.72,
"r": 301.44,
"b": 461.04
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p37.4",
"order": 4,
"type": "text",
"bbox": {
"l": 33.12,
"t": 440.4,
"r": 294.48,
"b": 305.28
},
"text": "The Villa Verde Rooftop Community Garden is hosted by the City of Pasadena's Parks, Recreation and Community Services Department and was created with the support of the City of Pasadena. The community garden aligns with the Department's mission to preserve and improve the physical, social, and economic health of Pasadena neighborhoods by delivering inclusive, innovative, and progressive recreational and community service programs. The garden is a 501(c)(3) nonprofit organization and a member of the Los Angeles Community Garden Council, which provides administrative support to a large network of community gardens in Los Angeles County."
},
{
"id": "p37.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 33.84,
"t": 296.64,
"r": 153.6,
"b": 281.52
},
"text": "GARDEN HOURS:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p37.6",
"order": 6,
"type": "text",
"bbox": {
"l": 34.08,
"t": 277.92,
"r": 127.44,
"b": 243.36
},
"text": "Mon - Fri · 8AM-5PM\nSat · 8AM-4PM\nSun · Closed"
},
{
"id": "p37.7",
"order": 7,
"type": "text",
"bbox": {
"l": 33.12,
"t": 234.24,
"r": 241.92,
"b": 198.96
},
"text": "For more information, please call the Villa Parke Community Center at (626) 744-6530 or email VillaVerdeGarden@gmail.com."
},
{
"id": "p37.8",
"order": 8,
"type": "heading",
"bbox": {
"l": 33.6,
"t": 182.4,
"r": 265.68,
"b": 166.56
},
"text": "OPPORTUNITIES AT THE GARDEN",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p37.9",
"order": 9,
"type": "text",
"bbox": {
"l": 32.88,
"t": 162.72,
"r": 299.76,
"b": 127.44
},
"text": "Become a member of a vibrant community and learn to grow your own food! Garden plot member fees are only $3-$6 per month. Please send inquires to VillaVerdeGarden@gmail.com."
},
{
"type": "list",
"bbox": {
"l": 324.36,
"t": 146.52,
"r": 587.52,
"b": 118.8
},
"text": "",
"attrs": {
"item_count": 2,
"source": "ai_vision"
},
"children": [
{
"type": "list_item",
"bbox": {
"l": 324.36,
"t": 146.52,
"r": 575.28,
"b": 132.26
},
"text": "•\t11-30 Calendar days prior to reservation: 80% refund",
"attrs": {
"source": "ai_vision",
"reason": "Bulleted refund breakdown row not covered by any extracted item."
},
"children": [],
"order": 11,
"id": "p37.10.1"
},
{
"type": "list_item",
"bbox": {
"l": 324.36,
"t": 132.26,
"r": 587.52,
"b": 118.8
},
"text": "•\t0-10 Calendar days prior to reservation: Forfeit all fees",
"attrs": {
"source": "ai_vision",
"reason": "Bulleted refund breakdown row not covered by any extracted item."
},
"children": [],
"order": 12,
"id": "p37.10.2"
}
],
"order": 10,
"id": "p37.10"
},
{
"id": "p37.11",
"order": 13,
"type": "heading",
"bbox": {
"l": 33.36,
"t": 118.8,
"r": 239.76,
"b": 103.44
},
"text": "VOLUNTEER OPPORTUNITIES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p37.12",
"order": 14,
"type": "text",
"bbox": {
"l": 32.88,
"t": 98.88,
"r": 300.72,
"b": 42.72
},
"text": "Interested in helping us grow? As a volunteer organization, we rely heavily on volunteers to help us accomplish our mission. We welcome all skill levels and both short-term or long-term commitments. Interested parties, please send an email to VillaVerdeGarden@gmail.com."
},
{
"id": "p37.13",
"order": 15,
"type": "title",
"bbox": {
"l": 322.32,
"t": 751.68,
"r": 565.68,
"b": 701.52
},
"text": "PASADENA PARKS, RECREATION AND COMMUNITY SERVICES REFUND POLICY",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p37.14",
"order": 16,
"type": "text",
"bbox": {
"l": 322.08,
"t": 690,
"r": 575.28,
"b": 599.04
},
"text": "Program/Activity Registrations/Aquatics\nRefunds must be requested in writing at least ten (10) calendar days prior to the activity/program start date. A customer receipt must accompany the refund request, and a 20% administrative charge may be deducted. Failure to cancel prior to ten (10) calendar days from the activity/program start date will forfeit all paid fees."
},
{
"id": "p37.15",
"order": 17,
"type": "text",
"bbox": {
"l": 322.32,
"t": 590.16,
"r": 574.8,
"b": 511.68
},
"text": "Afterschool Program\nRefunds must be requested in writing, and received by the Afterschool Adventures Program office prior to the week and/or month that the child(ren) will not attend. A 20% administrative charge may be deducted. Failure to cancel prior will forfeit all paid fees."
},
{
"id": "p37.16",
"order": 18,
"type": "text",
"bbox": {
"l": 322.56,
"t": 500.88,
"r": 574.8,
"b": 423.36
},
"text": "Summer Camp\nRefunds must be requested in writing, and received by the Summer Camp Program office prior to the week and/or month that the child(ren) will not attend. A 20% administrative charge may be deducted. Failure to cancel prior will forfeit all paid fees."
},
{
"id": "p37.17",
"order": 19,
"type": "text",
"bbox": {
"l": 323.04,
"t": 414.72,
"r": 473.52,
"b": 390
},
"text": "Memberships\nAll membership sales are final."
},
{
"id": "p37.18",
"order": 20,
"type": "text",
"bbox": {
"l": 322.8,
"t": 381.36,
"r": 548.16,
"b": 346.08
},
"text": "Point-of-Sale\nNo refunds provided once services have been rendered."
},
{
"id": "p37.19",
"order": 21,
"type": "text",
"bbox": {
"l": 322.32,
"t": 336.96,
"r": 570.24,
"b": 270.72
},
"text": "Facility Reservations/Permits\nThe individual to whom the permit was issued is required to notify the Facility Reservations Desk or Special Events Office in writing of any cancellation. Notification provided to the Reservation Desk shall be by one of the following methods:"
},
{
"id": "p37.20",
"order": 22,
"type": "list",
"bbox": {
"l": 361.08,
"t": 269.6151,
"r": 546.400039,
"b": 248.92510000000004
},
"text": "",
"attrs": {
"item_count": 2
},
"children": [
{
"id": "p37.20.1",
"order": 23,
"type": "list_item",
"bbox": {
"l": 361.08,
"t": 269.6151,
"r": 546.400039,
"b": 259.92510000000004
},
"text": "1. Email: RsvDesk@CityOfPasadena.net"
},
{
"id": "p37.20.2",
"order": 24,
"type": "list_item",
"bbox": {
"l": 361.08,
"t": 258.6151,
"r": 524.820673,
"b": 248.92510000000004
},
"text": "2. In-Person Delivery: Victory Park, 2575 Paloma St., Pasadena, CA 91107."
}
]
},
{
"id": "p37.21",
"order": 25,
"type": "text",
"bbox": {
"l": 323.04,
"t": 228,
"r": 578.64,
"b": 148.08
},
"text": "Cancellation date will be the date the written notification is received by the Facility Reservations Desk or Special Events Office. The following is the breakdown of the refund:\n31+ Calendar days prior to reservation: 100% refund\n11-30 Calendar days prior to reservation: 80% refund\n0-10 Calendar days prior to reservation: Forfeit all fees",
"children": [
{
"type": "list_item",
"bbox": {
"l": 324.36,
"t": 162.36,
"r": 575.28,
"b": 146.52
},
"text": "•\t31+ Calendar days prior to reservation: 100% refund",
"attrs": {
"source": "ai_vision",
"reason": "Bulleted refund breakdown row not covered by any item (item #22 ends before the bullets)."
},
"children": [],
"order": 26,
"id": "p37.21.1"
}
]
},
{
"id": "p37.22",
"order": 27,
"type": "text",
"bbox": {
"l": 322.8,
"t": 128.16,
"r": 533.04,
"b": 93.12
},
"text": "For more information, please email ParksAndRec@CityOfPasadena.net or call (626) 744-4386."
},
{
"id": "p37.23",
"order": 28,
"type": "footer",
"bbox": {
"l": 409.2,
"t": 19.2,
"r": 593.52,
"b": 8.16
},
"text": "Spring/Summer I 2026 Recreation Guide 37",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 68,
"added": 3,
"retyped": 0
}
}
Page 38
45 item(s)
JSON
footer (1)
heading (13)
table (5)
table_cell (15)
text (10)
title (1)
1 · TITLE
2 · TEXT
3 · HEADING
4 · TEXT
5 · HEADING
6 · TEXT
7 · HEADING
8 · TEXT
9 · HEADING
10 · TABLE
11
12
13
14 · HEADING
15 · TABLE
16
17
18
19 · HEADING
20 · TEXT
21 · HEADING
22 · TEXT
23 · HEADING
24 · TEXT
25 · HEADING
26 · TABLE
27
28
29
30 · HEADING
31 · TEXT
32 · HEADING
33 · TABLE
34
35
36
37 · HEADING
38 · TABLE
39
40
41
42 · HEADING
43 · TEXT
44 · TEXT
45 · FOOTER
AI review
(claude-opus-5, conf 72%)
— Most content and reading order are captured correctly (headings, tables, footer), but item #48 contains spurious hallucinated characters, and the listing sections are modeled inconsistently (some tables, some flattened text, and the library section split into two parallel columns).
major
text_mismatch #48: Citywide Parks block contains garbage/hallucinated text at the start ('…… / / (1) / ') before the real 'Brookside Park ...' rows.
minor
other #121: The Pasadena Public Libraries list is split into two parallel text blocks (#121 names, #122 addresses/numbers) instead of one table/list; a consumer must re-pair rows, and 'Jefferson School Library' has no number in #122 which could shift the pairing.
minor
table_structure #6: Similar name/address/number listings are inconsistently modeled: some sections are tables with cells (#10, #30, #50, #69, #110) while others (#6, #8, #44, #46, #67) are collapsed into single text blocks, so structure is inconsistent across the page.
minor
text_mismatch #46: Charter Schools block text appears to omit the addresses/numbers shown in the image ('575 W. Altadena Dr. 32', etc.) in the visible portion, only listing names.
Page 38 JSON
{
"document_id": 267,
"page": 38,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 45,
"counts_by_type": {
"footer": 1,
"heading": 13,
"table": 5,
"table_cell": 15,
"text": 10,
"title": 1
},
"build_ms": 16,
"items": [
{
"id": "p38.1",
"order": 1,
"type": "title",
"bbox": {
"l": 124.56,
"t": 784.32,
"r": 468.96,
"b": 740.64
},
"text": "LOCATIONS OF FACILITIES",
"attrs": {
"block_label": "paragraph_title",
"ai_retyped_from": "heading",
"ai_reason": "This is the large page title 'LOCATIONS OF FACILITIES' at the top of the page, not a section heading."
}
},
{
"id": "p38.2",
"order": 2,
"type": "text",
"bbox": {
"l": 14.88,
"t": 733.44,
"r": 250.56,
"b": 697.68
},
"text": "ALL PARKS ARE OPEN FROM MON-SUN 6:00 A.M. - 10:00 P.M. OR DAWN TO DUSK. FOR MORE INFORMATION, PLEASE VISIT CITYOFPASADENA.NET/PARKS"
},
{
"id": "p38.3",
"order": 3,
"type": "heading",
"bbox": {
"l": 15.84,
"t": 688.08,
"r": 77.28,
"b": 673.44
},
"text": "PRE-SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.4",
"order": 4,
"type": "text",
"bbox": {
"l": 15.36,
"t": 671.28,
"r": 288.48,
"b": 658.08
},
"text": "Burbank Early Education Center 524 Palisade St. 1"
},
{
"id": "p38.5",
"order": 5,
"type": "heading",
"bbox": {
"l": 15.84,
"t": 649.44,
"r": 115.2,
"b": 634.32
},
"text": "ELEMENTARY SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.6",
"order": 6,
"type": "text",
"bbox": {
"l": 15.12,
"t": 631.92,
"r": 289.92,
"b": 423.36
},
"text": "Altadena Elementary School 743 E Calaveras St. 2\nCleveland Elementary School (Closed) 524 Palisade St. 3\nDon Benito Fundamental School 3700 Denair St. 4\nField Elementary School 3600 E Sierra Madre Blvd. 5\nFranklin Elementary School (Closed) 527 W Ventura St. 6\nHamilton Elementary School 2089 Rose Villa St. 7\nJackson Elementary School 593 W Woodbury Rd. 8\nJefferson Elementary School (Closed) 1500 E Villa St. 9\nLongfellow Elementary School 1065 E Washington Blvd. 10\nMadison Elementary School 515 Ashtabula St. 11\nNorma Coombs Elementary School 2600 Paloma St. 12\nRoosevelt Elementary School (Closed) 314 N Pasadena Ave. 13\nSan Rafael Elementary School 1090 Nithsdale Rd. 14\nOctavia E. Butler Magnet 1520 N Raymond Ave. 25\nWebster Elementary School 2101 E Washington Blvd. 16\nWillard Elementary School 301 S Madre St. 17"
},
{
"id": "p38.7",
"order": 7,
"type": "heading",
"bbox": {
"l": 16.08,
"t": 415.2,
"r": 74.88,
"b": 399.84
},
"text": "K-5 SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.8",
"order": 8,
"type": "text",
"bbox": {
"l": 15.12,
"t": 398.16,
"r": 289.92,
"b": 371.52
},
"text": "McKinley School 325 S. Oak Knoll Ave. 18\nSierra Madre Elementary School 141 W Highland Ave. 19",
"attrs": {
"block_label": "content"
}
},
{
"id": "p38.9",
"order": 9,
"type": "heading",
"bbox": {
"l": 16.08,
"t": 363.36,
"r": 90.96,
"b": 348.24
},
"text": "MIDDLE SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.10",
"order": 10,
"type": "table",
"bbox": {
"l": 14.64,
"t": 346.56,
"r": 290.4,
"b": 267.12
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 3,
"integrity": {
"cells_checked": 3,
"cells_flagged": 0
}
},
"children": [
{
"id": "p38.10.1",
"order": 11,
"type": "table_cell",
"bbox": {
"l": 18,
"t": 344.484,
"r": 136.759326,
"b": 270.236
},
"text": "Blair Inter. Baccalaureate School\nCharles W. Eliot Middle School\nMarshall Secondary School\nMcKinley Middle School\nSierra Madre Middle School\nOctavia E. Butler Magnet",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.10.2",
"order": 12,
"type": "table_cell",
"bbox": {
"l": 177.998349,
"t": 344.484,
"r": 255.559574,
"b": 270.236
},
"text": "1201 S Marengo Ave.\n2184 N Lake Ave.\n990 N Allen Ave.\n325 S. Oak Knoll Ave.\n160 N. Canon Ave.\n1505 N Marengo Ave.",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.10.3",
"order": 13,
"type": "table_cell",
"bbox": {
"l": 277.934261,
"t": 344.484,
"r": 286.998953,
"b": 270.236
},
"text": "20\n21\n22\n23\n24\n25",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p38.11",
"order": 14,
"type": "heading",
"bbox": {
"l": 15.84,
"t": 259.44,
"r": 79.44,
"b": 244.32
},
"text": "HIGH SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.12",
"order": 15,
"type": "table",
"bbox": {
"l": 15.12,
"t": 242.64,
"r": 290.16,
"b": 189.6
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 3,
"integrity": {
"cells_checked": 3,
"cells_flagged": 0
}
},
"children": [
{
"id": "p38.12.1",
"order": 16,
"type": "table_cell",
"bbox": {
"l": 18,
"t": 240.48400000000004,
"r": 136.759326,
"b": 192.236
},
"text": "Blair Inter. Baccalaureate School\nMarshall Secondary School\nJohn Muir High School\nPasadena High School",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.12.2",
"order": 17,
"type": "table_cell",
"bbox": {
"l": 177.998349,
"t": 240.48400000000004,
"r": 271.262048,
"b": 192.236
},
"text": "1201 S Marengo Ave.\n990 N Allen Ave.\n1905 N Lincoln Ave.\n2925 E Sierra Madre Blvd.",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.12.3",
"order": 18,
"type": "table_cell",
"bbox": {
"l": 277.934261,
"t": 240.48400000000004,
"r": 286.999072,
"b": 192.236
},
"text": "20\n22\n28\n29",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p38.13",
"order": 19,
"type": "heading",
"bbox": {
"l": 16.32,
"t": 181.44,
"r": 115.2,
"b": 166.08
},
"text": "ALTERNATIVE SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.14",
"order": 20,
"type": "text",
"bbox": {
"l": 15.12,
"t": 163.92,
"r": 289.68,
"b": 137.28
},
"text": "CIS Academy 2925 E Sierra Madre Blvd. 29\nRose City High School 351 S. Hudson Ave. 31\nBrookside Park 360 North Arroyo Blvd. 36\nHahamongna Park Oak Grove Dr & Foothill Blvd. 37\nLower Arroyo Seco South of 134 Freeway 38"
},
{
"id": "p38.15",
"order": 21,
"type": "heading",
"bbox": {
"l": 16.08,
"t": 128.88,
"r": 97.92,
"b": 114
},
"text": "CHARTER SCHOOLS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.16",
"order": 22,
"type": "text",
"bbox": {
"l": 14.88,
"t": 112.32,
"r": 289.92,
"b": 59.52
},
"text": "Aveson Charter School\nLearning Works! Charter School\nOdyssey Charter School\nPasadena Rosebud Academy\n575 W. Altadena Dr.\n90 N. Daisy Ave.\n725 West Altadena Drive\n3544 Canon Blvd\n32\n33\n34\n35",
"attrs": {
"block_label": "content"
}
},
{
"id": "p38.17",
"order": 23,
"type": "heading",
"bbox": {
"l": 304.08,
"t": 734.64,
"r": 378,
"b": 718.32
},
"text": "CITYWIDE PARKS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.18",
"order": 24,
"type": "text",
"bbox": {
"l": 302.88,
"t": 717.6,
"r": 577.92,
"b": 677.52
},
"text": "……\n\n(1)\n\nBrookside Park 360 North Arroyo Blvd. 36\nHahamongna Park Oak Grove Dr & Foothill Blvd. 37\nLower Arroyo Seco South of 134 Freeway 38"
},
{
"id": "p38.19",
"order": 25,
"type": "heading",
"bbox": {
"l": 304.08,
"t": 669.84,
"r": 388.32,
"b": 654.24
},
"text": "COMMUNITY PARKS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.20",
"order": 26,
"type": "table",
"bbox": {
"l": 302.64,
"t": 652.8,
"r": 578.4,
"b": 586.32
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 3,
"integrity": {
"cells_checked": 3,
"cells_flagged": 0
}
},
"children": [
{
"id": "p38.20.1",
"order": 27,
"type": "table_cell",
"bbox": {
"l": 306,
"t": 650.504,
"r": 358.991444,
"b": 589.256
},
"text": "Central Park\nMemorial Park\nRobinson Park\nVictory Park\nVilla Parke",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.20.2",
"order": 28,
"type": "table_cell",
"bbox": {
"l": 443.999793,
"t": 650.504,
"r": 535.223242,
"b": 589.256
},
"text": "275 South Raymond Ave.\n85 East Holly\n1081 North Fair Oak Ave.\n2575 Paloma St.\n363 East Villa St.",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.20.3",
"order": 29,
"type": "table_cell",
"bbox": {
"l": 565.735521,
"t": 650.504,
"r": 575.000245,
"b": 589.256
},
"text": "39\n40\n41\n42\n43",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p38.21",
"order": 30,
"type": "heading",
"bbox": {
"l": 304.08,
"t": 578.88,
"r": 441.12,
"b": 562.8
},
"text": "POCKET / MINI PARKS / GARDEN",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.22",
"order": 31,
"type": "text",
"bbox": {
"l": 303.6,
"t": 561.12,
"r": 577.68,
"b": 443.76
},
"text": "Defenders Park 450 W. Colorado Blvd. 44\nEaton Sunnyslope Park Sunnyslope Ave & Paloma St. 45\nGwinn Park 3000 E. Orange Grove Blvd. 46\nLamanda Park Library Pocket Park 140 South Altadena Dr. 73\nLinda Vista Park 1259 Linda Vista Ave 47\nSan Rafael Park Colorado Blvd & Melrose Ave. 48\nPlayhouse Village Park 710 E. Union St. 49\nWrigley Gardens 391 South Orange Grove Blvd. 50\nTournament Park Wilson and Cornell Road 51"
},
{
"id": "p38.23",
"order": 32,
"type": "heading",
"bbox": {
"l": 304.08,
"t": 435.36,
"r": 402,
"b": 419.76
},
"text": "NEIGHBORHOOD PARKS",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.24",
"order": 33,
"type": "table",
"bbox": {
"l": 302.4,
"t": 418.8,
"r": 578.64,
"b": 247.92
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 3,
"integrity": {
"cells_checked": 3,
"cells_flagged": 0
}
},
"children": [
{
"id": "p38.24.1",
"order": 34,
"type": "table_cell",
"bbox": {
"l": 306,
"t": 416.504,
"r": 415.294295,
"b": 251.25599999999997
},
"text": "Annandale Canyon Park\nAllendale Park\nBrenner Park\nEaton Blanche Park\nDesiderio Neighborhood Park\nGrant Park\nHamilton Park\nJefferson Park\nLa Pintoresca Park\nMcDonald Park\nSinger Park\nVina Vieja Park\nWashington Park",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.24.2",
"order": 35,
"type": "table_cell",
"bbox": {
"l": 443.999155,
"t": 416.504,
"r": 543.230383,
"b": 251.25599999999997
},
"text": "1410 Wierfield Dr.\n1130 South Marengo\n235 West Barthe Dr.\n3100 East Del Mar Blvd.\n10 N Arroyo Blvd.\n232 South Michigan Ave.\n3680 Cartwright St.\n1501 East Villa St.\n45 East Washington Blvd.\n1100 East Mountain\n651 S. St. John Ave.\n3100 E. Orange Grove Blvd.\n700 E. Washington Blvd.",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.24.3",
"order": 36,
"type": "table_cell",
"bbox": {
"l": 565.278471,
"t": 416.504,
"r": 575.000461,
"b": 251.25599999999997
},
"text": "52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p38.25",
"order": 37,
"type": "heading",
"bbox": {
"l": 304.08,
"t": 240.24,
"r": 445.2,
"b": 224.64
},
"text": "CITY HALL AND OTHER FACILITIES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.26",
"order": 38,
"type": "table",
"bbox": {
"l": 303.12,
"t": 223.2,
"r": 577.68,
"b": 183.6
},
"text": "",
"attrs": {
"block_label": "table",
"n_rows": 1,
"n_cols": 3,
"integrity": {
"cells_checked": 3,
"cells_flagged": 0
}
},
"children": [
{
"id": "p38.26.1",
"order": 39,
"type": "table_cell",
"bbox": {
"l": 306,
"t": 221.50400000000002,
"r": 421.567717,
"b": 186.25599999999997
},
"text": "City Hall\nLa Casita del Arroyo Clubhouse\nPasadena Senior Center",
"attrs": {
"row": 0,
"col": 0,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.26.2",
"order": 40,
"type": "table_cell",
"bbox": {
"l": 443.999009,
"t": 221.50400000000002,
"r": 515.02277,
"b": 186.25599999999997
},
"text": "100 N. Garfield Ave.\n177 S. Arroyo Blvd.\n85 E. Holly",
"attrs": {
"row": 0,
"col": 1,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
},
{
"id": "p38.26.3",
"order": 41,
"type": "table_cell",
"bbox": {
"l": 565.35137,
"t": 221.50400000000002,
"r": 574.99937,
"b": 186.25599999999997
},
"text": "65\n66\n67",
"attrs": {
"row": 0,
"col": 2,
"rowspan": 1,
"colspan": 1,
"bbox_refit": true,
"merged_continuation": true
}
}
]
},
{
"id": "p38.27",
"order": 42,
"type": "heading",
"bbox": {
"l": 303.84,
"t": 175.68,
"r": 428.64,
"b": 160.32
},
"text": "PASADENA PUBLIC LIBRARIES",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p38.28",
"order": 43,
"type": "text",
"bbox": {
"l": 303.6,
"t": 157.44,
"r": 421.92,
"b": 27.84
},
"text": "Jefferson School Library\nAllendale Branch Library\nHastings Branch Library\nHill Avenue Branch Library\nLa Pintoresca Branch Library\nLamanda Park Branch Library\nLinda Vista Branch Library\nSan Rafael Branch Library\nSanta Catalina Branch Library\nVilla Parke Branch Library\n450 W. Colorado Blvd. 44\nSunnyslope Ave & Paloma St. 45\n3000 E. Orange Grove Blvd. 46\n140 South Altadena Dr. 73\n1259 Linda Vista Ave. 47\nColorado Blvd & Melrose Ave. 48\n710 E. Union St. 49\n391 South Orange Grove Blvd. 50\nWilson and Cornell Road 51"
},
{
"id": "p38.29",
"order": 44,
"type": "text",
"bbox": {
"l": 441.6,
"t": 157.68,
"r": 577.92,
"b": 27.36
},
"text": "1500 East Villa Street.\n1130 South Marengo Ave. 69\n3325 E. Orange Grove Blvd. 70\n55 South Hill Ave. 71\n1355 North Raymond Ave. 72\n140 South Altadena Dr. 73\n1281 Bryant St. 74\n1240 Nithsdale Rd. 75\n999 E. Washington Blvd. 76\n363 East Villa St. 77"
},
{
"id": "p38.30",
"order": 45,
"type": "footer",
"bbox": {
"l": 31.44,
"t": 20.4,
"r": 218.16,
"b": 7.44
},
"text": "38 Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 1
}
}
Page 39
4 item(s)
JSON
figure (1)
footer (2)
title (1)
1 · FOOTER
2 · FIGURE
3 · TITLE
4 · FOOTER ·✨
AI review
(claude-opus-5, conf 88%)
— The page's four content elements (title, map figure, footer) are all detected, but the coordinates appear vertically flipped and the reading order is reversed, putting the footer first and the top title last.
major
reading_order #4: Reading order is inverted: the title "CITY OF PASADENA MAP" (#4) appears at the top of the page but is listed last, while the footer (#1) is listed first. Correct order should be title, figure(s), footer.
major
wrong_bbox #4: Title bounding box (23,93,75,98) places the title at the bottom of the page; in the image the title spans roughly (25,2,76,7) at the top. Coordinates appear to be flipped vertically (measured from bottom instead of top).
major
wrong_bbox #1: Footer bbox (3,1,33,3) is at the top-left; the actual footer text "Spring/Summer I 2026 Recreation Guide 39" is at the bottom-right, approx (67,97,98,99).
major
wrong_bbox #3: Map figure bbox (3,5,90,91) does not match the map, which occupies roughly (4,9,97,95) of the page; also appears vertically flipped/offset.
minor
other #2: Figure #2 at (94,3,101,9) extends past the right page edge and does not correspond to any visible content in that region (likely a mis-placed/decorative element).
Page 39 JSON
{
"document_id": 267,
"page": 39,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 4,
"counts_by_type": {
"figure": 1,
"footer": 2,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p39.1",
"order": 1,
"type": "footer",
"bbox": {
"l": 18.72,
"t": 784.32,
"r": 203.52,
"b": 772.08
},
"text": "Spring/Summer I 2026 Recreation Guide 39",
"attrs": {
"block_label": "vision_footnote",
"ai_retyped_from": "header",
"ai_reason": "The 'Spring/Summer I 2026 Recreation Guide 39' line appears at the bottom of the page, so it is a footer, not a header."
}
},
{
"id": "p39.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 18.24,
"t": 756,
"r": 550.32,
"b": 71.04
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p39.3",
"order": 3,
"type": "title",
"bbox": {
"l": 143.04,
"t": 54.96,
"r": 457.44,
"b": 14.64
},
"text": "CITY OF PASADENA MAP",
"attrs": {
"block_label": "aside_text",
"ai_retyped_from": "text",
"ai_reason": "Large centered text at the very top of the page is the document title, not body text (and its coordinates are wrong/bottom-placed)."
}
},
{
"type": "footer",
"bbox": {
"l": 403.92,
"t": 39.6,
"r": 599.76,
"b": 15.84
},
"text": "Spring/Summer I 2026 Recreation Guide 39",
"attrs": {
"source": "ai_vision",
"reason": "Footer text at bottom right of page is not covered; item #1 is placed at top-left coordinates instead."
},
"children": [],
"order": 4,
"id": "p39.4"
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 80,
"added": 1,
"retyped": 2
}
}
Page 40
14 item(s)
JSON
figure (4)
footer (1)
footnote (4)
heading (1)
text (3)
title (1)
1 · TITLE
2 · HEADING
3 · FIGURE
4 · FIGURE
5 · FIGURE
6 · FIGURE
7 · TEXT
8 · TEXT
9 · TEXT
10 · FOOTNOTE
11 · FOOTNOTE
12 · FOOTNOTE
13 · FOOTNOTE
14 · FOOTER
AI review
(claude-opus-5, conf 80%)
— All page content is captured with correct types and boxes; the only issue is that the four image captions (#10–#13) are placed at the end of the item list instead of interleaved after their respective figures.
minor
reading_order #10: Captions #10–#13 belong immediately after their respective figures (#3–#6); placing them after the body text #8/#9 breaks natural reading order.
minor
wrong_type #10: Image labels (#10–#13) are typed as 'footnote'; they are captions for the figures above them.
Page 40 JSON
{
"document_id": 267,
"page": 40,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 14,
"counts_by_type": {
"figure": 4,
"footer": 1,
"footnote": 4,
"heading": 1,
"text": 3,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p40.1",
"order": 1,
"type": "title",
"bbox": {
"l": 101.28,
"t": 775.44,
"r": 506.4,
"b": 672
},
"text": "PARK & FACILITY\nRESERVATIONS",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p40.2",
"order": 2,
"type": "heading",
"bbox": {
"l": 175.2,
"t": 648.24,
"r": 435.84,
"b": 624
},
"text": "FIND A VENUE FOR YOUR NEXT EVENT",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p40.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 54.96,
"t": 613.2,
"r": 298.08,
"b": 474.24
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p40.4",
"order": 4,
"type": "figure",
"bbox": {
"l": 309.36,
"t": 607.44,
"r": 553.44,
"b": 476.16
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p40.5",
"order": 5,
"type": "figure",
"bbox": {
"l": 54.72,
"t": 441.6,
"r": 298.56,
"b": 302.64
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p40.6",
"order": 6,
"type": "figure",
"bbox": {
"l": 309.6,
"t": 441.36,
"r": 554.64,
"b": 305.52
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p40.7",
"order": 7,
"type": "text",
"bbox": {
"l": 144.24,
"t": 276.48,
"r": 476.16,
"b": 255.36
},
"text": "SUBMIT YOUR REQUEST AT CITYOFPASADENA.NET/RESERVE"
},
{
"id": "p40.8",
"order": 8,
"type": "text",
"bbox": {
"l": 31.92,
"t": 214.08,
"r": 574.08,
"b": 161.76
},
"text": "Reserve a facility for your meetings, parties and celebrations. From the historical La Casita Del Arroyo to the Robinson Park Recreation Center, we have space to meet your needs."
},
{
"id": "p40.9",
"order": 9,
"type": "text",
"bbox": {
"l": 31.68,
"t": 146.4,
"r": 570.48,
"b": 95.52
},
"text": "For more information on available options and requirements, contact the Reservation Desk at (626) 744-7500 or by email at rsvdesk@cityofpasasdena.net. Reservations can also be submitted online at CityOfPasadena.net/Reserve."
},
{
"id": "p40.10",
"order": 10,
"type": "footnote",
"bbox": {
"l": 87.84,
"t": 472.32,
"r": 264,
"b": 455.04
},
"text": "LA CASITA DEL ARROYO",
"attrs": {
"block_label": "vision_footnote"
}
},
{
"id": "p40.11",
"order": 11,
"type": "footnote",
"bbox": {
"l": 327.36,
"t": 472.32,
"r": 542.88,
"b": 454.8
},
"text": "ROBINSON PARK REC CENTER",
"attrs": {
"block_label": "vision_footnote"
}
},
{
"id": "p40.12",
"order": 12,
"type": "footnote",
"bbox": {
"l": 102.96,
"t": 301.92,
"r": 247.68,
"b": 284.4
},
"text": "VICTORY PARK GYM",
"attrs": {
"block_label": "vision_footnote"
}
},
{
"id": "p40.13",
"order": 13,
"type": "footnote",
"bbox": {
"l": 322.32,
"t": 301.68,
"r": 540,
"b": 287.52
},
"text": "JACKIE ROBINSON COMMUNITY CENTER",
"attrs": {
"block_label": "vision_footnote"
}
},
{
"id": "p40.14",
"order": 14,
"type": "footer",
"bbox": {
"l": 32.4,
"t": 19.44,
"r": 218.64,
"b": 8.4
},
"text": "40 Spring/Summer I 2026 Recreation Guide",
"attrs": {
"block_label": "footer"
}
}
]
}
Page 41
9 item(s)
JSON
figure (2)
text (6)
title (1)
1 · FIGURE
2 · TITLE
3 · TEXT
4 · TEXT
5 · TEXT
6 · TEXT
7 · FIGURE
8
9
AI review: page OK
(claude-opus-5, conf 78%)
— All visible content on the flyer is captured with correct reading order and sensible types; only minor structural merges (side-by-side location blocks and a bold lead-in line) are debatable.
minor
other #5: The two location blocks (Villa Parke and Victory Park) are side-by-side columns but are merged into a single text item; splitting them into two items would better preserve the two-column structure.
minor
other #3: 'Buy Fresh ... Eat Local!' is a bold heading line merged into the following paragraph; could be a separate heading item.
Page 41 JSON
{
"document_id": 267,
"page": 41,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 9,
"counts_by_type": {
"figure": 2,
"text": 6,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p41.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 0,
"t": 788.16,
"r": 612,
"b": 418.32
},
"text": "",
"attrs": {
"block_label": "image",
"embedded_text": "T"
}
},
{
"id": "p41.2",
"order": 2,
"type": "title",
"bbox": {
"l": 130.32,
"t": 690,
"r": 467.52,
"b": 569.28
},
"text": "PASADENA\nCERTIFIED FARMERS' MARKET",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p41.3",
"order": 3,
"type": "text",
"bbox": {
"l": 23.28,
"t": 409.68,
"r": 495.6,
"b": 336.48
},
"text": "Buy Fresh ... Eat Local!\nSelling California fruits, vegetables, plants, flowers, honey, cheeses, baked goods, and more!"
},
{
"id": "p41.4",
"order": 4,
"type": "text",
"bbox": {
"l": 23.52,
"t": 305.52,
"r": 362.16,
"b": 283.44
},
"text": "2 convenient locations, rain or shine!"
},
{
"id": "p41.5",
"order": 5,
"type": "text",
"bbox": {
"l": 21.84,
"t": 272.4,
"r": 593.28,
"b": 198.96
},
"text": "Villa Parke\n363 E. Villa St.\nTuesdays, 8:30 a.m. - 1:00 p.m.\nVictory Park\n2925 E. Sierra Madre Blvd.\nSaturdays, 8:30 a.m. - 1:00 p.m."
},
{
"id": "p41.6",
"order": 6,
"type": "text",
"bbox": {
"l": 116.88,
"t": 154.56,
"r": 485.52,
"b": 124.8
},
"text": "PasadenaFarmersMarket.org"
},
{
"id": "p41.7",
"order": 7,
"type": "figure",
"bbox": {
"l": 138.24,
"t": 102.72,
"r": 459.12,
"b": 51.12
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p41.7.1",
"order": 8,
"type": "text",
"bbox": {
"l": 189.6,
"t": 103.44,
"r": 458.88,
"b": 62.64
},
"text": "PASADENA"
},
{
"id": "p41.7.2",
"order": 9,
"type": "text",
"bbox": {
"l": 190.56,
"t": 64.56,
"r": 458.88,
"b": 51.36
},
"text": "PARKS · RECREATION · COMMUNITY SERVICES"
}
]
}
]
}
Page 42
15 item(s)
JSON
figure (5)
footer (1)
text (8)
title (1)
1 · TEXT
2 · FIGURE
3 · TEXT
4 · FIGURE
5
6
7
8 · TEXT
9 · TEXT
10 · FIGURE
11
12 · FIGURE
13
14 · FOOTER
15 · FIGURE
AI review
(claude-opus-5, conf 70%)
—
Page 42 JSON
{
"document_id": 267,
"page": 42,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 15,
"counts_by_type": {
"figure": 5,
"footer": 1,
"text": 8,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p42.1",
"order": 1,
"type": "text",
"bbox": {
"l": 179.52,
"t": 771.12,
"r": 443.76,
"b": 728.4
},
"text": "PASADENA\nPARKS · RECREATION · COMMUNITY SERVICES"
},
{
"id": "p42.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 179.28,
"t": 769.44,
"r": 219.12,
"b": 730.8
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p42.3",
"order": 3,
"type": "text",
"bbox": {
"l": 242.88,
"t": 691.68,
"r": 379.44,
"b": 657.84
},
"text": "15^{TH} ANNUAL"
},
{
"id": "p42.4",
"order": 4,
"type": "figure",
"bbox": {
"l": 77.52,
"t": 639.84,
"r": 558.48,
"b": 305.04
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p42.4.1",
"order": 5,
"type": "title",
"bbox": {
"l": 129.6,
"t": 643.68,
"r": 503.76,
"b": 495.6
},
"text": "PARKS",
"attrs": {
"ai_retyped_from": "text",
"ai_reason": "'PARKS' is the main poster title, not body text"
}
},
{
"id": "p42.4.2",
"order": 6,
"type": "text",
"bbox": {
"l": 114.24,
"t": 482.4,
"r": 508.08,
"b": 398.4
},
"text": "After Dark"
},
{
"id": "p42.4.3",
"order": 7,
"type": "text",
"bbox": {
"l": 83.52,
"t": 375.6,
"r": 560.4,
"b": 313.68
},
"text": "JULY 9 - AUGUST 8, 2026"
}
]
},
{
"id": "p42.5",
"order": 8,
"type": "text",
"bbox": {
"l": 50.88,
"t": 293.04,
"r": 569.04,
"b": 172.32
},
"text": "FREE ACTIVITIES FOR ALL AGES!\nSPORTS, MOVIES, RECREATION SWIM, CONCERTS, ARTS & CRAFTS AND MORE!\nFOR MORE INFORMATION, PLEASE VISIT\nCITYOFPASADENA.NET/PARKS-AND-REC OR CALL (626) 744-6530."
},
{
"id": "p42.6",
"order": 9,
"type": "text",
"bbox": {
"l": 42.96,
"t": 162.72,
"r": 106.56,
"b": 143.52
},
"text": "FOLLOW US!"
},
{
"id": "p42.7",
"order": 10,
"type": "figure",
"bbox": {
"l": 33.84,
"t": 142.08,
"r": 135.12,
"b": 84.72
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p42.7.1",
"order": 11,
"type": "text",
"bbox": {
"l": 34.32,
"t": 99.6,
"r": 135.6,
"b": 85.2
},
"text": "@PASADENAPARKSANDREC"
}
]
},
{
"id": "p42.8",
"order": 12,
"type": "figure",
"bbox": {
"l": 262.8,
"t": 101.28,
"r": 590.88,
"b": 22.56
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p42.8.1",
"order": 13,
"type": "text",
"bbox": {
"l": 332.4,
"t": 48.48,
"r": 417.12,
"b": 24.96
},
"text": "LPTEC LA PINTORESCA TEEN EDUCATION CENTER"
}
]
},
{
"id": "p42.9",
"order": 14,
"type": "footer",
"bbox": {
"l": 39.36,
"t": 64.32,
"r": 62.88,
"b": 33.36
},
"text": "",
"attrs": {
"block_label": "footer_image"
}
},
{
"id": "p42.10",
"order": 15,
"type": "figure",
"bbox": {
"l": 433.68,
"t": 52.32,
"r": 589.92,
"b": 24.48
},
"text": "",
"attrs": {
"block_label": "footer_image",
"ai_retyped_from": "footer",
"ai_reason": "The Pasadena city logo/wordmark is an image, not a footer text block"
}
}
],
"ai_vision": {
"model": "claude-opus-5",
"confidence": 72,
"added": 0,
"retyped": 2
}
}
Page 43
11 item(s)
JSON
figure (3)
heading (1)
text (6)
title (1)
1 · FIGURE
2 · FIGURE
3 · TITLE
4 · TEXT
5 · TEXT
6 · FIGURE
7
8
9
10
11
AI review
(claude-opus-5, conf 78%)
— All textual content of the flyer is captured with accurate text and largely correct structure; issues are limited to a spurious empty figure, a missing QR-code figure, and minor type/order quibbles in the lower half.
minor
missing_item #8: The QR code image (approx. 73-90% x, 79-92% y) inside the blue panel is not captured as a separate figure item.
minor
other #4: Item #4 is a degenerate/zero-width figure box (0,0,0,100) with no content — likely a spurious item.
minor
wrong_bbox #1: Items #1, #2, #3 are overlapping generic background/decoration figures with imprecise boxes; #3 spans the whole top half.
minor
wrong_type #11: "STAY IN FOCUS" is a large display headline and would be better typed as a title/heading rather than plain text.
minor
reading_order #10: Reading order places the right-column blue panel text (#10) before the large left "STAY IN FOCUS" headline (#11); a reader would read the left column headline first.
Page 43 JSON
{
"document_id": 267,
"page": 43,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 11,
"counts_by_type": {
"figure": 3,
"heading": 1,
"text": 6,
"title": 1
},
"build_ms": 0,
"items": [
{
"id": "p43.1",
"order": 1,
"type": "figure",
"bbox": {
"l": 397.2,
"t": 792,
"r": 593.04,
"b": 704.4
},
"text": "",
"attrs": {
"role": "page_header",
"block_label": "header_image"
}
},
{
"id": "p43.2",
"order": 2,
"type": "figure",
"bbox": {
"l": 99.12,
"t": 792,
"r": 598.8,
"b": 704.16
},
"text": "",
"attrs": {
"block_label": "image"
}
},
{
"id": "p43.3",
"order": 3,
"type": "title",
"bbox": {
"l": 91.2,
"t": 698.88,
"r": 533.04,
"b": 594.48
},
"text": "Robinson Park Youth\nCommunity Room\n1081 N. Fair Oaks Ave., Pasadena",
"attrs": {
"block_label": "doc_title"
}
},
{
"id": "p43.4",
"order": 4,
"type": "text",
"bbox": {
"l": 60.72,
"t": 575.76,
"r": 552.48,
"b": 493.44
},
"text": "Robinson Park Youth Community Room provides middle and high school teens with a perfect atmosphere to interact, get involved, and hang out. Stop by to watch TV and play video games, play board games, or borrow sports equipment. Programs and activities are held daily! For more information, call (626) 744-7330."
},
{
"id": "p43.5",
"order": 5,
"type": "text",
"bbox": {
"l": 150.96,
"t": 482.64,
"r": 457.2,
"b": 425.76
},
"text": "Open Monday - Thursday from 3 - 7 p.m.\nFriday from 3 - 5 p.m.\nSaturday from 11 a.m. - 3 p.m."
},
{
"id": "p43.6",
"order": 6,
"type": "figure",
"bbox": {
"l": 3.36,
"t": 366.48,
"r": 612,
"b": 9.6
},
"text": "",
"attrs": {
"block_label": "image",
"embedded_text": "Spring/Summer I 2026 Recreation Guide 43"
},
"children": [
{
"id": "p43.6.1",
"order": 7,
"type": "text",
"bbox": {
"l": 41.52,
"t": 319.68,
"r": 226.56,
"b": 287.52
},
"text": "PASADENA CALIFORNIA · WWW.CITYOFPASADENA.NET"
},
{
"id": "p43.6.2",
"order": 8,
"type": "text",
"bbox": {
"l": 423.84,
"t": 296.4,
"r": 568.32,
"b": 192.48
},
"text": "VIEW AND SIGN UP\nTODAY BY VISITING:\n\nCityOfPasadena.net/PIF\n\nOR"
},
{
"id": "p43.6.3",
"order": 9,
"type": "text",
"bbox": {
"l": 34.08,
"t": 268.32,
"r": 254.64,
"b": 146.4
},
"text": "STAY IN FOCUS"
},
{
"id": "p43.6.4",
"order": 10,
"type": "heading",
"bbox": {
"l": 458.16,
"t": 187.68,
"r": 532.08,
"b": 171.36
},
"text": "SCAN HERE:",
"attrs": {
"block_label": "paragraph_title"
}
},
{
"id": "p43.6.5",
"order": 11,
"type": "text",
"bbox": {
"l": 38.64,
"t": 123.12,
"r": 348.48,
"b": 49.2
},
"text": "The latest issue of Pasadena In Focus is here!\nYour seasonal guide to City news, events, and resources, now available as both our newsletter and the Pasadena In Focus Talk Show.\nVIEW AND SIGN UP\nTODAY BY VISITING:\nCityOfPasadena.net/PIF\nOR"
}
]
}
]
}
Page 44
4 item(s)
JSON
figure (1)
text (3)
1 · TEXT
2 · TEXT
3 · FIGURE
4
AI review: page OK
(claude-opus-5, conf 80%)
— The back-cover page contains only two text blocks and the Pasadena logo, all of which were captured with correct types and reading order. Only minor issues: possible truncation of the first line's text and a slightly tight logo bounding box.
minor
text_mismatch #1: Text appears truncated with an ellipsis ("...RECREATION GUI…"); the full line should read "SPRING/SUMMER RECREATION GUIDE 2026". This may just be display truncation.
minor
wrong_bbox #3: Logo figure box (29,88,69,93) is slightly tight/offset relative to the visible Pasadena logo, which spans roughly x 30-69, y 86-94.
Page 44 JSON
{
"document_id": 267,
"page": 44,
"width_pt": 612,
"height_pt": 792,
"engine": "paddleocr_vl",
"source_run_id": 392,
"item_count": 4,
"counts_by_type": {
"figure": 1,
"text": 3
},
"build_ms": 0,
"items": [
{
"id": "p44.1",
"order": 1,
"type": "text",
"bbox": {
"l": 78.96,
"t": 198.72,
"r": 553.44,
"b": 172.8
},
"text": "THE CITY OF PASADENA PARKS RECREATION AND COMMUNITY SERVICES SPRING/SUMMER RECREATION GUIDE 2026"
},
{
"id": "p44.2",
"order": 2,
"type": "text",
"bbox": {
"l": 170.16,
"t": 162,
"r": 464.64,
"b": 137.52
},
"text": "PRODUCED BY THE PARKS, RECREATION AND COMMUNITY SERVICES DEPARTMENT"
},
{
"id": "p44.3",
"order": 3,
"type": "figure",
"bbox": {
"l": 178.56,
"t": 95.04,
"r": 420.24,
"b": 54.72
},
"text": "",
"attrs": {
"block_label": "image"
},
"children": [
{
"id": "p44.3.1",
"order": 4,
"type": "text",
"bbox": {
"l": 220.32,
"t": 65.28,
"r": 419.52,
"b": 54.96
},
"text": "CALIFORNIA · CITYOFPASADENA.NET"
}
]
}
]
}