A client project. One component. A place to start.
One less component for your team to build.
01 · The project
The dashboard is planned. The numbers still need checking.
Suppose you are building a reporting workflow for a service business. Each month, its team exports orders and support charges. The client wants a summary of activity, with refunds included and different currencies kept separate.
Then July’s export arrives. A $55 order appears twice. Another order appears with two different amounts: $30 and $35. Simply adding the rows would produce a convincing-looking number that you could not stand behind.
The piece that needs doing
Turn the export into checked totals and a short list of questions.
Your client should be able to see what counted, what was left out, and what still needs an answer.02 · The usual route
Someone on your team takes it on.
An engineer writes a script, or builds a reusable Excel workflow. They agree how to identify duplicates, check the unusual cases, and explain which numbers are safe to pass to the report. Then someone reviews the work and documents it for whoever will maintain the integration.
That is a sensible solution. It also takes implementation and review time from the same people delivering the rest of the project. The question is whether this is a piece you want your team to own from scratch.
03 · Where Rockwood Lab fits
Give us the component. Keep control of the delivery.
We propose taking on the reconciliation step: agree the inputs and rules with you, implement the checks, and hand over the code, tests, and explanation of the output. Your team sets the acceptance criteria and decides how it fits into the client’s workflow.
This sample shows the kind of result you could assess. The repeated $55 order is counted once. Both versions of the disputed order are held for review; the code does not choose which amount the client meant.
July · working sample result · USD
$145.00
Included total, pending review of the conflicting order.
- Clear rows counted
- 2
- Duplicate row omitted
- 1
- Conflicting rows held
- 2
The $90 order plus one $55 order makes $145. Neither the $30 nor the $35 amount is included. The unresolved question remains visible before the result reaches a client report.
Show all records and results · June–August
All 12 synthetic source rows appear below, grouped by reporting month. July is the example highlighted above; June and August show the rest of the same run. Amounts are displayed in currency units; the CSV files store integer minor units.
June 2026
Included: $245.00 USD
3 source rows · 3 counted · 0 omitted as duplicates · 0 held for review. No rows held for review in this sample.
| Source row | Order | Date | Category | Status | Amount | Currency | Treatment |
|---|---|---|---|---|---|---|---|
| jun-01 | J-100 | 2026-06-03 | Service | paid | $120.00 | USD | Counted |
| jun-02 | J-101 | 2026-06-05 | Service | paid | $85.00 | USD | Counted |
| jun-03 | J-102 | 2026-06-08 | Support | paid | $40.00 | USD | Counted |
July 2026
Included: $145.00 USD
5 source rows · 2 counted · 1 omitted as duplicates · 2 held for review. Totals exclude held rows and remain provisional.
| Source row | Order | Date | Category | Status | Amount | Currency | Treatment |
|---|---|---|---|---|---|---|---|
| jul-01 | J-200 | 2026-07-02 | Service | paid | $90.00 | USD | Counted |
| jul-02 | J-201 | 2026-07-04 | Service | paid | $55.00 | USD | Counted |
| jul-03 | J-201 | 2026-07-04 | Service | paid | $55.00 | USD | Duplicate omitted |
| jul-04 | J-202 | 2026-07-06 | Support | paid | $30.00 | USD | Held: conflicting order |
| jul-05 | J-202 | 2026-07-06 | Support | paid | $35.00 | USD | Held: conflicting order |
August 2026
Included: €70.00 EUR · $100.00 USD
4 source rows · 3 counted · 0 omitted as duplicates · 1 held for review. Totals exclude held rows and remain provisional.
| Source row | Order | Date | Category | Status | Amount | Currency | Treatment |
|---|---|---|---|---|---|---|---|
| aug-01 | J-300 | 2026-08-02 | Service | paid | $110.00 | USD | Counted |
| aug-02 | J-301 | 2026-08-04 | Service | paid | €70.00 | EUR | Counted |
| aug-03 | J-302 | not-a-date | Support | paid | $25.00 | USD | Held: invalid date |
| aug-04 | J-303 | 2026-08-08 | Support | refunded | -$10.00 | USD | Counted |
In July, J-201 matches on date, category, status, currency, and amount. J-202 differs in amount, so both rows are held. In August, J-302 has an invalid date and is held; the −$10 refund on J-303 is included. Every source row remains in the result with its treatment.
Inspect the rules, checks, and integration scope
Inputs and output. The example reads three CSV files with 12 synthetic rows. Fields include reporting period, row and order IDs, date, category, status, currency, and amount in integer minor units. The JSON result contains period totals by currency and a treatment for every row.
Rules. Invalid dates are held first. Remaining rows are grouped by order ID across all three periods. Matching date, category, status, currency, and amount means one row is counted and repeats are omitted. Nonmatching rows in a group are held as a conflict. Row IDs and reporting periods are not part of the matching signature. A real assignment would agree the appropriate key and scope for its source.
Checks you can reproduce. Three comparison tests check expected period results, row coverage and currency separation, and byte-for-byte regeneration of the result. June totals $245 USD. August totals $100 USD and €70 EUR separately, includes a −$10 refund, and holds a row with an invalid date.
Where this example stops. It demonstrates the stated rules on these files. It does not include a live connector, general input validation, or an operating client service. Integration, deployment, and support would be scoped with you. No customer time savings have been measured.
Download the complete example
All three inputs, the generated result, and the code package belong to the same run. The ZIP includes these inputs and result, the Python generator, expected results, tests, and instructions.
What we would take on
Implementation, checks, and handoff.
The agreed component, representative test cases, and documentation your team can review and work with.What stays with you
The client relationship and acceptance.
You choose the assignment and approve the result. Questions about the client’s data stay visible for the appropriate person to resolve.04 · Try the working relationship
Start with one small paid component.
Choose a reporting or data-integration task from a project you are delivering. We would agree a representative sample, expected results, scope, price, and handoff before work begins.
You would have a concrete deliverable to judge: does it pass the agreed checks, can your team understand it, and does it save them enough effort to be worth the fee? That gives you a practical basis for deciding whether to work with us again.