CodingIdeas.ai

ShelfScout Agent - Autonomous Planogram Compliance Vision Agent for CPG Brands

CPG field reps spend 20% of every store visit manually checking whether shelves match the planogram. ShelfScout is a computer vision agent that takes a phone photo and tells you exactly what is wrong, missing, or misplaced in under 5 seconds.

Difficulty

advanced

Category

Computer Vision

Market Demand

High

Revenue Score

8/10

Platform

Web App

Vibe Code Friendly

No

Hackathon Score

🏆 9/10

What is it?

Consumer packaged goods brands and their field reps visit thousands of retail locations monthly to verify shelf compliance with planograms — the exact product placement diagrams negotiated with retailers. Current process is a clipboard, a photo, and a hope. ShelfScout is a computer vision AI agent that takes a single shelf photo, compares it against the uploaded planogram image, and returns a compliance report flagging every misplaced, missing, or out-of-stock SKU with bounding box annotations. It targets CPG brand field teams and merchandising agencies, not retailers, keeping the sale simple and the data model clean.

Why now?

Claude 3.5 Sonnet vision handles complex multi-object comparison tasks accurately as of early 2026 — making zero-shot planogram compliance checking viable without any model fine-tuning for the first time.

  • Claude vision comparison of shelf photo against uploaded planogram returning structured JSON of violations.
  • OpenCV preprocessing pipeline normalizing shelf photo perspective before Claude comparison.
  • Annotated output image with bounding boxes on every violation rendered client-side.
  • Per-store compliance score trend dashboard showing improvement over weekly visits.

Target Audience

CPG brand field reps and independent merchandising agencies, ~35k merchandising professionals in the US.

Example Use Case

Derek manages 15 field reps visiting 200 stores monthly for a mid-size snack brand. His reps now take one shelf photo per visit, ShelfScout flags 3 compliance issues per store on average, and the brand recovers an estimated $18k/month in lost facings revenue.

User Stories

  • As a field rep, I want to upload a shelf photo and get compliance results in under 10 seconds, so that I can fix issues before leaving the store.
  • As a brand manager, I want a per-store compliance score dashboard, so that I can track which locations consistently underperform.
  • As a merchandising agency owner, I want white-label compliance reports, so that I can send branded outputs to CPG clients.

Done When

  • Vision check: done when user uploads shelf photo and sees annotated image with bounding boxes on violations within 8 seconds
  • Violations list: done when each violation shows SKU name, violation type, and shelf position below the annotated image
  • Dashboard: done when per-store compliance scores render as a trend line chart with last 4 visits visible
  • Payment: done when Stripe checkout completes and check counter shows 500 remaining.

Is it worth building?

$299/month x 20 agencies = $5,980 MRR at month 4. $299/month x 80 agencies = $23,920 MRR at month 10. Math assumes 4% conversion from cold outreach to merchandising agency directories.

Unit Economics

CAC: $60 via NARMS cold email. LTV: $3,588 (12 months at $299/month). Payback: less than 1 month. Gross margin: 83%.

Business Model

SaaS subscription

Monetization Path

Free trial: 20 compliance checks. Paid: $299/month for 500 checks per month. Enterprise: $999/month unlimited.

Revenue Timeline

First dollar: week 4 via beta upgrade. $1k MRR: month 2. $5k MRR: month 5.

Estimated Monthly Cost

Claude API: $80, Cloudflare R2: $10, Fly.io Python service: $30, Supabase: $25, Vercel: $20, Stripe fees: $25. Total: ~$190/month at launch.

Profit Potential

Full-time viable at $8k-$20k MRR with enterprise upsell.

Scalability

High — add video walkthrough mode, historical compliance trending, and white-label for enterprise CPG.

Success Metrics

Week 2: 5 beta agencies uploading real shelf photos. Month 1: 8 paid conversions. Month 3: 85% retention.

Launch & Validation Plan

DM 20 merchandising agency owners on LinkedIn showing a 60-second Loom of a live compliance check, offer 3 months free for weekly feedback.

Customer Acquisition Strategy

First customer: cold email 30 independent merchandising agencies listed on NARMS directory with a personalized Loom showing their client category shelves being checked. Ongoing: CPG and retail LinkedIn communities, NARMS conference sponsorship, SEO on planogram compliance automation.

What's the competition?

Competition Level

Medium

Similar Products

Trax Retail (enterprise, $50k+), Shelfgram (manual tagging, no automation), Movista (workforce management, not vision). ShelfScout is the only self-serve CV compliance tool under $500/month.

Competitive Advantage

Enterprise tools like Trax and Shelfgram cost $50k+ annually and require hardware. ShelfScout is phone-first, self-serve, and priced for independent agencies.

Regulatory Risks

Low regulatory risk. No PII collected. Store shelf photos are not privacy-sensitive. Standard GDPR data retention policies apply.

What's the roadmap?

Feature Roadmap

V1 (launch): Claude vision comparison, OpenCV preprocessing, annotated report, compliance dashboard. V2 (month 2-3): mobile-optimized upload, multi-store batch check, PDF export. V3 (month 4+): white-label agency branding, historical SKU trend analytics, Slack compliance alert push.

