# Demand Origin Classifier

> Classify the origin of market demand for a product, offer, or segment — Dormant (market doesn't know it has the problem), Substitution (market solves it today with an inferior approach), or Active-Category (established, budgeted, actively shopping) — before setting messaging, campaign strategy, or lead-qualification thresholds. Use whenever a user is writing GTM messaging, designing a campaign, setting MQL/lead-scoring criteria, launching into a new segment, or asks why "more leads" or "more MQLs" isn't fixing a pipeline problem. Trigger this proactively whenever someone proposes lead-volume as a fix without having stated the demand type — misclassifying this is the single most common cause of GTM strategies that generate activity without revenue.

- Skill: `christopherswarup/demand-origin-classifier` (Agent Skill)
- Install (CLI): `npx skillmds@latest add christopherswarup/demand-origin-classifier`
- Raw SKILL.md: https://api.skillmd.com/api/skills/christopherswarup/demand-origin-classifier/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: christopherswarup (https://skillmd.com/u/christopherswarup)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/christopherswarup/demand-origin-classifier

---


# Demand Origin Classifier

Every GTM strategy assumes an answer to one upstream question, usually without asking it: **does this market already know it wants what we sell?** Get this wrong and the messaging, the qualification bar, and the "more leads will fix it" instinct are all wrong by the same margin.

## The three demand origins

| Origin | What the market believes | Who you're really competing with | Messaging job | Qualification signal |
|---|---|---|---|---|
| **Dormant** | Unaware the problem is worth solving, or that it's solvable | Inertia — "we've always done it this way" | Name the cost of inaction; make the invisible problem visible | A prospect with the standing to *sponsor change*, not just a form-fill |
| **Substitution** | Aware of the problem; already has a workaround or inferior fix | Whatever they use today (a manual process, a legacy tool, a competitor) | Prove a materially better approach exists | Active dissatisfaction with the current approach |
| **Active-Category** | Buys this routinely; has budget and a defined process | Direct, named competitors | Win on differentiation — features, price, service, trust | Budget + authority + need + timeframe are all already in place |

## Inputs to gather

**Required:**
- What the product/offer actually solves, and for whom (the specific segment or persona)

**Helpful, not blocking:**
- Real prospect language — how do they describe the problem when they first hear about it? Do they already have a name for it?
- What they use today instead (a competitor, a manual process, nothing)
- Any evidence of budget already allocated in this category (RFPs, existing vendor spend, a line item in their plan)

**If none of this is available:** ask one targeted question rather than guessing — *"When someone in this segment first hears what we do, do they already agree it's a problem worth solving, or do you have to convince them it's a problem at all?"* The answer alone usually separates Dormant from Substitution/Active-Category.

## Why this gates everything downstream

- **Messaging:** Dormant demand needs education content; Active-Category demand needs comparison content. Running category-style comparison ads into a dormant market wastes spend explaining a choice nobody's making yet.
- **Lead qualification:** a "hand-raiser" in a Dormant market is a completely different signal than one in Active-Category — treating both the same way either over- or under-qualifies.
- **The "more leads" trap:** if a stakeholder asks for more lead volume, check demand type first. In a genuinely Dormant market, volume tactics (more forms, more ads) often can't move the number — the constraint is awareness and internal sponsorship, not funnel width.

## How to apply it

1. **Classify before designing anything downstream.** Ask: does the buyer already have a name for this problem? Do they have budget allocated to solving it? If no to both → Dormant. If yes to the problem but they're solving it badly → Substitution. If yes to both → Active-Category.
2. **Check for a mixed portfolio.** A single product line often serves more than one demand origin simultaneously (e.g. an emerging use case is Dormant while the core use case is Active-Category). Running one demand model across a mixed portfolio is a common, quiet cause of underperformance — flag it explicitly rather than picking one model for the whole business.
3. **Set the qualification bar to match.** Don't import an Active-Category scoring model (budget/authority/need/timeframe) into a Dormant-market motion where the real signal is "can this person sponsor internal change."
4. **Then, and only then, evaluate lead volume as a lever** — per the demand type identified in step 1.

## Worked example

> **Input:** "We need more MQLs — marketing isn't generating enough pipeline."
>
> **Applying this skill:**
> 1. What's the demand origin for this product/segment? (Ask if unstated — don't assume.)
> 2. If Dormant: more MQLs won't fix it — the market doesn't know to look. Fix: awareness content + a sponsor-identification motion, not lead-volume tactics.
> 3. If Substitution: check whether campaigns are actually naming the inferior current approach and proving a better one — volume without that proof just adds unqualified noise.
> 4. If Active-Category: volume *can* be the right lever — but only after confirming the qualification bar (budget/authority/need/timeframe) is actually being enforced, not just counted.

## Output format

When applying this skill, always state:
- **Classified demand origin** (with the specific evidence used to classify it — don't guess silently)
- **What this changes** about messaging and qualification
- **Whether "more volume" is even the right lever** for this origin
- **Flag** if the portfolio is mixed and needs more than one demand model

---
*Skill 1 of 6 diagnostic skills in the [GTM Skills collection](../../README.md) by [Christopher Swarup](https://github.com/christopherswarup) — GTM Ops leader, 15+ years in RevOps/MOPS across Finastra, Equinix, Nutanix, Pleo, Contentsquare and DevRev.*

