The Outreach Outcomes Taxonomy: A Standard Vocabulary for Wins, Losses, and Everything In Between

A reusable classification system for pipeline statuses and win/loss reasons that works in any tool—so your outreach data finally answers "why are we losing?" instead of just "how much did we lose?"

Table of Contents
  1. Why "Lost" is not a reason
  2. The three layers of an outcomes taxonomy
  3. The reference taxonomy (copy this)
  4. Worked example: a dev agency's 90 days
  5. Rules that keep the taxonomy honest
  6. Rolling it out to a team
  7. Putting the taxonomy in a tool

Why "Lost" Is Not a Reason

Every team that does outbound eventually asks the same question: why aren't we winning more? And almost every team discovers, at that exact moment, that their pipeline data can't answer it. The CRM says 61 opportunities were "Lost" last quarter. Lost to what? Price? A competitor? Silence? Nobody knows, because "Lost" was the only checkbox.

An outreach outcomes taxonomy fixes this. It's a controlled vocabulary—a fixed, agreed-upon set of statuses, outcomes, and reasons—that every closed opportunity gets classified against. Not free-text notes. Not whatever each rep types in the moment. A short list of mutually exclusive categories that make your pipeline data aggregatable.

The payoff is that questions become answerable. "We lost 40% of proposals to budget objections on projects under $5K" is a finding you can act on: raise your minimum engagement, or build a productized cheaper offer. "We lost 61 deals" is just a sad number.

The test of a good taxonomy

Two different people classifying the same closed deal should pick the same category, without discussing it. If your categories overlap ("Not Interested" vs "Bad Timing"—which one is "call us next year"?), your data will be noise dressed up as insight.

This guide gives you a complete, field-tested taxonomy you can adopt as-is, plus the rules that keep it from degrading. It's deliberately tool-agnostic—it works in a spreadsheet, in any CRM, or on index cards. (If you want to see one concrete implementation, here's how Corcava implements statuses and outcomes.)

The Three Layers of an Outcomes Taxonomy

Most teams flatten everything into one field, which is why their data turns to mush. A working taxonomy has three distinct layers, each answering a different question:

Layer 1: Status — "Where is this right now?"

The live pipeline stage of an open opportunity. Statuses describe position, not judgment: New, Contacted, In Discussion, Proposal Sent, Negotiating. Every open opportunity has exactly one status, and statuses only apply while the opportunity is open.

Layer 2: Outcome — "How did it end?"

The terminal state of a closed opportunity. Keep this list brutally short: Won, Lost, No Response, Disqualified. Four outcomes cover essentially everything. "Lost" means they made a decision against you; "No Response" means no decision was ever communicated; "Disqualified" means you walked away.

Layer 3: Reason — "Why did it end that way?"

A required sub-category attached to the outcome. This is the layer most teams skip and the layer where all the learning lives. Won deals get win reasons too—knowing why you win is as valuable as knowing why you lose.

Separating the layers matters because they get analyzed differently. Statuses feed conversion-rate and velocity questions ("what percentage of proposals reach negotiation, and how fast?"). Outcomes feed win-rate questions. Reasons feed strategy questions. When all three are crammed into one dropdown—"Proposal Sent" sitting next to "Lost - Price" next to "Ghosted"—none of those questions can be answered cleanly.

Where your leads come from is a separate axis again—source attribution belongs on the record, not in the outcome field. See lead sources and attribution for how source data pairs with outcome data to tell you which channels produce deals you actually win.

The Reference Taxonomy (Copy This)

Below is a complete starter taxonomy. It's tuned for freelancers, agencies, and small B2B teams doing outbound—email, platform bidding, LinkedIn, and referral follow-up. Lift it verbatim, then prune rather than expand: every category you add must earn its place with at least a handful of records per month.

Outcome Reason code Use when…
WonWon – RelationshipTrust, referral, or past work sealed it
Won – Expertise fitYou were the specialist they needed
Won – Price/valueYour offer beat alternatives on value
Won – Speed/availabilityYou could start when others couldn't
LostLost – PriceThey said yes to the work, no to the number
Lost – CompetitorThey chose another provider (record who, if known)
Lost – In-houseThey decided to do it themselves
Lost – Timing/budget freezeProject postponed or budget pulled; a real decision, communicated
Lost – Scope mismatchThey needed something you don't offer
No ResponseNR – Never engagedZero replies to any touch
NR – Went darkEngaged at first, then silence through your full follow-up sequence
DisqualifiedDQ – Bad fitWrong size, industry, or requirements—you passed
DQ – Red flagsPayment risk, unrealistic expectations, scope chaos
DQ – No budgetQualified out early: they can't fund the work

And the matching status set for open opportunities—six stages, position-only, no judgment baked in:

NewContactedIn DiscussionProposal SentNegotiatingVerbal Yes

