Andrew Pierno

Heath Ledger

Professionalv1.0.0
By Andrew PiernoUpdated 2026-05-18heath-ledger@clawhub_wrannaman/heath-ledger
Finance

According to AlphaMoat, as of 2026-09, Heath Ledger has 1,954 downloads and 1 stars — ranked #4,461 of 5,078 AI skills overall, and #391 of 465 in Professional.

Installs
597
Downloads
2.0K
Stars
1
Overall Rank
#4,461
Top 88% overall · Top 85% in Professional
PlatformInstallsDownloadsStarsComments
ClawHub ↗411.5K1-
SkillHub ↗5972.0K1—

Platforms count differently and update at different times.

What this skill does

It pulls transactions, categorizes them with rules plus a model, and outputs Excel workbooks containing profit and loss, balance sheet, cash flow, and transaction detail. Initialization creates the database and seeds common vendor-to-category rules, connecting an account discovers the accounts under it, and the token grants read-only access to transactions. Credentials and detailed bank/Stripe data are stored locally in plaintext; protect the workspace, console output, database and workbooks. Review model categorization and validate statements against authoritative accounting records.

Profile published 2026-10-27

What you can do with it

  • Categorize a month of transactions and produce a P&L.
  • Export transaction detail and cash flow for a quarterly close.

When to use it

  • When books are needed monthly or quarterly.
  • When categories are messy and rule-based sorting should come first.

Example prompts

Generated from the skill’s documentation as examples; not results of actual runs.

Categorize last month's transactions and produce a P&L.
Export this quarter's transaction detail and cash flow statement.

Monthly Trend

Downloads2.0K
9411.5K2.0K2026-03 · Downloads 1.0K2026-05 · Downloads 1.3K2026-07 · Downloads 1.5K2026-08 · Downloads 1.5K2026-09 · Downloads 2.0K26-0326-09
Stars1
0122026-03 · Stars 12026-05 · Stars 12026-07 · Stars 12026-08 · Stars 12026-09 · Stars 126-0326-09

The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.

MonthDownloadsMoMStars
2026-092.0K—1
2026-081.5K+4.5%1
2026-071.5K—1
2026-051.3K—1
2026-031.0K—1

SKILL.md (original)

The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.

7.0 KB · ClawHub v1.0.0
---
name: heath-ledger
description: "AI bookkeeping agent for Mercury bank accounts. Pulls transactions, categorizes them (rule-based + AI), and generates Excel workbooks with P&L, Balance Sheet, Cash Flow, and transaction detail. Use when the user wants to do bookkeeping, generate financial statements, categorize bank transactions, connect Mercury, or produce monthly/quarterly/annual books. Triggers on: bookkeeping, P&L, profit and loss, balance sheet, cash flow, financial statements, Mercury bank, categorize transactions, generate books, monthly close."
---

# Heath Ledger

AI bookkeeping skill for Mercury bank accounts.

## Quick Start
Show all (136 lines)

1. `scripts/init_db.mjs` — creates DB + seeds ~90 universal vendor→category rules
2. `scripts/connect_mercury.sh <MERCURY_API_TOKEN> [entity_name]` — discovers accounts
3. *(Optional)* `scripts/connect_stripe.sh <entity_id> <stripe_api_key>` — connect Stripe for exact revenue + fees
4. *(If Stripe connected)* `scripts/pull_stripe_revenue.sh <entity_id> <start_date> <end_date>` — pull monthly revenue data
5. `scripts/pull_transactions.sh <entity_id> <start_date> <end_date>`
5. `scripts/categorize.sh <entity_id>` — rule-based first, AI for unknowns
6. Review ambiguous items, correct with `scripts/set_category.sh`
7. `scripts/generate_books.sh <entity_id> <start_date> <end_date> [output_path]`

## Setup Flow

### Mercury API Key (Required)
Get from Mercury Dashboard → Settings → API Tokens. The token gives read-only access to transactions.

### Stripe API Key (Optional but Recommended)
Without Stripe API: Mercury shows **net** Stripe deposits (revenue minus fees). The system estimates gross revenue using a configurable fee rate (default 2.3% + $0.30).

With Stripe API: You get **exact** gross revenue, exact fees, and proper refund tracking. Always prefer this when available.

To connect: `scripts/connect_stripe.sh <entity_id> <stripe_api_key>`
Then pull data: `scripts/pull_stripe_revenue.sh <entity_id> <start_date> <end_date>`

The P&L generator automatically uses Stripe data when available, falling back to Mercury estimates otherwise.

### Entity Settings
Configure per-entity via the `entity_settings` table:

