openclaw
← All products
Intelligence & Research

pricing-intel

Pricing intelligence for SMB e-commerce. Daily competitor scrape + Qwen-powered SKU matching at $0 inference cost. Undercut Prisync by 70%.

Choose a plan (2)
Starter
SMB e-commerce competitor pricing — 50 SKUs tracked
subscription monthly · Get plan →
Growth
pricing-intel — 250 SKUs tracked + multi-source comp
subscription monthly · Get plan →
Source on GitHub

API quickstart

After purchase, you'll receive an API key (ock_...) by email. Call the endpoint below with that key as the bearer token.

Request fields
  • competitorstring
  • page_textstring — pasted pricing-page content
curl -X POST -H 'Authorization: Bearer ock_xxx' \
     -H 'Content-Type: application/json' \
     -d '{"competitor": "Stripe", "page_text": "Standard 2.9% + 30\u00a2 per transaction. Pro: custom..."}' \
     https://openclawapi.vercel.app/v1/pricing-intel/run
Model: claude-haiku-4-5-20251001. Quota enforced per plan.

Launch kit

pricing-intel — launch kit

1-liner

Pricing intelligence for SMB e-commerce. Daily competitor scrape + Qwen-powered SKU matching at $0 inference cost. Undercut Prisync by 70%.

Tweet hook

Prisync charges $329/mo to track 1k SKUs.

I built the same thing using local Qwen for inference. Marginal cost per SKU per day: ~$0.

Repricing this market at $99/mo for 250 SKUs.

Stack + math 🧵

Reddit

  • r/ecommerce: "How are y'all tracking competitor prices? I built a tool because Prisync was too expensive"
  • r/Shopify: "Free 14-day trial of price-tracking SaaS — no card. Looking for 10 testers."
  • r/SaaS: "$0 marginal LLM cost SaaS — Qwen-local stack for repricing competitors"

Cold-email ICP

Shopify merchants $1-10M GMV with 100-500 SKUs in price-sensitive categories (apparel, beauty, home, supplements). LinkedIn filter: founder + DTC + employee count 5-25.

Cold-email template

Subject: 250 SKUs, ~$99/mo

Hi {first} — saw {company} on {recent signal}. Quick offer: I built
a price-tracking tool that runs at ~70% under Prisync (local Qwen
for the SKU-matching step keeps inference at ~$0).

If you'd like to test on your top 50 competitor URLs free for 30 days,
reply with "test" and I'll set it up by tomorrow.

SEO content (5 article angles)

  1. "Prisync vs Price2Spy vs pricing-intel: 2026" — comparison
  2. "How much does dynamic repricing actually move the needle?" — research
  3. "Self-hosted competitor-price tracking: setup guide"
  4. "Why Qwen 30B is the right model for SKU matching"
  5. "DTC pricing benchmarks 2026 by category"

Documentation

pricing-intel

Pricing intelligence for SMB e-commerce. Daily competitor scrape + Qwen-powered product matching at $0 marginal LLM cost.

Why this exists

Prisync, Competera, Price2Spy, and similar charge $59-329/mo+ per SKU watched. Their unit economics force them upmarket. The SMB Shopify seller with 50-500 SKUs gets squeezed: too many SKUs to track manually, not enough volume to justify enterprise pricing.

We use local Qwen for the product-matching step (the operating-cost hot path) which means our marginal cost per scrape ≈ infrastructure divided by volume — no per-call LLM fee. We can price-undercut Prisync by ~70% at gross margin parity.

Pricing tiers

Plan SKUs tracked Price Audience
Starter 50 $99/mo indie Shopify, Etsy makers
Growth 250 $299/mo DTC brands $1-5M GMV
Scale 1000 $799/mo DTC $5-20M GMV
Enterprise unlimited call us DTC $20M+

Compare:

  • Prisync: $59 (limited) → $329 → $1500/mo
  • Competera: starts $1500/mo
  • Price2Spy: $24 (10 SKUs) → $475/mo

We're aimed at the bottom of the market that the incumbents won't service well.

Architecture

┌─────────────┐    ┌──────────────────────┐    ┌─────────────────┐
│ scrape.py   │───►│ Qwen normalize.py    │───►│ storage.py      │
│ (multi-     │    │ (product matching)   │    │ SQLite          │
│  strategy)  │    │ qwen3-30b-a3b-2507   │    │                 │
└─────────────┘    └──────────────────────┘    └────────┬────────┘
                                                        │
                                                        ▼
                                               ┌────────────────┐
                                               │ alerts.py      │
                                               │ (>X% delta)    │
                                               └────────┬───────┘
                                                        │
                                  ┌─────────────────────┴──┐
                                  │ webhook + email digest │
                                  └────────────────────────┘
  • scrape.py — Amazon, Shopify, Etsy adapters + generic fallback. httpx for static, Playwright for SPA (lazy import).
  • normalize.py — Qwen extracts brand/model/variant from freeform titles for cross-merchant SKU matching.
  • qwen_client.py — Talks to LM Studio's OpenAI-compatible endpoint at http://localhost:1234/v1/.
  • storage.py — SQLite schema: merchants, watches, observations, alerts.
  • alerts.py — Threshold-based delta detection.
  • api.py — FastAPI surface for the merchant dashboard.
  • cli.py — Ops tool (priceintel scan, priceintel watches, etc).

Run locally

cd C:\openclaw-products\pricing-intel
python -m venv .venv
.\.venv\Scripts\activate
pip install -e ".[dev]"

# Make sure LM Studio is running with qwen3-30b-a3b-2507 loaded.
# Defaults assume http://localhost:1234/v1/

priceintel add-merchant "test@example.com"
priceintel add-watch --merchant 1 "https://example.com/products/widget"
priceintel scan
priceintel pending-alerts

Test

pytest tests/ -v

Deploy

  • Backend: Railway or Fly (Dockerfile coming v0.2)
  • Worker: cron daily at 4am UTC: priceintel scan
  • Email digests via Resend/SES
  • Frontend: Next.js dashboard (v0.2)

Roadmap

  • Playwright fallback for SPA pages (currently degrades to error)
  • Loose product matching (token-similarity when canonical key differs)
  • Email digest sender
  • Stripe billing integration
  • Next.js merchant dashboard
  • Slack alert integration
  • CSV bulk-add of URLs
  • Historical price chart per watch
  • Stockout alerts (independent of price changes)