Affiliate-skills content-moat-calculator
git clone https://github.com/Affitor/affiliate-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/Affitor/affiliate-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/blog/content-moat-calculator" ~/.claude/skills/affitor-affiliate-skills-content-moat-calculator && rm -rf "$T"
skills/blog/content-moat-calculator/SKILL.mdContent Moat Calculator
Estimate the total content investment needed to establish topical authority in a niche. Analyzes competitors' content volume and quality to give you a go/no-go decision before investing months of work. Answers the question: "How many pages do I need to dominate this topic?"
Stage
S3: Blog & SEO — This decides what blog content to build. It's the feasibility check that saves you from starting a content strategy you can't finish.
When to Use
- User is deciding whether to invest in a niche/topic
- User asks "how many articles do I need to rank?"
- User wants to understand the content investment required
- User says "content moat", "topical authority", "feasibility", "content gap"
- After
to estimate effort for the planned clusterskeyword-cluster-architect - Before committing to a major content initiative
Input Schema
niche: string # REQUIRED — the topic to analyze # e.g., "AI video tools", "email marketing for SaaS" hub_keyword: string # OPTIONAL — main keyword to analyze competitors for # Default: inferred from niche your_current_pages: number # OPTIONAL — how many pages you already have on this topic # Default: 0 publishing_capacity: string # OPTIONAL — "1/week" | "2/week" | "3/week" | "5/week" # Default: "2/week"
Chaining from S3 keyword-cluster-architect: Use
keyword_clusters.total_clusters and keyword_clusters.hub.keyword.
Workflow
Step 1: Analyze Top Competitors
Read
shared/references/seo-strategy.md for moat calculation methodology.
forweb_search
or main niche keyword[hub_keyword]- Identify top 5 ranking sites (exclude giants like Wikipedia, Reddit)
- For each competitor:
:web_search
— count pages on this topicsite:[competitor.com] [niche topic]- Note: content depth (word count), content freshness (publish dates), content types (blog, comparison, tutorial)
Step 2: Calculate Moat
Average competitor pages = sum(competitor_pages) / number_of_competitors Your moat target = Average × 1.5 (need MORE than average to break through) Content gap = Moat target - your_current_pages
Step 3: Feasibility Assessment
Based on moat target and publishing capacity:
Weeks to moat = Content gap / publishing_capacity_per_week
| Moat Target | Assessment | Recommendation |
|---|---|---|
| < 20 pages | GREEN — Achievable | Go for it. 2-3 months at 2/week. |
| 20-50 pages | YELLOW — Significant | Commit or don't. 3-6 months at 2/week. |
| 50-100 pages | ORANGE — Major investment | Consider narrowing niche. 6-12 months. |
| 100+ pages | RED — Very high barrier | Find a sub-niche or different angle. |
Step 4: Competitive Advantage Analysis
Identify ways to build moat FASTER:
- Quality over quantity: Can you beat thin content with fewer, deeper pages?
- Unique data: Can you add proprietary data competitors don't have? (→
)proprietary-data-generator - Format advantage: Can you use formats competitors don't? (video, interactive, tools)
- Update velocity: Can you refresh content faster than competitors?
Step 5: Timeline and Roadmap
Create realistic timeline:
- Phase 1: Foundation content (hub + core spokes)
- Phase 2: Supporting content (additional spokes, long-tail)
- Phase 3: Authority content (original research, data, comprehensive guides)
- Phase 4: Maintenance (refresh, update, expand)
Step 6: Self-Validation
- Competitor analysis uses real data (not estimates)
- Moat calculation is transparent and logical
- Feasibility assessment is honest (not overly optimistic)
- Competitive advantages are realistic
- Timeline accounts for quality, not just quantity
Output Schema
output_schema_version: "1.0.0" content_moat: niche: string hub_keyword: string competitors_analyzed: number average_competitor_pages: number moat_target: number your_current_pages: number content_gap: number feasibility: string # "green" | "yellow" | "orange" | "red" weeks_to_moat: number assessment: string # Go/no-go summary competitors: - domain: string pages_on_topic: number content_quality: string # "thin" | "average" | "deep" freshness: string # "stale" | "recent" | "actively updated" authority_gaps: string[] # What competitors have that you don't competitive_advantages: string[] # Ways to build moat faster chain_metadata: skill_slug: "content-moat-calculator" stage: "blog" timestamp: string suggested_next: - "affiliate-blog-builder" - "keyword-cluster-architect" - "proprietary-data-generator" - "content-decay-detector"
Output Format
## Content Moat Analysis: [Niche] ### Competitor Landscape | Competitor | Pages on Topic | Quality | Freshness | |---|---|---|---| | [domain] | XX | [thin/average/deep] | [stale/recent/active] | ### Moat Calculation - **Average competitor pages:** XX - **Your moat target (1.5x):** XX pages - **Your current pages:** XX - **Content gap:** XX pages - **At [X]/week:** XX weeks to moat ### Feasibility: [GREEN/YELLOW/ORANGE/RED] [Assessment paragraph — honest, actionable] ### Competitive Advantages 1. [How to build moat faster] 2. [What competitors are missing] ### Timeline | Phase | Content | Pages | Weeks | |---|---|---|---| | Foundation | Hub + core spokes | XX | X | | Supporting | Long-tail, tutorials | XX | X | | Authority | Original research, data | XX | X | | **Total** | | **XX** | **X** | ### Recommendation [Clear go/no-go with reasoning]
Error Handling
- Can't find competitors: Broaden the search. If still no competitors → great sign (blue ocean), estimate moat at 15-20 pages.
- Niche too broad: "This niche has too many competitors to analyze meaningfully. Narrow down — run
first."monopoly-niche-finder - User has significant existing content: Factor in existing pages. May already be at moat → focus on gaps and freshness.
- All competitors are massive sites: Recommend niching down. You can't outproduce Forbes — but you can out-specialize them.
Examples
Example 1: "How much content do I need to dominate AI video tools?" → Analyze top 5 sites ranking for "best AI video tools". Average 35 pages. Moat = 53 pages. At 2/week = 27 weeks. YELLOW — significant but doable.
Example 2: "Can I compete in email marketing?" → Analyze competitors. Average 200+ pages. Moat = 300 pages. RED — too broad. Suggest: "email marketing for Shopify stores" (moat = 25 pages, GREEN).
Example 3: "Content moat for my keyword clusters" (after keyword-cluster-architect) → Use cluster data to estimate pages needed per cluster. Compare against competitors per cluster. Identify which clusters are GREEN vs RED.
Flywheel Connections
Feeds Into
(S3) — how many articles and what type to writeaffiliate-blog-builder
(S4) — authority gaps inform what to emphasize in offersgrand-slam-offer
(S7) — identifies data moat opportunitiesproprietary-data-generator
Fed By
(S3) — cluster count informs moat estimationkeyword-cluster-architect
(S6) — current content performance dataseo-audit
(S6) — content performance metricsperformance-report
Feedback Loop
(S6) tracks progress toward moat target → celebrate milestones, adjust strategy if falling behindperformance-report
Quality Gate
Before delivering output, verify:
- Would I share this on MY personal social?
- Contains specific, surprising detail? (not generic)
- Respects reader's intelligence?
- Remarkable enough to share? (Purple Cow test)
- Irresistible offer framing? (assessment feels actionable)
Any NO → rewrite before delivering.
References
— Topical authority model, moat calculation formulashared/references/seo-strategy.md
— Real content strategy examplesshared/references/case-studies.md
— Master connection mapshared/references/flywheel-connections.md