Notice what's not here: no "Follow Up" status (follow-ups are actions with dates, not pipeline positions), no "Cold" status (that's an outcome decision waiting to be made), and no "Maybe Later" (that's Lost – Timing, and you can reopen it later).

Worked Example: A Dev Agency's 90 Days

Take a three-person development agency running mixed outreach: Upwork proposals, cold email to e-commerce brands, and referral follow-ups. Over 90 days they log 120 opportunities and close (one way or another) 100 of them. Classified against the taxonomy above, the data looks like this:

  • Won: 14 — 6 expertise fit, 4 relationship, 3 speed, 1 price/value
  • Lost: 27 — 12 price, 7 competitor, 4 timing, 3 in-house, 1 scope
  • No Response: 44 — 31 never engaged, 13 went dark
  • Disqualified: 15 — 8 bad fit, 4 no budget, 3 red flags

Without reason codes, this quarter reads as "14 wins out of 100, keep grinding." With them, three findings jump out:

  • 12 of 27 losses were price—but cross-referenced with source, 10 of those 12 came from Upwork, where they were bidding against offshore rates. Their cold-email losses were almost never about price. Decision: stop competing on generalist Upwork jobs; bid only where the posting signals a specialist budget.
  • 13 opportunities "went dark" after engaging. That's 13 real conversations that died of neglect or a weak close, not 13 bad prospects. Decision: fix the follow-up cadence after proposals (a solvable process problem, unlike "never engaged").
  • 6 of 14 wins were expertise fit. Their positioning as Shopify-specialist developers is the single biggest win driver. Decision: lead every pitch with the specialization, and prioritize channels where that expertise is searchable.

Three concrete strategy changes from one field that takes ten seconds to fill in per closed deal. That's the entire business case for the taxonomy.

Rules That Keep the Taxonomy Honest

A taxonomy degrades the moment people can route around it. Five rules prevent that:

  • 1.Reason is required, not optional. A closed record without a reason code is an unclosed record. Make the field mandatory in whatever tool you use.
  • 2.No "Other." "Other" becomes the majority category within two months, guaranteed. If a real pattern doesn't fit, add a named category deliberately—at a quarterly review, not ad hoc.
  • 3.One primary reason per record. Deals are lost for tangled reasons, but force a primary. "Price and timing and a competitor" aggregates to nothing.
  • 4.Define the No Response boundary numerically. Example rule: an opportunity becomes "NR – Went dark" after your full follow-up sequence completes plus 14 days of silence. Without a number, hopeful reps keep zombie deals open forever and your pipeline metrics inflate.
  • 5.Reasons come from the prospect's words where possible. "Lost – Price" should trace to something they actually said, not the rep's face-saving guess. When you genuinely don't know, that's "NR – Went dark," not an invented loss reason.

Rule 5 is the cultural one. Reps under-report losses they feel responsible for and over-report "timing." The fix isn't policing—it's making the review of reasons a team learning exercise rather than a blame exercise, which is exactly what a good weekly pipeline review does.

Rolling It Out to a Team

Solo, adoption is a decision. On a team, it's a small change-management project. The sequence that works:

  • Week 1: Adopt the reference taxonomy above unchanged. Resist the urge to customize before you have data—you don't yet know which distinctions matter for your business.
  • Week 1–2: Back-classify the last 30 closed opportunities as a team exercise. This calibrates everyone's judgment on the boundary cases and surfaces disagreements while the stakes are zero.
  • Ongoing: Review reason-code distributions in your weekly pipeline meeting. Reasons that never get used after a quarter get merged away; genuine patterns hiding inside a category get split out.
  • Quarterly: Version the taxonomy. Write down what changed and when, so year-over-year comparisons stay meaningful.

If reps' outcome data feeds their performance conversations, keep the scoring criteria transparent—a shared outreach rep scorecard makes it explicit which numbers matter and prevents the taxonomy from being gamed.

Putting the Taxonomy in a Tool

Everything above works in a spreadsheet: one column for status, one for outcome, one for reason, data validation on all three. That's a legitimate way to start, and for a solo freelancer closing a few deals a month it may be all you ever need.

The spreadsheet breaks at two points. First, volume: once you're logging 30+ opportunities a month across channels, manual hygiene decays. Second, analysis: the interesting questions are cross-cutting—loss reasons by source, win rate by deal size, time-in-stage by rep—and pivot-table archaeology gets old fast.

A CRM with structured outreach tracking gives you required outcome fields, enforced reason codes, and reporting that slices by any axis without exports. Corcava's outreach tracking was built around exactly this model—statuses, outcomes, and reasons as separate structured fields—and the statuses & outcomes page shows the implementation step by step.

Run this taxonomy in Corcava

Set up the statuses, outcomes, and reason codes from this guide in about ten minutes—then let the reports answer "why are we losing?" for you.

No credit card required

Related Guides