Install
$ agentstack add skill-40rty-ai-shopify-admin-skills-shopify-admin-price-elasticity-analyzer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Purpose
Analyzes price-to-velocity relationships across the product catalog to identify which products are price-sensitive and where optimal price points might exist. Compares products within the same category/vendor at different price tiers, and examines how products with compare-at prices (on sale) perform vs. full-price items. Read-only — no mutations.
Prerequisites
- Authenticated Shopify CLI session:
shopify store auth --store --scopes read_orders,read_products - API scopes:
read_orders,read_products
Parameters
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | store | string | yes | — | Store domain | | daysback | integer | no | 90 | Sales lookback window | | groupby | string | no | product_type | Group comparison: product_type, vendor, or collection | | format | string | no | human | Output format: human or json |
Safety
> ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.
Workflow Steps
- OPERATION:
products— query
Inputs: first: 250, status: ACTIVE, select id, title, productType, vendor, variants { price, compareAtPrice, inventoryQuantity }, pagination cursor Expected output: All active products with pricing data
- OPERATION:
orders— query
Inputs: query: "created_at:>=''", first: 250, select lineItems { variant { id, price }, quantity }, pagination cursor Expected output: Sales data per variant for velocity calculation
- For each product/variant, calculate:
- Units sold per day (velocity)
- Revenue per day
- Current price point
- Has compare-at price? (on sale indicator)
- Sale discount % = (compareAtPrice - price) / compareAtPrice × 100
- Within each group (product_type or vendor):
- Sort by price ascending
- Calculate velocity at each price tier
- Identify price-velocity correlation (negative = price-sensitive, flat = price-insensitive)
- Compare sale items velocity vs. full-price velocity
- Flag products where small price changes could significantly change volume
- OPERATION:
productVariants— query (enrichment for variants with compare-at prices)
Inputs: Variant IDs where compareAtPrice is set Expected output: Historical pricing context
GraphQL Operations
# products:query — validated against api_version 2025-01
query ActiveProductsWithPricing($after: String) {
products(first: 250, after: $after, query: "status:active") {
edges {
node {
id
title
productType
vendor
variants(first: 100) {
edges {
node {
id
price
compareAtPrice
sku
inventoryQuantity
}
}
}
}
}
pageInfo { hasNextPage endCursor }
}
}
# orders:query — validated against api_version 2025-01
query SalesVelocityData($query: String!, $after: String) {
orders(first: 250, after: $after, query: $query) {
edges {
node {
createdAt
lineItems(first: 50) {
edges {
node {
variant { id price }
quantity
}
}
}
}
}
pageInfo { hasNextPage endCursor }
}
}
# productVariants:query — validated against api_version 2025-01
query VariantsOnSale($query: String, $after: String) {
productVariants(first: 250, after: $after, query: $query) {
edges {
node {
id
price
compareAtPrice
product { id title productType vendor }
}
}
pageInfo { hasNextPage endCursor }
}
}
Session Tracking
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Price Elasticity Analyzer ║
║ Store: ║
║ Started: ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL]
→ Params:
→ Result:
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
PRICE ELASTICITY ANALYSIS ( days)
Products analyzed:
Product groups compared:
─────────────────────────────
PRICE-SENSITIVE (high elasticity):
"" — velocity drops % per $10 price increase
Top candidate: "" at $ — consider testing $
PRICE-INSENSITIVE (low elasticity):
"" — velocity stable across price range $-$
Top candidate: "" at $ — room to increase
SALE EFFECTIVENESS:
Products on sale: Avg discount: %
Sale velocity lift: +% vs. full-price peers
Output: price_elasticity_.csv
══════════════════════════════════════════════
Output Format
CSV file price_elasticity_.csv with columns: product_id, product_title, product_type, vendor, current_price, compare_at_price, daily_velocity, revenue_per_day, group_avg_velocity, price_rank_in_group, elasticity_indicator, recommendation
Error Handling
| Error | Cause | Recovery | |-------|-------|----------| | THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times | | Small groups | Only 1-2 products in a type | Skip group — insufficient data for comparison | | No sales | Product has zero sales in window | Include at velocity=0 for comparison |
Best Practices
- Best results require at least 5+ products per group for meaningful comparison.
- Price-insensitive products are candidates for price increases — test with
bulk-price-adjustment. - Price-sensitive products may benefit from promotional pricing — test with
discount-ab-analysis. - Products on sale with minimal velocity lift are wasting margin — remove compare-at price.
- Run quarterly to track how price sensitivity changes with seasons.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: 40RTY-ai
- Source: 40RTY-ai/shopify-admin-skills
- License: MIT
- Homepage: http://skills.40rty.ai
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.