competitive-intel

Competitive Pricing Intel

Monitor competitor pricing pages via live web scrape and Web Archive snapshots. Track plan changes, tier restructuring, new pricing models, and feature gating shifts. Produces a pricing comparison matrix and flags when a competitor changes packaging. Use when a product marketing team needs to stay current on competitive pricing or when preparing for a pricing change of their own.

Gooseby Athina AI
Install
Terminal
npx gooseworks install --all

# then, in Claude Code, Cursor, or Codex:
/gooseworks use the competitive-pricing-intel skill
About This Skill

Competitive Pricing Intel

Track competitor pricing pages over time. Detect when they change plans, shift feature gating, adjust pricing models, or introduce new tiers. The output is a living pricing comparison matrix plus alerts when something changes.

Core principle: Pricing is the most under-monitored competitive signal. Most teams only check competitor pricing when they're about to change their own. This skill makes it continuous.

When to Use

  • "What are our competitors charging?"
  • "Has [competitor] changed their pricing recently?"
  • "Build a pricing comparison matrix"
  • "Monitor competitor pricing for changes"
  • "We're rethinking our pricing — show me the competitive landscape"

Phase 0: Intake

  1. Your product name + pricing page URL
  2. Competitors to track — Names + pricing page URLs (2-5 recommended)
  3. Your pricing model — How do you charge? (per seat, usage, flat, freemium, etc.)
  4. Key comparison dimensions — What matters to your buyer? (price per seat, included features, limits, support tiers)
  5. First run or recurring?
    • First run: Full baseline capture + historical analysis
    • Recurring: Compare against last snapshot

Phase 1: Current Pricing Capture

1A: Live Scrape

For each competitor's pricing page:

Fetch: [competitor pricing URL]

Extract:

  • Plan names and prices — Every tier with monthly and annual pricing
  • Feature matrix — What's included in each tier?
  • Limits — Usage caps, seat limits, storage, API calls
  • Add-ons — What costs extra beyond base plans?
  • Enterprise tier — "Contact us" or listed price? What's gated behind sales?
  • Free tier / trial — What's available without paying?
  • Pricing model — Per seat / per user / usage-based / flat / hybrid

1B: Web Archive Historical Check

Search for past versions of their pricing page:

