hermes

Reconcile two datasets

Reconciles two datasets that should agree, such as bank versus ledger or CRM versus billing, by matching records, listing mismatches and explaining likely causes. Use for month-end checks.

context

Reconciliation proves that two sources describe the same reality, and explains every difference that remains. The differences are usually ordinary: timing (an item recorded in one period in one system and the next period in the other), fees and charges recorded on one side only, currency conversion and rounding, duplicates, sign or debit-credit errors, transposed digits, partial payments, and several items batched into one entry. A useful reconciliation ties the totals, so that total A minus total B equals the sum of the explained differences plus a clearly stated unexplained remainder.

task

Reconcile these datasets:

dataset a

dataset b

Only if [MATCH_KEYS] is given: Match on:

  1. Profile each dataset: row count, total of each amount column, date range, and duplicates on the candidate key.
  2. Normalise before matching, and list what you changed: trim and case-fold text keys, parse dates, align sign conventions (debit and credit, refunds), currencies and decimal places.
  3. If no keys were given, propose them from the columns and explain the choice.
  4. Match in passes, from strict to loose, and record which pass matched each pair: a. exact key match; b. same amount and date within a few days (say how many); c. same amount with a similar reference or description; d. one-to-many or many-to-one, where several records on one side sum exactly to one record on the other.
  5. Classify every record: matched, matched with differences (say which fields differ), only in A, only in B, or duplicate.
  6. For each difference, give the likely cause with the evidence (for example "difference of 270 is divisible by 9, suggesting transposed digits", or "dated 31 March in A and 1 April in B: timing").
  7. Tie out: total A minus total B, broken down into explained differences and the unexplained remainder.
constraints
  • Every number comes from the data provided; show your sums so they can be checked.
  • Treat loose matches as proposals. Mark each with its pass and confidence; never force a match to make totals tie.
  • Do not adjust or "correct" any record; report what would need to change and in which system.
  • If either dataset has more than about 200 rows, or is truncated, do not attempt to match it by eye: reconcile the sample shown, say so, and provide a pandas script that performs the same passes and produces the same tables.
  • If the datasets have no plausible common key or cover different periods, say so before matching and ask how to proceed.
output format

Summary

A table: | A | B | difference | for row count and each amount total, then one line on how much of the difference is explained.

Matching approach

Normalisations, keys and the passes used, with counts matched per pass.

Matched with differences

A table: A record | B record | field | A value | B value | likely cause.

Only in A

A table of records with a likely cause for each.

Only in B

A table of records with a likely cause for each.

Likely causes

Total A minus total B broken into causes, ending with the unexplained remainder.

Next steps

Bullets: what to check or correct, in which system, in order of amount.

2 required values still a placeholder; the assistant will ask for them.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Data analysis
category
Data exploration
level
Intermediate
made for
Data analyst, Financial analyst, Operations, Business analyst
risk
read-only
version
v1.0.0 · experimental
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install reconcile-datasets --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill reconcile-datasets -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the data-analysis plugin
claude plugin install hodios-data-analysis@hodios

The plugin brings every entry in this domain at once.

PromptData exploration

Write a dataframe transformation

Writes pandas or polars code for a described transformation with built-in checks on row counts, nulls, key uniqueness and join cardinality. Use when reshaping, joining or aggregating data.

write-dataframe-transformation
PromptSpreadsheets

Extract tables from a PDF

Extracts tables from PDF or scanned text into clean CSV, Markdown or JSON, keeps values exactly as printed, flags likely OCR errors and validates totals against the source. Use before analysis.

extract-tables-from-pdf
PromptData exploration

Analyse an employee engagement survey

Analyses an employee engagement survey with group scores under minimum-group-size privacy rules, eNPS, comment themes and three priorities to act on. Use after an engagement or pulse survey closes.

analyze-employee-survey
PromptData exploration

Analyse location data

Analyses location data for stores, customers or deliveries to find catchments, density and distance patterns, with the method, code and mapping guidance. Use for site, coverage or delivery questions.

analyze-location-data
PromptData exploration

Compare marketing attribution models

Compares last-click, first-click, linear, position-based and data-driven attribution on supplied channel data and explains what each implies for budget. Use before moving marketing spend.

analyze-marketing-attribution
PromptData exploration

Analyse sales performance

Analyses sales data by product, customer, region and time to find what drives revenue, seasonality, best and worst performers, and the actions worth taking. Use for a sales performance review.

analyze-sales-data