River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Consulting Case Study Template

Four documents and three sheets that turn a finished engagement into proof, checked against a real population before an anonymized version ever ships.

Free download  ·  No account needed

Anonymized Variant

[Case ref] — [problem type]

AttributeNamed versionAnonymized version
Sector[exact industry][broadened sector]
Size[exact figure][range]
Geography[exact location][broadened region]
Timing[exact date][widened window]

Cleared only once the anonymized combination matches enough real companies that naming the client would be a guess.

Every guide on publishing a consulting case study without naming the client gives the same three moves: strip the name, generalize the sector and size, and get written approval anyway. All three are right, and none of them says when a generalized description is actually safe to publish. A consultant reads the anonymized draft, feels reasonably confident nobody could place it, and sends it. That feeling is usually the entire quality check an anonymized case study gets before it goes anywhere near a prospect.

This pack replaces that feeling with a count. Every anonymized case study states a sector, a size band, a geography and roughly when the work happened, because those details are what make the result credible. The same four details are also quasi-identifiers: each is common alone, but stated together they narrow the population of companies that could be the real client. Carnegie Mellon's k-anonymity research found that ordinary attributes routinely combine to identify someone uniquely, the same failure a case study repeats when sector, size, region and timing all survive a redaction untouched.

Clearing that count does not remove the need to ask. Consulting agreements routinely restrict what either party can say about an engagement at all. That single clause usually covers two different things: disclosing that the engagement happened, and separately, naming the client in any publicity, each needing that client's written consent on its own. A description can clear the Anonymization Check completely and still be unpublishable if the underlying agreement bars saying the engagement existed, which is why approval gets tracked on its own sheet instead of assumed from a cleared check.

One real case: named, anonymized, checked against a real population, and tracked to approval

The Case Study, the Anonymized Variant, its Anonymization Check, and the Approval Status sheet.

Case Study · internal only

Bracknell Mutual — claims cycle time

Specialty insurer · Case ref CS-01

The problem: claims took 21 days to close on average, and the backlog kept growing faster than the team could clear it.

What we did: rebuilt the triage rule so straightforward claims skip the senior adjuster queue, and moved document requests to the first call instead of the third.

The result: cycle time down from 21 to 13 days, a 38% reduction, measured over the first full quarter after go-live.

Named version. Never sent externally until an anonymized variant clears the check on the next tab.

Anonymized Variant

Case ref CS-01 · built from the named case, not written from scratch

AttributeNamedAnonymized
SectorSpecialty insurerSpecialty insurer
Size$94M premium$80–120M premium
GeographyPacific NorthwestWest Coast
TimingQ3 20252nd half 2025

Result, stated exactly as measured: cycle time down 21 to 13 days, 38%, unchanged from the named version.

Anonymization Check

This practice's own floor: 5 plausible matches

AttemptRegion statedTiming statedMatchesClears floor
First draftPacific NorthwestExact quarter2No
Widen regionWest CoastExact quarter4No
Widen, drop quarterWest CoastHalf-year window7Yes

Checked against licensed specialty carriers per region. Every attempt recorded, not only the one that cleared.

Approval Status

Six cases on file, four different outcomes right now

CaseScopeStatus
CS-01, Bracknell MutualAnonymized publicApproved
CS-02, Halcyon FoodsNamed publicApproved
CS-04, Redwood SystemsAnonymized publicPending, sponsor left
CS-05, Aldermoor HealthAnonymized publicStale, figure moved

Pending and stale rows are held back from reuse until reconfirmed, never sent on the old approval.

What's in the pack

01

Case Study

The named, unredacted record of a finished engagement: the problem in the client's own terms, what was actually done, the measured result, and who can verify it.

02

Anonymized Variant

Built from the named case, generalizing only sector, size, geography and timing, with the measured result stated exactly as it was, never softened.

03

Client Approval Request

Asks for one specific scope, named public, anonymized public or internal only, with a stated reconfirmation trigger, so an approved case that later feeds a proposal has a scope actually on file.

04

What Makes a Case Study Usable

The mechanism note: why sector, size, geography and timing are quasi-identifiers, and what the anonymization check counts before anything is called safe.

05

Case Register

Every finished engagement by sector and problem type, so a capability statement draws on what has actually cleared, not on memory of a good project.

06

Approval Status

The exact wording or figures each client approved, the anonymization check's match count, and the trigger that forces a reconfirmation before reuse.

07

Reuse Log

Every time a case or its anonymized variant went into a proposal or an RFP response, to whom, and whether that use was checked against current approval first.

How to use it

  1. 1

    Open in River, or take it blank

    Open the pack and send a finished engagement, or download the Word documents and CSV sheets and work through them directly.

  2. 2

    Send the engagement and its sensitivity

    The problem, what was done, the measured result, and whether the client has said anything about being identified.

  3. 3

    Build the anonymized variant and check it

    Generalize sector, size, geography and timing, then count real matches against a population before calling the combination safe.

  4. 4

    Scope and send the approval request

    Ask for one specific scope with a stated reconfirmation trigger, then log the response the day it arrives.

Frequently asked questions

Is this template free?

Yes. The zip is Word documents and CSV sheets, no account and no card. Edit with AI is the optional half: describe a finished engagement and its result, and the agent builds the anonymized version, checks it against a real population, and drafts the approval request. The rest sit in the template library.

What format are the downloaded files?

Four Word documents and three CSV sheets in one zip. The Case Register, Approval Status and Reuse Log sheets open in Excel, Numbers or Google Sheets with every column intact, including the anonymization check history, no conversion needed.

How many matching companies count as safe?

This practice's own floor, not a universal number. Caldbeck Partners requires five plausible matches before publishing anything; a bigger practice serving a narrower niche might reasonably set it higher. What matters is writing the floor down and checking a real population, licensed carriers, registered businesses, a member directory, rather than publishing because nobody who read the draft happened to guess right.

What if the client won't approve any public use at all?

Internal only. A client who will not approve any public use has still agreed you can describe the work in general terms for your own capability statement, which never cites one client by name. What they have not agreed to is a specific, checkable anonymized description a competitor's prospect could read.

How is this different from a testimonial or a logo wall?

A testimonial is a quote a client agreed to give. This pack answers a narrower, harder question: whether a specific written description, sector, size, geography and timing, is safe to publish without naming anyone. A named quote and an anonymized case study need separate approvals, tracked at different scopes on the same sheet.

What happens once a case is approved?

It moves into the next proposal as evidence, and the Reuse Log records where. Before it goes out again, its row on the Approval Status sheet gets checked, not assumed current, since a sponsor can leave or a client's real number can move past what was actually approved.

Turn a finished engagement into proof you can actually send

Take the Word documents and CSV sheets blank, or send River a finished engagement and get an anonymized variant checked against a real population.

Edit with AI