Inquiry reconciliation lab
Load 50 fictional contact events linked to 30 inquiry records, 22 jobs and 20 payment events. Retries, a transfer, wrong-business and unsupported inquiries, unknowns, a cancellation, missing payment evidence, split payments and refunds stay visible.
Format and data dictionary
UTF-8 comma-separated CSV, one header, maximum 256 KB and 2,000 records. Dates use YYYY-MM-DD. Money uses plain decimal USD values with up to two decimal places. Keep customer names, numbers and addresses out of this demonstration.
- type: event, inquiry, job or payment
- id: unique ID within its record type
- inquiry_id: explicit inquiry reference for event/job; blank stays unresolved
- job_id: explicit job reference for payment; blank stays unresolved
- at: event, inquiry, job or payment date; preserve its meaning
- status: jobs: booked, completed, cancelled or unknown; events may describe retry/transfer
- suitable: inquiries: yes, no or unknown
- amount: payment amount; negative values are adjustments/refunds
- direct_cost: specified job costs; blank remains unknown
- source: optional nonpersonal channel label
One job may have several payments. No fuzzy identity matching, automatic dispatch or accounting classification is performed. The file remains in this tab’s memory; reload or Clear removes it. Exports are local copies you control.
No records loaded. Start with the fictional dataset to see the rules before importing your own supported file.
Start with the evidence
Start with the sample before importing anything. The lab preserves fifty contact events, thirty inquiry records, twenty-two jobs and twenty payment events. It includes retries, a transfer, an unlinked event, unsuitable and unknown inquiries, a cancellation, an unknown job outcome, missing costs, missing payment evidence, split payments, refunds and later-month receipts. Totals are calculated from those rows.
A worked example
An event points to an inquiry, a job points to an inquiry and a payment points to a job. Several events or payments can share the same parent without increasing the parent count. The collection-date filter selects payment events only; completed jobs and known job contribution remain labeled all-date views. Missing payment evidence is not silently converted into proof of zero collection.
Choose the next action
Import UTF-8 CSV up to 256 KB and 2,000 records, then map each supported field to a distinct column. Invalid dates, duplicate IDs, malformed rows and broken references stop calculation. Blank links become review tasks rather than guessed identity matches. No fuzzy matching or vendor-specific integration is claimed. Inspect preserved rows and resolve uncertainty in the approved source system.
Check whether it worked
Export the calculated job ledger and unresolved queue, including next checks and blank owner/due-date fields. File content and filenames are processed in browser memory, without upload or analytics payloads. Clear removes the current records; downloaded copies remain local files you control. Review exports before sharing them, and use synthetic records for public demonstrations.
Put it to work
A record you can use
- File dictionary and record limits
- Column mapping
- Validation issues and original rows
- Explicit links and unresolved evidence
- Summary/queue export and verification
Plain text. No email required. Store completed records in your approved business systems.
Next useful step
Need help applying this to your marketing? A strategy call starts with your business and the evidence you have.
Talk through your next step →For a general editorial question, email Chris. Please leave out customer details. Questions are private, and no response time is promised.