Search: "web.archive.org" "[competitor pricing URL]"
Fetch: web.archive.org/web/*/[competitor pricing URL]

Look for the last 2-3 snapshots to detect:

  • Price increases/decreases
  • Plan restructuring (new tiers added, tiers removed)
  • Feature gating changes (features moved between tiers)
  • Model shifts (e.g., moved from per-seat to usage-based)
  • Free tier changes (expanded or restricted)

1C: Pricing Announcement Research

Search: "[competitor]" pricing change OR "new pricing" OR "updated plans"
Search: "[competitor]" blog pricing OR announcement plans
Search: "[competitor]" site:reddit.com pricing OR "price increase"

Capture any public announcements or community reactions to pricing changes.

Phase 2: Pricing Analysis

2A: Competitive Pricing Matrix

Build a normalized comparison across all competitors:

DimensionYour ProductCompetitor ACompetitor BCompetitor C
Starter price$X/mo$X/mo$X/mo$X/mo
Mid-tier price$X/mo$X/mo$X/mo$X/mo
Enterprise$X/mo or Custom.........
Pricing model[Model][Model][Model][Model]
Free tier[Yes/No + limits].........
Annual discount[X%].........
Key limit (starter)[e.g., 5 seats].........
Key limit (mid)[e.g., 20 seats].........
Overage cost[$/unit or blocked].........
Support included[Email/chat/phone].........

2B: Price-to-Value Ratio

For the ICP's typical use case, calculate effective cost:

Scenario: [Typical ICP — e.g., "10-person growth team, 5,000 contacts, 1,000 emails/month"]
 
Your Product: $[X]/mo for this scenario
Competitor A: $[X]/mo for this scenario
Competitor B: $[X]/mo for this scenario

This reveals true competitive pricing position, not just list price.

2C: Packaging Strategy Analysis

For each competitor, identify their packaging strategy:

StrategyDescriptionWho Uses It
Good-Better-Best3 tiers, clear upgrade pathMost SaaS
Usage-basedPay for what you useAPI/infrastructure
Per-seatPrice scales with teamCollaboration tools
FreemiumFree forever, premium featuresPLG products
Reverse trialFull features free, then downgradeConversion-optimized
Platform + add-onsBase platform + modular featuresEnterprise

2D: Change Detection (Recurring Runs)

Compare current snapshot against previous:

Change TypeSeverityExample
Price increaseHighStarter: $29 → $39/mo
Price decreaseHighAggressive competitive move
New tier addedMedium"Growth" plan between Starter and Pro
Tier removedMediumSimplified from 4 to 3 plans
Feature ungatedMediumFeature moved from Pro to Starter
Feature gatedMediumFeature moved from Starter to Pro
Model changeCriticalShifted from per-seat to usage-based
Free tier changeHighFree plan limits reduced/expanded

Phase 3: Output Format

# Competitive Pricing Intel — [DATE]
Products tracked: [your product], [competitors]
Previous snapshot: [date or "first run"]
 
---
 
## Pricing Change Alerts
 
### [Competitor Name]
- **Change detected:** [Description of what changed]
- **Previous:** [Old pricing/plan structure]
- **Current:** [New pricing/plan structure]
- **Implication for us:** [What this means for your positioning/pricing]
 
*(Repeat for each competitor with changes. If no changes: "No pricing changes detected since [last run date].")*
 
---
 
## Competitive Pricing Matrix
 
| | [You] | [Comp A] | [Comp B] | [Comp C] |
|---|---|---|---|---|
| **Starter** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo |
| **Mid-tier** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo |
| **Enterprise** | [Price] | [Price] | [Price] | [Price] |
| **Model** | [Type] | [Type] | [Type] | [Type] |
| **Free tier** | [Details] | [Details] | [Details] | [Details] |
| **Annual discount** | [X%] | [X%] | [X%] | [X%] |
 
---
 
## ICP Scenario Pricing
 
For: [Typical buyer scenario]
 
| Product | Monthly Cost | Annual Cost | Notes |
|---------|-------------|-------------|-------|
| [You] | $[X] | $[X] | [Context] |
| [Comp A] | $[X] | $[X] | [Context — e.g., "requires add-on for [feature]"] |
| [Comp B] | $[X] | $[X] | [Context] |
 
**Your position:** [Cheapest / Mid-range / Premium] for this scenario
 
---
 
## Feature Gating Comparison
 
Features that matter most to ICP — where are they gated?
 
| Feature | [You] | [Comp A] | [Comp B] |
|---------|-------|----------|----------|
| [Feature 1] | [Tier] | [Tier] | [Tier] |
| [Feature 2] | [Tier] | [Tier] | [Tier] |
| [Feature 3] | [Tier] | [Tier] | [Tier] |
 
---
 
## Packaging Strategy Summary
 
| Competitor | Strategy | Target Motion | Notes |
|-----------|----------|--------------|-------|
| [Comp A] | [Strategy type] | [PLG/Sales-led/Hybrid] | [Key observation] |
| [Comp B] | [Strategy type] | [Motion] | [Observation] |
 
---
 
## Pricing Recommendations
 
Based on competitive analysis:
 
### If holding current pricing:
- **Strength:** [Where your pricing wins]
- **Vulnerability:** [Where a competitor undercuts you]
- **Messaging guidance:** [How to position price on sales calls]
 
### If considering a change:
- **Opportunity:** [Gap in market you could fill — e.g., "no one offers usage-based in this category"]
- **Risk:** [What to watch out for — e.g., "Competitor B is already cheaper at scale"]

Save to pricing-comparison-[YYYY-MM-DD].md in the current working directory.

Scheduling

Run monthly (pricing changes are infrequent but impactful):

0 8 1 * * python3 run_skill.py competitive-pricing-intel --client <client-name>

Cost

ComponentCost
Web scraping (pricing pages)Free
Web Archive lookupsFree
Web search (announcements)Free
Analysis and comparisonFree (LLM reasoning)
TotalFree

Tools Required

  • web_search — for pricing announcements and community reactions
  • fetch_webpage — for scraping current pricing pages
  • No API keys required

Trigger Phrases

  • "What are competitors charging?"
  • "Has [competitor] changed their pricing?"
  • "Build a pricing comparison matrix"
  • "Run competitive pricing intel for [client]"
  • "Monitor competitor pricing pages"

What's included

·
"What are our competitors charging?"
·
"Has [competitor] changed their pricing recently?"
·
"Build a pricing comparison matrix"
·
"Monitor competitor pricing for changes"
·
"We're rethinking our pricing — show me the competitive landscape"
You Might Also Like

Render Model Comparison Grid

Render a 'model comparison grid' video from a config — a fal-style "same prompt, N contenders" showcase — a dark real-DOM stage where per beat a monospace prompt fades in centered, docks to a small top strip, then a labeled 2-4 panel grid (static images OR muted video clips, mixable per cell) staggers in and holds for comparison, plus a minimal end card — frame-stepped via Playwright (video cells are frame-seeked deterministically) and encoded with FFmpeg. Deterministic assembly, FREE (cell media comes from create-image-fal / create-video-fal, music from create-music-elevenlabs), text stays pixel-crisp. Use for the model-comparison-grid format.

Render Offer Ad

Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy slots, a real product photo, a brand palette, fonts, bpm, and beat split. DETERMINISTIC + FREE (a bundled Remotion project; springs + interpolate, no AI-gen for visuals). Backgrounds are engine gradient divs off the palette, props are inline SVG, the ONLY composited bitmap is the REAL product photo (objectFit:contain, never stretched), and ALL headline/claim/CTA/URL/wordmark text is typeset in the engine — never AI-rendered (the format's credibility guard). A driver binds the config to Remotion input props, renders the 9:16 master, and derives a 1:1 center-crop with ffmpeg. Two gating checks run before render (claim verbs must match the product's physical format; the claim beat needs an edge-entry mechanism prop). Use for the motion-graphics-offer-ad format.

Render Myth Vs Fact

Assemble a myth-vs-fact kinetic-typography explainer video ad (≈29.5s, 9:16) from N myth/fact pairs + hook / turn / punch copy + palette + a brand end-card PNG + a VO track — a hook, 3 red-strike MYTH cards that flip to teal-check FACT cards (per-line strikethrough that crosses EVERY wrapped line), a "what actually works" turn, an optional proof reveal, a punch line, and a static end card. DETERMINISTIC assembly with ZERO AI-gen visuals — HTML hyperframes rendered frame-exact via Playwright (`window.renderAt(t)`, animation a pure function of beat-local time), Whisper beat-snap to VO word onsets, concat at a uniform fps, karaoke `.ass` captions burned last (suppressed on the proof + end-card beats), and a VO + optional music mix (music −20 dB, `amix normalize=0`, tail fade). FREE (Python + Playwright + ffmpeg); the recipe supplies the copy / palette / end-card / VO and gates the paid VO / music / Whisper calls to their own capabilities. Use for the myth-vs-fact format.

Newsletter

Learn to build Growth systems with AI

2-3 compounding systems per week using Claude Code, OpenClaw, and more.