Module 14The six AI workflows4 min read

Fee scoping: price a client from their data, not from a guess

Underpricing the messy clients is where practice margin goes. How to price from measured transaction volume and measured messiness, with reprice triggers agreed at quote time instead of an awkward conversation later.

Denym Bird
Denym Bird Co-founder & CEO of Paidnice
A ledger sample producing volume and messiness measures for a quote

Fee scoping prices a new client from their actual ledger instead of from a guess about how messy they will be. It measures transaction volume, account and contact counts, and the proportion of the file that is uncategorised, then applies your rate card to those numbers. Build it when you suspect some clients are unprofitable and cannot prove which.

Key takeaways

Volume alone underprices. Two clients at 200 transactions a month are not the same client when one has two per cent uncategorised and the other has 25 per cent.

Three months minimum, twelve ideally. One month prices the quietest month and you find out in March.

The firm's rate card sets the price. The workflow measures. It never invents a rate.

Reprice triggers belong in the quote. A trigger agreed up front is a conversation. A fee increase without one is a dispute.

What gets measured

BlockWhat it reportsWhy it matters to the fee
VolumeTransactions, months covered, transactions per month, distinct accounts, distinct contactsThe base the rate card multiplies
MessinessUnclassified count and percentage, missing description count and percentageThe multiplier that predicts real cost
Monthly spreadTransactions per month, lightest and heaviestSeasonality, and the ceiling your quote assumes

The messiness block is the part that changes a quote. Every uncategorised transaction becomes a query, an email, a wait and a re-open, and none of that is in the transaction count.

If the prospect will not share data

Say what it costs, in the quote. Without a sample the number becomes a range with a repricing clause rather than a fixed fee, and writing that down is fairer to both sides than absorbing the risk quietly.

Free and open source

Install it: skills/fee-scoping-workflow

Reports transaction volume, distinct accounts and contacts, unclassified and missing-description percentages, and the monthly spread with the lightest and heaviest month. Includes a structure for building a rate card that prices messiness.

Get the six workflows on GitHub

Works in Claude, Claude Code, Codex and Cursor. Copy the folder into .claude/skills/ and ask in plain language.

The quote states its basis

A number on its own cannot be revisited. A quote from this workflow carries four things:

  1. The measures the price was built from, with the file they came from.
  2. The basis, which rate card line was applied to which count.
  3. The assumptions, including the ones nobody verified, such as whether the export covers every bank account.
  4. The reprice triggers, stated as numbers: transactions above the heaviest month observed for two consecutive months, or unclassified staying above the quoted band after month three.

One question to ask before the quote goes out

Ask whoever owns pricing whether the number feels high or low against similar clients. If they say low, the rate card probably does not price messiness, and that is much better to learn before the quote is sent than after the client has been on the books for a year.

What it cannot do

It does not set prices. Your rate card does. The workflow applies it to measured counts.

It cannot verify the export is complete. A client can send one bank account out of three, and the file will look tidy.

It does not predict future volume. It reports what the sample shows, which is why the triggers exist.

The same "measure, do not estimate" rule runs through every workflow in this set. The reasoning is in AI for accountants.

Common questions

What if my firm has no rate card?

The skill includes a structure for building one, and it deliberately contains no rates. Derive yours from five existing clients: pull their actual recoverable hours for a year, measure their ledgers, and fit the model to what you already earn.

Can I use this to reprice existing clients?

Yes, and that is often where it pays for itself. Run it across the clients you suspect are unprofitable and you get the measured reason rather than a feeling.

How does this relate to onboarding?

Intake captures scope, which is the onboarding workflow. Fee scoping prices it from data. Keeping them separate stops a price being set from an impression formed in a first meeting.

More in The six AI workflows

All of AI for bookkeeping