## TL;DR
QBR decks are presentation files, not data files: dates appear as quarter labels, relative phrases, and formatted tables that a naive extractor reads in layout order, not logical order. Extract with layout awareness, parse every date pattern present in real decks, and validate each extracted renewal date against the CRM; mismatches go to a review queue instead of into the sync.

```text
parser broke on the quarterly business review PDF: agent extracted wrong renewal dates and the sync failed
```

## Use this when
- Parsed renewal dates are wrong for a subset of accounts
- Errors cluster on certain deck templates or presenters
- The sync wrote the wrong dates into downstream systems

## Not for this skill when
- The decks themselves contain wrong dates (a human authoring error)
- The CRM dates are the wrong ones and the decks are right

## Steps
1. Collect the decks that produced wrong dates and find the exact text and position of the true date in each. Verify: the extraction failure pattern (pattern, order, or table split) is characterised
2. Upgrade extraction to preserve layout (column and row position) for table-based dates. Verify: dates extract with their account context attached
3. Parse all observed date patterns, including quarter-end phrases resolved against the deck's date. Verify: the previously failing decks now yield correct dates
4. Validate every extracted date against the CRM and contract system, queuing mismatches for human review. Verify: no unverified date reaches the sync
5. Repair the dates already synced wrongly and notify the teams that consumed them. Verify: downstream forecasts and plans are corrected at the source

## Variant phrasings
### QBR PDF wrong renewal dates extracted
A related phrasing for the same underlying problem.
### PDF date parsing layout errors
A related phrasing for the same underlying problem.
### validate parsed dates against CRM
A related phrasing for the same underlying problem.

Compatibility: Compatibility: PDF extraction tooling (pdfplumber, PyMuPDF, or OCR for scanned decks) feeding CRM syncs, current versions.

## Why it happens
Presentation PDFs encode meaning in position, so text-order extraction scrambles exactly the associations that matter (which date belongs to which account). Layout-aware extraction plus external validation converts an untrustworthy narrator into checked data.

## Edge cases / pitfalls
- Scanned or image-based decks need OCR, and OCR confuses similar digits in dates. Validation against the CRM is doubly important there.
- Quarter phrases like Q3 renewal are ambiguous between calendar and fiscal years. Resolve using the customer's fiscal calendar from the CRM.
- A review queue needs a service-level expectation, or mismatches pile up unsynced and someone reverts to trusting the parser.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_XGxqT3XlgKbSI7H2iFtADQ