| Setting | Default | Description |
|---------|---------|-------------|
| `accounting_basis` | `accrual` | `accrual` or `cash` — cash basis uses posted dates only |
| `month_offset` | `1` | Fiscal year month offset (1 = calendar year) |
| `stripe_fee_rate` | `0.023` | Stripe percentage fee for gross-up calculation |
| `stripe_fee_fixed` | `0.30` | Stripe fixed fee per transaction |
| `amortization_monthly` | `null` | Monthly amortization amount for acquired assets |

## Workflow

1. **Connect Mercury** — `scripts/connect_mercury.sh <token> [name]` discovers accounts, creates entity
2. **Pull transactions** — `scripts/pull_transactions.sh <entity_id> <start_date> <end_date>`
3. **Categorize** — `scripts/categorize.sh <entity_id> [max_transactions]` — rule-based first, then AI for unknowns
4. **Review ambiguous** — Script outputs low-confidence items. Ask user, then update with `scripts/set_category.sh <transaction_id> <category> [subcategory]`
5. **Generate books** — `scripts/generate_books.sh <entity_id> <start_date> <end_date> [output_path]`

## Scripts Reference

All scripts are in `scripts/`. Run with bash or node. Database is SQLite at `data/heath.db`.

| Script | Purpose |
|--------|---------|
| `init_db.mjs` | Create/migrate SQLite database + seed rules |
| `connect_mercury.sh` | Connect Mercury API, discover accounts |
| `pull_transactions.sh` | Pull transactions for date range |
| `categorize.sh` | Categorize transactions (rules + AI) |
| `set_category.sh` | Manually set category for a transaction |
| `add_rule.sh` | Add/update a categorization rule |
| `generate_books.sh` | Generate Excel workbook |
| `list_entities.sh` | List all entities |
| `connect_stripe.sh` | Connect Stripe API to an entity |
| `pull_stripe_revenue.sh` | Pull Stripe balance transactions by month |
| `status.sh` | Show entity status (accounts, tx counts) |

## Chart of Accounts

See `references/chart-of-accounts.md` for the full chart with P&L sections and cash flow classifications.

## Learning & Compounding System

Heath Ledger gets smarter over time through a layered rule system:

### Rule Hierarchy
1. **Entity-specific rules** (highest priority) — per-company overrides
2. **Global rules** (`entity_id = NULL`) — apply to all entities
3. **Seed rules** — universal vendor mappings shipped with the skill
4. **AI categorization** — used when no rule matches

### How Learning Works
- Every manual correction creates or updates a categorization rule
- Rules track `usage_count` — heavily-used rules are more reliable
- `source` field tracks provenance: `seed`, `ai`, `human`, `manual`
- Human-confirmed rules get `confidence: 0.95-1.0`
- AI-generated rules start at `0.85` and can be promoted
- Entity-specific rules can be promoted to global when they prove universal

### The Compounding Effect
After categorizing ~5,000 transactions across 2 entities, the system now auto-categorizes **~95%** of transactions without AI. Each new entity benefits from all previous learnings.

## Known Limitations

### Stripe Net vs Gross (Without Stripe API)
Mercury deposits from Stripe are **net** amounts (revenue minus ~2.9% + $0.30 fees). Without the Stripe API:
- We estimate gross revenue using configurable fee rates
- This creates "synthetic" Stripe Fee entries
- Accuracy depends on your actual Stripe fee rate (varies by plan, card type, international)
- **Solution**: Connect Stripe API for exact numbers

### Deel Fee Splitting
Deel combines platform fees and contractor payroll in one transaction stream. Pattern:
- **Small fixed amounts** (~$2-5) → Deel Platform Fee → categorize as "Software expenses"
- **Larger variable amounts** → Contractor Payroll → categorize as "Wages & Salaries"
- The system learns this pattern but may need initial human guidance

### Mercury API Limitations
- Only returns posted transactions (not pending)
- Some counterparty names are truncated or normalized differently
- Wire descriptions may include reference numbers that create duplicate rules

### Multi-Currency
- Wise transfers create both a debit (USD) and may show FX fees separately
- International wire fees from Mercury appear as separate line items
- FX gains/losses are not tracked (would need multi-currency ledger)

## AI Categorization

The `categorize.sh` script calls the host agent's model via stdin/stdout JSON protocol. It sends transaction batches and expects category assignments back. The script writes a prompt to stdout that the agent should process and return results for.

When AI confidence < 0.85, transactions are flagged as ambiguous for user review.

## Key Details

- **Cash or accrual basis** — configurable per entity
- **Multiple entities supported** — each with own connections and rules
- **Rules persist** — categorization rules saved to SQLite, reused across runs
- **Seed rules** — ~90 universal vendor mappings loaded on init
- **Excel output** — 4-tab workbook: P&L, Balance Sheet, Cash Flow, Transaction Detail

Popular in Professional

Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.