domains / business / market-research / market-research
The two skills share the name and the broad goal of producing market research, but they are different procedures. The davepoon copy is a founder-facing workflow that manages a persistent startup/market-research.md file, infers intent, updates sections, and dispatches a web-researcher agent for multi-source passes. The brycewang copy is a command-style industry analysis skill that produces a single compact, source-cited report using Porter's Five Forces, HHI/CR4, PESTLE, and trade flows, with explicit arguments, geographies, formats, and a local econstack parameter/learnings system. Neither is a reproduction of the other; crowning one would hide a real alternative.
| Repository | Path |
|---|---|
| davepoon/buildwithclaude | plugins/startup-superpowers/skills/market-research/SKILL.md |
| brycewang-stanford/Auto-Empirical-Research-Skills | skills/58-charlescoverdale-econstack/market-research/SKILL.md |
| Role | Repository | Path |
|---|---|---|
| peer | davepoon/buildwithclaude | plugins/startup-superpowers/skills/market-research/SKILL.md |
| peer | brycewang-stanford/Auto-Empirical-Research-Skills | skills/58-charlescoverdale-econstack/market-research/SKILL.md |
---
name: market-research
description: Manages market understanding for founders or produces structured industry analysis reports. Use when the conversation touches market size, customer segments, buying behavior, pricing, industry trends, or when a structured market research report is needed.
---
# Market Research
Help the user understand the market they're entering or analyzing — whether it's real, who's in it, how buyers behave, and what they expect to pay. This context strengthens interviews, sharpens hypotheses, and gives a confident answer to "what's the market opportunity?"
## Before you start
1. Determine the mode:
- **Founder mode**: If the user is a founder working on a startup, load project context from `startup/core.md` (name, seed description, type of business — B2B or B2C — and all fields under `## Core`). Check if `startup/market-research.md` exists.
- **Industry analysis mode**: If the user requests a structured industry report, proceed with the industry analysis workflow.
2. For industry analysis mode, run the econstack update check and load prior learnings:
```bash
~/.claude/skills/econstack/bin/econstack-update-check 2>/dev/null || true
eval "$(~/.claude/skills/econstack/bin/econstack-slug)"
~/.claude/skills/econstack/bin/econstack-learnings-read --limit 3 2>/dev/null || true
```
If learnings are found, apply them. When a prior learning influences a decision, note: "Prior learning applied: [key]".
3. Verify the parameter database is available:
```bash
PARAMS_DIR="$HOME/econstack-data/parameters"
if [ -d "$PARAMS_DIR" ]; then
PARAM_COUNT=$(find "$PARAMS_DIR" -name "*.json" 2>/dev/null | wc -l | tr -d ' ')
echo "PARAMS: $PARAM_COUNT files loaded from $PARAMS_DIR"
STALE=$(find "$PARAMS_DIR" -name "*.json" -mtime +730 2>/dev/null | wc -l | tr -d ' ')
if [ "$STALE" -gt 0 ]; then
echo "PARAMS_WARNING: $STALE file(s) not updated in 2+ years. Run: cd ~/econstack-data && git pull"
fi
else
echo "PARAMS: not found. Using built-in defaults."
fi
```
## Founder mode: When market research already exists
Load `startup/market-research.md` for context. Infer intent from the conversation — don't ask "what do you want to do?" If the founder is:
- **Asking about a specific dimension** (size, segments, pricing, trends) — answer from the existing file; if the file is thin on that dimension, offer to run targeted research to fill it in
- **Wanting to update a section** — read the file, discuss the new information, propose the change, get confirmation, write it back. Update `last_updated` in frontmatter
- **Flagging the research as stale** — set `status: needs-refresh` in frontmatter and offer to re-run the full research or a targeted pass on specific sections
- **Wanting web research on a specific topic** — dispatch the `web-researcher` agent (fast model) with a focused prompt about that market dimension; incorporate findings into the relevant section; save the full output to `startup/research/{YYYY-MM-DD}-{topic-slug}-research.md` with frontmatter `date`, `topic`, and `source_skill: market-research`
- **Asking how market research connects to hypotheses** — surface which findings in the file could confirm or challenge existing hypotheses, and suggest updating hypothesis status or Notes accordingly
When updating the file, follow the format conventions:
- YAML frontmatter with `version` (number), `last_updated` (ISO date), `type` (`b2b` or `b2c`), and `status` (`draft`, `complete`, or `needs-refresh`)
- H1 heading: `Market Research — {Project Name}`
- Sections: Market Overview, Customer Segments, Buying Behavior, Pricing Landscape, Trends, Key Sources, Open Questions
Read before writing, propose before saving, get confirmation.
## Founder mode: When no market research exists
Load the reference file for the guided first-time workflow:
```
.claude/skills/market-research/references/initial-market-research.md
```
The reference file's instructions take over from this point.
## Industry analysis mode
Produces a structured, source-cited market research report for any industry or product. First-time users get a complete analysis from one invocation covering market sizing, key players, concentration, Porter's Five Forces, PESTLE macro-environment, regulatory environment, supply chains, and outlook. Every data point is cited.
### Arguments
```
/market-research [sector or product] [options]
```
**Examples:**
```
/market-research "UK grocery retail"
/market-research "semiconductors" --geo global
/market-research "residential mortgages" --geo uk,us
/market-research "UK childcare" --focus regulation
/market-research "EV batteries" --depth quick --format pptx
```
**Options:**
- `--geo <code(s)>` : `uk` (default), `us`, `eu`, `au`, or `global`. Multi-geography via commas: `--geo uk,us`.
- `--depth <level>` : `quick` (one-page briefing), `standard` (default, full report), `deep` (extended with primary research pointers).
- `--focus <topic>` : Narrow to a theme. Options: `sizing`, `competition`, `regulation`, `supply-chain`, `pricing`, `outlook`. Reduces the report to the relevant sections.
- `--section <name>` : Emit only one sub-component. Options: `full` (default), `summary`, `sizing`, `players`, `concentration`, `porter`, `pestle`, `regulation`, `supply`, `trade`, `pricing`, `outlook`. Combinable with commas.
- `--format <type>` : Output format(s). `markdown` (default, always generated), `xlsx`, `word`, `pptx`, `pdf`, or `all`.
- `--client "Name"` : Add "Prepared for" metadata. Also shapes writing register.
### Supported geographies
| Code | Scope | Primary sources |
|------|-------|----------------|
| `uk` | United Kingdom (default) | ONS, CMA, ORR, Ofgem |
| `us` | United States | BLS, Census, FTC, SEC |
| `eu` | European Union | Eurostat, ECHA, European Commission |
| `au` | Australia | ABS, ACCC, ASIC |
| `global` | Global | World Bank, IMF, WTO, UNCTAD |
### Report structure
1. **Executive Summary** — Key findings, market size, growth rate, competitive landscape
2. **Market Sizing** — TAM, SAM, SOM with source citations
3. **Key Players** — Top companies, market share, strategic positioning
4. **Market Concentration** — HHI, CR4, CR8 calculations
5. **Porter's Five Forces** — Threat of new entrants, bargaining power of buyers/suppliers, threat of substitutes, competitive rivalry
6. **PESTLE Analysis** — Political, Economic, Social, Technological, Legal, Environmental factors
7. **Regulatory Environment** — Key regulations, compliance requirements, regulatory trends
8. **Supply Chain Analysis** — Upstream/downstream players, key inputs, logistics
9. **Trade Flows** — Import/export data, trade barriers, trade agreements
10. **Pricing Landscape** — Price ranges, pricing models, price trends
11. **Outlook** — Growth projections, key drivers, risks
12. **Key Sources** — All data sources cited
### Safety rules
1. **Parameter database is read-only.** Never write to, modify, or delete files in `~/econstack-data/parameters/`. These are shared, versioned parameters maintained separately. If a parameter needs updating, tell the user to update the econstack-data repo.
2. **Confirm before overwriting.** Before writing an output file, check if a file with the same name already exists. If it does, ask the user: "A file named [filename] already exists. Overwrite it, or save with a new name?" Do not silently overwrite.
### Completion status
At the end of every skill run, report one of these statuses:
- **DONE**: Analysis complete, output generated, all sections finished.
- **DONE_WITH_CONCERNS**: Output generated but with caveats (e.g., data gaps, assumptions that need review, sections below expected depth).
- **BLOCKED**: Cannot proceed (e.g., missing critical input, parameter database unavailable, framework not supported).
- **NEEDS_CONTEXT**: Need more information from the user before continuing.
Format: `STATUS: [status] | [one-line reason]`
## Ad-hoc web search vs. dispatching web-researcher
Not every web question needs a subagent:
- **Inline `WebSearch` / `WebFetch` (you, the main agent):** single-fact lookups ("what does Pendo charge?", "is ACME still active?"), quick verification of a claim the founder made, one data point asked about in flow. Stays in conversation, no persistence needed.
- **Dispatch `web-researcher`:** multi-source passes that benefit from an isolated context (scanning pricing across a whole category, surveying buyer-behavior signals across communities, structured landscape passes). Output is structured and gets saved to `startup/research/{YYYY-MM-DD}-{topic-slug}-research.md` for later reference.
Rough rule: one fact in flow → inline. Multi-source or results-should-persist → dispatch.
## Capturing new learnings
After completing this skill, log new insights via:
```bash
~/.claude/skills/econstack/bin/econstack-learnings-log '{"skill":"...","type":"...","key":"...","insight":"...","confidence":N,"source":"observed|user-stated|inferred"}'
```
Types: `framework` (preferred appraisal framework), `parameter` (custom overrides), `data-source` (preferred data), `output` (past report references), `operational` (tool/env quirks), `preference` (formatting/style). Confidence: 9-10 observed/stated, 6-8 strong inference, 4-5 weak. User-stated never decays; observed/inferred lose 1 point per 30 days. All data stored locally. Nothing transmitted.