About break-trace
An accounting skill for tracing a single reconciliation break to its GL and subledger sources and stating the likely root cause. It compares transaction attributes and returns an owner, expected clear date, and action without posting adjustments.
Key features
- 01Retrieve GL posting details
- 02Retrieve matching subledger transaction
- 03Compare dates, FX, mapping, and signs
- 04Return cause, owner, and action
- 05Diagnose without posting adjustments
Use cases
- 01Investigating a GL and subledger mismatch
- 02Routing a break for monitoring or correction
MCP support
Uses the internal-gl MCP and subledger MCP to retrieve the GL posting and matching subledger transaction for comparison.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ anthropics/ financial-services --skill break-traceAfter installing, type/break-tracein Claude Code to confirm it loaded.
Details
From the project READMERoot-cause a break
Given a single break row (key, GL values, subledger values, bucket, likely cause), trace it to source and produce a root-cause statement.
Trace path
- Pull the GL side — via the internal-gl MCP, fetch the journal entry or posting that produced this GL line: entry id, posting date, source system, batch id, preparer.
- Pull the subledger side — via the subledger MCP, fetch the matching transaction: trade id, trade/settle dates, counterparty, source feed, FX rate used.
- Diff the attributes — line up posting date, FX rate/date, account mapping, quantity sign, amount sign. The differing attribute is usually the cause.
Cause → statement
Write the root cause as a single sentence in the form "⟨side⟩ ⟨did what⟩ because ⟨reason⟩", e.g.:
- "GL posted on settle date (T+2) while subledger posted on trade date — timing break, will clear on 2026-05-07."
- "Subledger used WM/R 4pm rate; GL used Bloomberg close — FX break of 12 bps on the base amount."
- "Security ABC123 maps to GL account 11420 in the mapping table but the subledger fed 11410 — mapping break, raise to reference-data."
- "Subledger posted the trade twice (trade ids 88412 and 88419 are duplicates) — duplicate post, suppress 88419."
Output
For each traced break, return:
{
"key": "...",
"root_cause": "one sentence as above",
"owner": "ops | reference-data | accounting | upstream-system",
"expected_clear_date": "YYYY-MM-DD or null",
"action": "monitor | adjust | raise-ticket | suppress"
}
Only the resolver writes adjustments — this skill diagnoses, it does not post.