# Harbor Light sample reconciliation All records are fictional. Counts below describe the supplied CSV files, not an executed app import. Header rows are excluded from counts. ## Source-row disposition | Outcome | Source rows | Count | | --- | --- | --- | | Accepted | S001, S002, S003, S004, S009, S010, S011 | 7 | | Identical duplicate | S005, retained as S002 / R-1002 | 1 | | Rejected pending a decision | S006, S007, S008, S012 | 4 | | Total source rows | S001–S012 | 12 | 12 = 7 + 1 + 4. Each source row has exactly one outcome in spreadsheet-mapping-row-disposition.csv. ## Expected output tables | File | Unit | Count | | --- | --- | --- | | spreadsheet-mapping-clients.csv | Distinct accepted client accounts | 5 | | spreadsheet-mapping-requests.csv | Distinct accepted work requests | 7 | | spreadsheet-mapping-services.csv | Declared service definitions | 3 | | spreadsheet-mapping-request-services.csv | Unique request/service selections | 11 | These units must not be added together as an imported-request total. The three service definitions are a declared lookup dictionary; source rows do not automatically create new service types. ## Requests by client | Client ID | Name | Request IDs | Count | | --- | --- | --- | --- | | C-001 | Maple House | R-1001, R-1003 | 2 | | C-002 | Cedar Studio | R-1002, R-1009 | 2 | | C-003 | Maple House | R-1004 | 1 | | C-005 | River Workshop | R-1008 | 1 | | C-006 | Pine Office | R-1010 | 1 | 2 + 2 + 1 + 1 + 1 = 7. C-001 and C-003 are distinct accounts with the same name. C-004 has no accepted request in this batch and is excluded from spreadsheet-mapping-clients.csv. ## Service selections by service | Service ID | Service | Request IDs | Count | | --- | --- | --- | --- | | SV-01 | Gutter cleaning | R-1001, R-1003, R-1004, R-1009 | 4 | | SV-02 | Window washing | R-1001, R-1002, R-1008, R-1009 | 4 | | SV-03 | Pressure washing | R-1004, R-1008, R-1010 | 3 | 4 + 4 + 3 = 11. The 17 semicolon-separated entries across all source service cells reconcile as 11 retained selections + 1 repeated selection within S010 + 1 entry on duplicate row S005 + 4 entries on rejected rows. ## Trace a complete request S004 becomes R-1004 for client C-003, dated 2026-10-04, status new. Its services are SV-03 and SV-01. Both services exist in the declared dictionary. The other Maple House account, C-001, is not its parent. S010 becomes R-1009 for C-002, dated 2026-10-08, status scheduled. Its two Window washing entries collapse to one SV-02 link, alongside SV-01. Repetition represents a duplicate selection under this fixture's stated policy. ## Open work The four rejected rows are intentionally unresolved. Their next actions are in spreadsheet-mapping-rejected-rows.csv. Fixing a row requires a reviewed correction and a new reconciliation; do not change the old source snapshot or count an unresolved record as accepted.