Milestone Plan

Phase 1 (Week 1-2): Python FastAPI service, R2 upload, and Claude comparison working end-to-end. Phase 2 (Week 3-4): ComplianceReport UI, dashboard, and Stripe billing live. Phase 3 (Month 2): 10 paying agencies and PDF export shipped.

How do you build it?

Tech Stack

Next.js, Claude API vision, OpenCV via Python microservice, Supabase, Cloudflare R2, Stripe — build API logic with Cursor, UI with v0.

Suggested Frameworks

OpenCV for image preprocessing, Claude API vision for planogram comparison, FastAPI for Python vision microservice

Time to Ship

4 weeks

Required Skills

Claude vision API, FastAPI microservice, OpenCV image preprocessing, bounding box annotation rendering.

Resources

Anthropic Claude vision structured output docs, OpenCV Python docs, Cloudflare R2 SDK, FastAPI quickstart.

MVP Scope

app/page.tsx (landing), app/dashboard/page.tsx (store list and compliance scores), app/api/check/route.ts (orchestrator calling Python service and Claude), app/api/upload/route.ts (planogram and shelf photo upload to R2), lib/db/schema.ts (Drizzle schema), python/vision_service.py (FastAPI + OpenCV preprocessing), lib/claude.ts (planogram comparison prompt), components/ComplianceReport.tsx (annotated image + violation list), .env.example, seed.ts (demo planogram and shelf photo).

Core User Journey

Upload planogram -> take shelf photo -> receive annotated violation report in under 8 seconds -> share with brand manager -> upgrade to paid.

Architecture Pattern

User uploads shelf photo and planogram to R2 -> app/api/check calls Python FastAPI service -> OpenCV normalizes perspective -> Claude vision compares against planogram -> violations JSON saved to Supabase -> annotated image rendered in ComplianceReport component.

Data Model

User has many Stores. Store has many ComplianceChecks. ComplianceCheck has one PlanogramImage and one ShelfPhoto and many Violations. Violation has SKU, bounding box, and type enum.

Integration Points

Claude API vision for planogram comparison, OpenCV via FastAPI for image preprocessing, Cloudflare R2 for image storage, Supabase for compliance records, Stripe for payments.

V1 Scope Boundaries

V1 excludes: mobile app, video mode, custom SKU database, multi-brand team accounts, ERP integration.

Success Definition

A paying field rep takes a real shelf photo, receives an annotated compliance report in under 8 seconds, and sends it to their brand manager without any founder involvement.

Challenges

The hardest non-technical problem is proving ROI to a merchandising director before they have any data — a free 20-check trial with a pre-loaded demo planogram is the only way to get past the first conversation.

Avoid These Pitfalls

Do not try to train a custom SKU detection model — Claude vision zero-shot is good enough for v1. Do not build mobile app first — web upload works for beta. First 10 agency customers take 3x longer to close than building the product.

Security Requirements

Supabase Auth with Google OAuth. RLS on Store and ComplianceCheck tables. R2 images served via signed URLs only. Rate limit 30 checks/min per user. GDPR: image deletion on account close.

Infrastructure Plan

Vercel for Next.js. Supabase for Postgres. Cloudflare R2 for images. Fly.io for Python FastAPI service. Sentry for errors. Total: ~$190/month.

Performance Targets

50 DAU at launch, 500 checks/day. Full check pipeline under 8s. Dashboard load under 2s. R2 signed URLs cached for 1 hour.

Go-Live Checklist

  • Python service health check passing
  • Stripe checkout tested
  • Sentry live
  • R2 signed URL access verified
  • Custom domain with SSL
  • Privacy policy published
  • 5 beta agency users signed off
  • Rollback: Fly.io rollback and Vercel redeploy
  • ProductHunt draft ready.

First Run Experience

On first run: a pre-loaded demo planogram and shelf photo are seeded with a pre-computed compliance report showing 4 violations annotated. User can immediately view the annotated output and violation list. No manual config required: demo check loads from seed.ts without uploading any images.

How to build it, step by step

1. Define Drizzle schema for Store, ComplianceCheck, and Violation with bounding box and type fields. 2. Run npx create-next-app with App Router and Tailwind. 3. Build FastAPI Python microservice in python/vision_service.py with OpenCV perspective correction endpoint. 4. Deploy Python service to Fly.io and confirm health endpoint responds. 5. Build R2 upload helper in app/api/upload/route.ts for planogram and shelf photo. 6. Build Claude vision comparison prompt in lib/claude.ts returning structured JSON violations array. 7. Build orchestrator route in app/api/check/route.ts calling Python service then Claude then saving to Supabase. 8. Build ComplianceReport component rendering annotated image using canvas API with bounding boxes and violation list below. 9. Build dashboard page showing per-store compliance score trend using Recharts. 10. Verify: upload a real shelf photo and planogram, confirm annotated output appears with at least one correctly identified violation within 8 seconds.

Generated

April 19, 2026

Model

claude-sonnet-4-6

Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.