30 Claude Prompts That Build Ecommerce Dashboards
Describe the store you run and Claude returns a working ecommerce dashboard as one self-contained HTML file with sample orders, ads, and fulfillment rows. Prompts for revenue, merchandising, ads ROAS, fulfillment, returns, and cohorts. A working screen you can click in the chat, not "give me a chart."
In short: This page contains 30 copy-paste ready prompts, organized into 6 categories with a description and pro tip for each. The first 5 prompts are free instantly, no signup needed. Hand-curated and tested by the AI Academy team.
Revenue
5 promptsStore Revenue Pulse
1/30โจ What it does
Claude builds a store revenue pulse for [STORE] with daily sales, orders, and AOV as a working screen you can click in the chat. Click the daily chart, then swap the sample numbers with last week's orders.
You are an ecommerce analyst who builds daily revenue pulses store operators can read in two minutes. <context> I need a store revenue pulse as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic sample orders so it opens as a working screen I can click in the chat. </context> <inputs> - Store name: [STORE] - Currency: [E.G. USD] - Period: [E.G. LAST 14 DAYS] - Day-cut timezone and hour: [E.G. AMERICA/NEW_YORK, 02:00] - Channels if known: [E.G. DTC, MARKETPLACE, WHOLESALE] </inputs> <task> Build the dashboard with: a header showing [STORE] and the period; a KPI row (revenue, orders, AOV, units, revenue vs prior period); a daily bar of revenue with a 7-day moving average; a small orders-and-AOV dual line; a channel mix donut if channels are listed; and a day table with date, revenue, orders, AOV, and percent vs prior day. Generate sample daily totals in labeled JS constants and compute AOV, the moving average, and every percent change from those constants. </task> <constraints> - One self-contained HTML file; only one charting library from a CDN. - All data lives in clearly labeled JS constants near the top so I can swap in my own. - AOV is revenue divided by orders; never hardcode the KPI cards. - Responsive grid, accessible contrast, green/red change arrows plus a non-color cue. </constraints> <format> Return the full HTML file, then list which array to replace with last week's orders and which chart to click first. </format>
Pro tip: Give Claude the real timezone and the hour you cut the day. A midnight UTC close will fight a store that cuts at 2am local.
Channel Mix Revenue
2/30โจ What it does
Claude builds a channel mix revenue board for [STORE] with DTC, marketplace, and wholesale as a working screen you can click in the chat. Click a channel bar, then swap the sample numbers with your channel export.
You are an ecommerce finance analyst who splits revenue by selling channel before anyone celebrates a blended total. <context> I need a channel mix revenue dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic channel rows so I can click a channel as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Channels: [E.G. DTC, AMAZON, WHOLESALE, RETAIL] - Period: [E.G. LAST 30 DAYS] - Fees or take rates if known: [E.G. AMAZON 15% OR "INVENT PLAUSIBLE"] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (total revenue, DTC share, marketplace share, blended take rate); a stacked area of daily revenue by channel; a bar of revenue and net after fees by channel; a channel table with orders, revenue, AOV, estimated fees, and net; and a callout of the channel that looks biggest before fees and smaller after. Seed labeled JS constants and compute share, AOV, fees, and net. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Net after fees is computed from an editable take-rate constant. - Do not invent contract fees I marked unknown; mark those [VERIFY]. - Responsive and accessible; consistent channel colors. </constraints> <format> Return the full HTML file, then explain the fee math and how to paste a channel export. </format>
Pro tip: Name channels the way your OMS tags them. Merging Amazon and DTC into one web line hides the fee that eats the margin.
Category Contribution
3/30โจ What it does
Claude builds a category contribution dashboard for [CATALOG] with revenue share and margin as a working screen you can click in the chat. Click a category row, then swap the sample numbers with your category sales.
You are a merchandising finance analyst who ranks categories by contribution, not vanity sales. <context> I need a category contribution dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic category rows so I can click a category as a working screen in the chat. </context> <inputs> - Catalog or brand: [CATALOG] - Categories: [6-10 NAMES OR "INVENT REALISTIC ONES"] - Period: [E.G. THIS MONTH] - Fields per category: [REVENUE, UNITS, COGS OR LANDED COST] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (revenue, contribution, blended margin %, top category share); a horizontal Pareto of contribution by category; a sortable table with revenue, units, COGS, contribution, margin %, and share; a revenue-versus-margin scatter so high-volume weak-margin categories stand out; and a callout of the category to protect versus the category to fix. Generate sample category rows in labeled JS constants and compute contribution, margin, and share. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Contribution is revenue minus COGS; margin is contribution over revenue. - Table sort works client-side; selected row highlights the Pareto bar. - Responsive and accessible; currency consistent. </constraints> <format> Return the full HTML file, then explain the contribution formula and how to paste a category sales file. </format>
Pro tip: Put landed cost on the category, not just list price. A hero category can rank first on revenue and last on contribution.
AOV and Order Mix
4/30โจ What it does
Claude builds an AOV and order-mix dashboard for [STORE] with ticket bands and units per order as a working screen you can click in the chat. Click a ticket band, then swap the sample numbers with your order export.
You are an ecommerce analyst who reads average order value through ticket bands and units per order, not a single AOV card. <context> I need an AOV and order-mix dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic orders so I can click a ticket band as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Ticket bands: [E.G. UNDER 40, 40-80, 80-150, 150+] - Period: [E.G. LAST 30 DAYS] - Currency: [E.G. USD] - Whether to show new vs returning: [YES / NO] </inputs> <task> Build the dashboard with: a KPI row (AOV, median order value, units per order, share of orders in the top band); a histogram of orders by ticket band; a line of daily AOV; a table of bands with orders, revenue, share of revenue, and units per order; and a callout of whether revenue is riding a few large tickets. Generate sample order rows in labeled JS constants and assign each order to a band from editable band edges. Compute AOV, median, and units per order from the rows. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Band assignment is computed from the order total, not hardcoded. - Clicking a band filters the KPI row and the callout. - Responsive and accessible; currency consistent. </constraints> <format> Return the full HTML file, then explain the band edges and how to paste an order export. </format>
Pro tip: Use the ticket bands your team already argues about. Even $25 slices hide whether the store is selling add-ons or just raising price.
Promo vs Full Price
5/30โจ What it does
Claude builds a promo versus full-price dashboard for [STORE] with discount mix and margin drag as a working screen you can click in the chat. Click the mix chart, then swap the sample numbers with your promo calendar.
You are an ecommerce pricing analyst who splits promo revenue from full-price revenue before anyone calls a sale a win. <context> I need a promo versus full-price dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic orders so I can click the mix as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Period: [E.G. LAST 30 DAYS PLUS THE SALE WEEK] - Promo types: [E.G. SITEWIDE CODE, COLLECTION SALE, FREE SHIP] - Known promo dates: [LIST OR "INVENT A PLAUSIBLE SALE WEEK"] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (promo share of revenue, average discount %, full-price AOV, promo AOV, estimated margin drag); a stacked daily bar of full-price versus promo revenue; a table of promo types with orders, revenue, discount dollars, and average percent off; a small margin-drag note using an editable gross-margin constant; and a callout of the promo that bought the most revenue at the worst discount. Seed labeled JS constants and compute share, discount %, and drag. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Promo versus full-price is a field on each sample order, not a hardcoded split. - Margin drag uses an editable baseline margin; do not invent a true landed cost I did not give. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the drag math and how to paste orders tagged with a promo code. </format>
Pro tip: Tag the promo code or the compare-at gap on each order. A blended discount percent cannot tell you if the code is doing the damage.
Merchandising
5 promptsSKU Scoreboard
6/30โจ What it does
Claude builds a SKU scoreboard for [CATALOG] with units, revenue, and sell-through as a working screen you can click in the chat. Click a SKU row, then swap the sample numbers with your product report.
You are a merchandiser who builds SKU scoreboards buyers can use on a Monday reorder call. <context> I need a SKU scoreboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic SKUs so I can click a row as a working screen in the chat. </context> <inputs> - Catalog name: [CATALOG] - SKUs: [10-16 NAMES OR "INVENT REALISTIC ONES"] - Period: [E.G. LAST 28 DAYS] - Fields: [UNITS, REVENUE, ON HAND, ON ORDER, COST] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (SKUs shown, revenue from top 20%, units, average sell-through); a sortable SKU table with units, revenue, on hand, sell-through %, weeks of cover, and contribution if cost is present; a Pareto of revenue; filters for dogs (low sell-through, high on hand) and stars (high sell-through); and a callout of one reorder candidate and one markdown candidate. Generate sample SKU rows in labeled JS constants and compute sell-through and weeks of cover from units and on-hand. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Sell-through is units sold over (units sold + on hand) unless I give a different rule in a comment. - Table search and sort work. Clicking a row focuses the Pareto bar. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain sell-through and how to paste a product report. </format>
Pro tip: Rank by contribution or sell-through, not units. A cheap accessory can top the unit chart and waste the buy.
Weeks of Cover
7/30โจ What it does
Claude builds a weeks-of-cover dashboard for [WAREHOUSE] with on-hand units and stockout risk as a working screen you can click in the chat. Click a low-cover SKU, then swap the sample numbers with your inventory file.
You are an inventory planner who builds weeks-of-cover dashboards that flag stockouts before the PDP goes empty. <context> I need a weeks-of-cover dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic on-hand and velocity so I can click a low-cover SKU as a working screen in the chat. </context> <inputs> - Warehouse or store: [WAREHOUSE] - SKUs: [10-16 OR "INVENT"] - Velocity window: [E.G. LAST 4 WEEKS] - Cover targets: [E.G. GREEN 8+, AMBER 4-8, RED UNDER 4] - Incoming POs if known: [UNITS AND ETA OR "INVENT A FEW"] </inputs> <task> Build the dashboard with: a KPI row (SKUs under target, units at risk, earliest stockout date, inbound units); a scatter of weeks of cover versus weekly velocity; a sortable table with on hand, weekly velocity, weeks of cover, inbound, and projected stockout date; a red/amber/green cover strip; and a callout of the SKU that stockouts first if velocity holds. Compute weeks of cover as on hand divided by weekly velocity, and stockout date from today plus cover weeks, then add inbound if the ETA lands before stockout. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Cover and stockout dates are computed; handle zero velocity without crashing (show n/a). - Thresholds live in editable constants. Clicking a red SKU focuses the scatter. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the cover math and how to paste an inventory file. </format>
Pro tip: Use the last four weeks of sell-through as the velocity, not last week's spike. One promo week will fake a stockout.
Collection Mix
8/30โจ What it does
Claude builds a collection mix dashboard for [COLLECTIONS] with revenue, units, and attach rate as a working screen you can click in the chat. Click a collection card, then swap the sample numbers with your collection sales.
You are a merchandiser who builds collection mix dashboards for a storefront homepage. <context> I need a collection mix dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic collections so I can click a collection card as a working screen in the chat. </context> <inputs> - Collections to compare: [COLLECTIONS] - Period: [E.G. LAST 30 DAYS] - Metrics: [REVENUE, UNITS, SESSIONS IF KNOWN, ATTACH RATE IF KNOWN] - Store name: [STORE] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (collections shown, revenue, best collection, weakest conversion if sessions exist); collection cards with revenue, units, and a spark of the last 14 days; a stacked share chart; a table with revenue, units, AOV, sessions, conversion, and attach rate when those fields exist; and a callout of a high-traffic low-converting collection. Generate sample collection rows in labeled JS constants and compute AOV and conversion from counts. If sessions are unknown, omit conversion rather than inventing traffic. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Clicking a card filters the table and the share chart. - Do not double-count a note that the same SKU can live in two collections; add a comment. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain which fields to paste from a collection sales export. </format>
Pro tip: One SKU should not sit in three collections that all claim the same order. Deduplicate before you trust share.
Markdown Board
9/30โจ What it does
Claude builds a markdown board for [PRICE LIST] with discount depth and leftover units as a working screen you can click in the chat. Click a markdown row, then swap the sample numbers with your price file.
You are a merchandising analyst who builds markdown boards that show depth, leftover units, and whether the cut is working. <context> I need a markdown dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic priced SKUs so I can click a markdown row as a working screen in the chat. </context> <inputs> - Price list or season: [PRICE LIST] - SKUs on markdown: [8-14 OR "INVENT"] - Fields: [LIST PRICE, SALE PRICE, UNITS LEFT, UNITS SOLD SINCE MARKDOWN, DAYS ON SALE] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (SKUs on sale, average percent off, leftover units, sell-through since markdown); a bar of leftover units by SKU colored by discount depth; a sortable table with list, sale, percent off, days on sale, units sold since cut, leftover, and a simple sell-through-since-cut rate; and a callout of a deep cut that is still not moving versus a shallow cut that is. Compute percent off and sell-through from the constants. Flag leftover units above an editable threshold that are also 30 percent or more off. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Percent off is (list minus sale) over list; handle a zero list without crashing. - Clicking a row highlights the leftover bar. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the stuck-markdown flag and how to paste a price file. </format>
Pro tip: Show leftover units next to percent off. A 40 percent cut on a SKU with two units left is not a clearance plan.
Bundle Attach Rate
10/30โจ What it does
Claude builds a bundle attach-rate dashboard for [BUNDLES] with attach %, lift, and leftover singles as a working screen you can click in the chat. Click a bundle row, then swap the sample numbers with your attach export.
You are a merchandiser who builds bundle and attach-rate dashboards. <context> I need a bundle attach-rate dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic hero-and-add-on pairs so I can click a bundle as a working screen in the chat. </context> <inputs> - Bundles or attach pairs: [BUNDLES] - Period: [E.G. LAST 30 DAYS] - Hero SKU for each pair: [NAME] - Add-on SKU: [NAME] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (pairs shown, best attach %, revenue from attached add-ons, leftover singles of the add-on); a bar of attach % by pair; a table with hero orders, attached orders, attach %, add-on revenue, leftover add-on units, and a simple AOV lift versus hero-only orders; and a callout of the pair to merchandize harder versus the pair to kill. Generate sample pair counts in labeled JS constants. Attach % is attached orders over hero orders. AOV lift is (hero-plus-add-on AOV minus hero-only AOV). </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Attach % and lift are computed from the pair counts, not hardcoded. - Clicking a pair updates the callout. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the hero-order denominator and how to paste an attach export. </format>
Pro tip: Count attach on orders that contain the hero SKU, not on all orders. Storewide attach makes every bundle look dead.
Paid Ads
5 promptsBlended MER and ROAS
11/30โจ What it does
Claude builds a blended MER and ROAS dashboard for [BRAND] with spend, revenue, and payback as a working screen you can click in the chat. Click the MER line, then swap the sample numbers with this week's ads and sales.
You are a performance-marketing analyst who builds blended MER and platform ROAS dashboards for ecommerce brands. <context> I need a blended MER and ROAS dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic daily spend and sales so I can click the MER line as a working screen in the chat. </context> <inputs> - Brand name: [BRAND] - Period: [E.G. LAST 30 DAYS] - Ad platforms: [E.G. META, GOOGLE, TIKTOK] - Daily store revenue: [INVENT A PLAUSIBLE SERIES] - New-customer share if known: [PERCENT OR "INVENT"] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (ad spend, store revenue, MER, blended platform ROAS, estimated CAC if new-customer revenue is present); a dual line of daily spend versus store revenue; a MER line with an editable target; a platform table with spend, platform-reported purchases, platform ROAS, and share of spend; and a callout of days MER sat under target. MER is store revenue divided by ad spend. Platform ROAS is platform-reported revenue divided by that platform's spend. Keep those two formulas visually separate. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - MER and ROAS are computed from constants; never hardcode the cards. - Target MER lives in an editable constant; days under target flagged. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain MER versus platform ROAS and how to paste this week's ads and sales. </format>
Pro tip: Put total store revenue in the MER card, not attributed purchases only. Platform ROAS will always look kinder than MER.
Campaign ROAS Board
12/30โจ What it does
Claude builds a campaign ROAS board for [AD ACCOUNT] with spend, purchases, and MER by campaign as a working screen you can click in the chat. Click a campaign row, then swap the sample numbers with your ads export.
You are a paid-media analyst who builds campaign ROAS boards ecommerce operators can cut spend from. <context> I need a campaign ROAS board as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic campaigns so I can click a campaign row as a working screen in the chat. </context> <inputs> - Ad account or brand: [AD ACCOUNT] - Platforms: [E.G. META, GOOGLE] - Campaign types: [PROSPECTING, RETARGETING, BRAND] - Period: [E.G. LAST 14 DAYS] - Campaigns: [8-12 NAMES OR "INVENT"] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (spend, purchases, blended ROAS, wasted spend under an editable ROAS floor); a bar of ROAS by campaign colored by type; a spend-versus-ROAS scatter; a sortable campaign table with type, spend, impressions, clicks, CTR, purchases, CPA, and ROAS; and a callout of the campaign to kill versus the campaign to scale. Generate sample campaign rows in labeled JS constants and compute CTR, CPA, and ROAS. Flag any campaign under the ROAS floor that also spent above an editable waste threshold. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Type colors stay consistent. Clicking a row highlights the scatter point. - Do not invent incrementality. Label platform-reported purchases as platform-reported. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the kill-or-scale flags and how to paste an ads export. </format>
Pro tip: Split prospecting from retargeting. A retargeting ROAS of 8 sitting next to a prospecting ROAS of 1.4 is not one number.
New vs Returning CAC
13/30โจ What it does
Claude builds a new versus returning CAC dashboard for [STORE] with first-order cost and repeat share as a working screen you can click in the chat. Click the CAC split, then swap the sample numbers with your customer orders.
You are an ecommerce growth analyst who splits new-customer CAC from returning-customer spend. <context> I need a new versus returning CAC dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic daily new and returning orders so I can click the CAC split as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Period: [E.G. LAST 30 DAYS] - Ad spend for the period: [AMOUNT OR "INVENT"] - New versus returning order counts and revenue: [INVENT PLAUSIBLE DAILY SERIES] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (new orders, returning orders, new-customer CAC, returning revenue share, new-customer AOV); a stacked daily bar of new versus returning revenue; a line of new-customer CAC; a table of weekly new orders, spend, CAC, and returning revenue; and a callout of weeks CAC rose while returning share hid it in a blended number. New-customer CAC is ad spend divided by new orders unless I give a spend split. If I do not split spend, put all spend on new customers and label returning CAC as n/a. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - CAC is computed from spend and new orders, not hardcoded. - Clicking a week updates the callout. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the new-customer denominator and how to paste customer-order tags. </format>
Pro tip: Put ad spend only against new customers unless you truly retarget buyers. Blended CAC on repeat orders will look cheap and lie.
Creative ROAS
14/30โจ What it does
Claude builds a creative ROAS dashboard for [CREATIVES] with spend, CTR, and purchase ROAS as a working screen you can click in the chat. Click a creative row, then swap the sample numbers with your ads manager export.
You are a paid social analyst who builds creative ROAS dashboards for ecommerce ads managers. <context> I need a creative ROAS dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic ads so I can click a creative row as a working screen in the chat. </context> <inputs> - Brand or account: [CREATIVES] - Platforms: [E.G. META, TIKTOK] - Period: [E.G. LAST 14 DAYS] - Creatives: [8-12 NAMES OR "INVENT REALISTIC ONES"] - Formats: [E.G. UGC, STATIC, HOOK TEST] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (spend, purchases, blended creative ROAS, average frequency); a scatter of CTR versus ROAS; a sortable creative table with format, spend, impressions, CTR, frequency, purchases, CPA, and ROAS; a kill list (high frequency, falling or weak CTR, weak ROAS); and a scale list (strong ROAS, frequency still under an editable cap). Generate sample creative rows in labeled JS constants and compute CTR, CPA, and ROAS. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Frequency and CTR thresholds live in editable constants. - Clicking a creative highlights the scatter point and the kill-or-scale tag. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the kill-or-scale rules and how to paste an ads manager export. </format>
Pro tip: Put frequency next to CTR. A falling CTR at frequency 4 is usually the creative, not the audience.
Channel Spend vs Revenue
15/30โจ What it does
Claude builds a channel spend versus revenue dashboard for [CHANNELS] with ROAS and wasted-spend flags as a working screen you can click in the chat. Click a channel bar, then swap the sample numbers with your channel spend.
You are an ecommerce media-mix analyst who puts spend and store revenue on the same channel rows. <context> I need a channel spend versus revenue dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic channel rows so I can click a channel as a working screen in the chat. </context> <inputs> - Channels: [CHANNELS] - Period: [E.G. LAST 30 DAYS] - Paid channels with spend: [LIST] - Organic or CRM channels with $0 spend: [E.G. EMAIL, SEO, DIRECT] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (paid spend, attributed or store revenue you seed, blended paid ROAS, paid share of revenue); a grouped bar of spend versus revenue by channel; a table with spend, revenue, ROAS or n/a, CPA if purchases exist, and share of revenue; a wasted-spend flag for paid channels under an editable ROAS floor; and a callout of how much of the week is carried by $0-spend channels. Compute ROAS only when spend is greater than zero. Show organic ROAS as n/a, never as infinity. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Paid ROAS ignores $0-spend rows. Clicking a channel filters the callout. - Do not invent incrementality studies. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the n/a rule and how to paste channel spend and revenue. </format>
Pro tip: Include organic and email as $0 spend rows. The useful view is how much paid is carrying the week, not a fake organic ROAS.
These prompts give you the what. Tutorials give you the why.
Learn when to use extended thinking, how to build Claude Projects, and workflows that compound. 300+ tutorials and growing.
Fulfillment
5 promptsFulfillment SLA Board
16/30โจ What it does
Claude builds a fulfillment SLA board for [WAREHOUSE] with cycle time and on-time rate as a working screen you can click in the chat. Click a late order, then swap the sample numbers with your WMS export.
You are a fulfillment analyst who builds SLA boards warehouse leads can run a standup from. <context> I need a fulfillment SLA dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic orders so I can click a late order as a working screen in the chat. </context> <inputs> - Warehouse name: [WAREHOUSE] - SLA: [E.G. SHIP SAME DAY IF PAID BY 14:00, ELSE NEXT BUSINESS DAY] - Period: [E.G. LAST 14 DAYS] - Statuses: [PAID, PICKING, PACKED, SHIPPED, LATE] - Sample order count: [E.G. 40] </inputs> <task> Build the dashboard with: a KPI row (orders, on-time ship %, median hours paid-to-ship, late orders); a daily on-time bar; a cycle-time histogram in hours; a late-order watchlist with order id, paid-at, due-at, shipped-at or still open, hours late, and reason if present; and a cutoff strip showing today's paid-by-14:00 queue. Generate sample orders with paid-at and shipped-at in labeled JS constants. Compute hours in cycle and the late flag from the SLA rule in an editable function. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Late flags are computed from paid-at and the SLA, not hardcoded. - Clicking a late row expands timestamps. Open orders with a due time in the past count as late. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the SLA function and how to paste a WMS export. </format>
Pro tip: Start the clock at paid-at, not at printed-at. A warehouse that prints late will hide the miss if you start on the label.
Carrier Scorecard
17/30โจ What it does
Claude builds a carrier scorecard for [CARRIERS] with on-time delivery, cost, and claims as a working screen you can click in the chat. Click a carrier card, then swap the sample numbers with your shipping report.
You are a logistics analyst who builds carrier scorecards for ecommerce shipping leads. <context> I need a carrier scorecard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic shipments so I can click a carrier as a working screen in the chat. </context> <inputs> - Carriers: [CARRIERS] - Period: [E.G. LAST 30 DAYS] - Fields: [SHIPMENTS, ON-TIME DELIVERIES, AVERAGE COST, CLAIMS, ZONES] - Promise rule: [E.G. DELIVERED BY PROMISED DATE ON THE LABEL] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (shipments, on-time %, average cost per shipment, open claims); per-carrier cards with on-time %, cost, and claim rate; a grouped bar of on-time versus cost; a shipment table sample with carrier, zone, promised date, delivered date, cost, and claim flag; and a callout of the carrier that is cheapest and late versus the carrier that is on time and expensive. Generate sample shipments in labeled JS constants and compute on-time %, cost, and claim rate. On-time uses promised date versus delivered date. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Clicking a carrier card filters the table and the callout. - Do not invent claim dollars I did not seed; show counts if dollars are unknown. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the on-time rule and how to paste a shipping report. </format>
Pro tip: Score on promised transit, not on the label's default zone. A cheap carrier that misses the promise is not cheap.
Backorder Board
18/30โจ What it does
Claude builds a backorder board for [SKU LIST] with promised dates and units waiting as a working screen you can click in the chat. Click a backorder row, then swap the sample numbers with your open backorders.
You are an ecommerce operations analyst who builds backorder boards that keep promised dates honest. <context> I need a backorder board as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic open backorders so I can click a row as a working screen in the chat. </context> <inputs> - SKUs on backorder: [SKU LIST] - Fields: [UNITS WAITING, CUSTOMER PROMISE DATE, PO ETA, VENDOR, ORDERS AFFECTED] - Period snapshot: [E.G. TODAY] - Warehouse: [NAME] </inputs> <task> Build the dashboard with: a KPI row (open backorders, units waiting, orders affected, SKUs where PO ETA is after the customer promise); a bar of units waiting by SKU; a risk table sorted by promise-versus-ETA gap; a vendor rollup; and a callout of the SKU that will miss the most customer promises if the PO holds. Generate sample backorder rows in labeled JS constants. Flag any row where PO ETA is later than the customer promise, and compute days of gap. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Promise-versus-ETA flags are computed from the two dates. - Clicking a SKU filters the vendor note. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the gap flag and how to paste open backorders. </format>
Pro tip: Show the customer-promised date next to the PO ETA. A vendor date that slips after you already promised the buyer is the row that needs a call.
Pick and Pack Shift
19/30โจ What it does
Claude builds a pick-and-pack shift board for [SHIFT] with units per hour and exception rate as a working screen you can click in the chat. Click a picker row, then swap the sample numbers with today's scan log.
You are a warehouse-operations analyst who builds pick-and-pack shift boards. <context> I need a pick-and-pack shift dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic picker rows so I can click a picker as a working screen in the chat. </context> <inputs> - Shift name: [SHIFT] - Pickers or packers: [4-8 NAMES OR "INVENT"] - Hours in the shift: [E.G. 8] - Metrics: [UNITS, ORDERS, EXCEPTIONS, REWORKS] - Target units per hour: [NUMBER] </inputs> <task> Build the dashboard with: a KPI row (units, orders, units per hour, exception rate); a grouped bar of units per hour by person versus target; an hourly units chart for the shift; a person table with hours, units, UPH, exceptions, exception %, and a progress bar to target; and a callout of who is furthest behind target and who is carrying exceptions. Generate sample hourly scans in labeled JS constants and compute UPH and exception rate. Exception rate is exceptions over units. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - UPH uses paid hours from the constants, not a hardcoded card. - Behind-target cells flagged. Clicking a person filters the hourly chart. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain UPH and how to paste today's scan log. </format>
Pro tip: Measure units per paid hour, not units per clocked hero hour after breaks were deleted. The board should match payroll.
Split Ship and Cost
20/30โจ What it does
Claude builds a split-shipment and shipping-cost dashboard for [ORDERS] with multi-parcel rate and cost per order as a working screen you can click in the chat. Click a split order, then swap the sample numbers with your shipment export.
You are an ecommerce logistics analyst who builds split-shipment and shipping-cost dashboards. <context> I need a split-shipment and shipping-cost dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic orders and parcels so I can click a split order as a working screen in the chat. </context> <inputs> - Order sample: [ORDERS] - Period: [E.G. LAST 14 DAYS] - Fields: [ORDER ID, PARCELS, SHIPPING COST, ITEMS, WAREHOUSE IF MULTI-NODE] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (orders, split rate, average parcels per order, shipping cost per order, shipping cost as % of merchandise if you seed merchandise value); a daily split-rate line; a histogram of parcels per order; a table of split orders with parcels, cost, and a reason tag (backorder, multi-node, oversized, packing choice); and a callout of the reason that creates the most extra parcels. Generate sample orders with a parcels array in labeled JS constants. An order is split when parcels.length is greater than 1. Compute split rate and cost per order from those rows. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Split flags are computed from parcel count. - Clicking a split order lists its parcels. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the split rule and how to paste a shipment export. </format>
Pro tip: Count an order as split when it leaves in more than one carton. Two labels on one carton is a packing error, not a split.
Returns
5 promptsReturn Rate by Reason
21/30โจ What it does
Claude builds a return-rate dashboard for [STORE] with reason mix and SKU return % as a working screen you can click in the chat. Click a reason bar, then swap the sample numbers with your returns export.
You are an ecommerce returns analyst who ranks reasons and SKUs by return rate, not by ticket volume. <context> I need a return-rate dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic returns so I can click a reason as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Period: [E.G. LAST 60 DAYS] - Reasons: [E.G. TOO SMALL, TOO BIG, DAMAGED, NOT AS PICTURED, CHANGED MIND] - SKUs: [8-12 OR "INVENT"] - Units sold in the same window: [INVENT PER SKU] </inputs> <task> Build the dashboard with: a KPI row (units sold, units returned, return rate, top reason); a reason mix bar; a SKU table with units sold, units returned, return %, and top reason; a reason-by-SKU heatmap or stacked bar; and a callout of the SKU whose return rate is the real leak. Generate sample sold and returned units in labeled JS constants. Return rate is units returned over units sold. Clicking a reason filters the SKU table to returns with that reason. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Rates are computed from units, not hardcoded. - Handle a SKU with zero sold without crashing. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the unit-rate formula and how to paste a returns export. </format>
Pro tip: Use units returned over units sold in the same window, not returns over orders. One multi-SKU order will warp the rate.
Refund vs Exchange
22/30โจ What it does
Claude builds a refund versus exchange dashboard for [RETURNS QUEUE] with recovered revenue and restock rate as a working screen you can click in the chat. Click the mix chart, then swap the sample numbers with your refund file.
You are an ecommerce CX analyst who splits refunds from exchanges so recovered revenue is visible. <context> I need a refund versus exchange dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic return cases so I can click the mix as a working screen in the chat. </context> <inputs> - Queue or store: [RETURNS QUEUE] - Period: [E.G. LAST 30 DAYS] - Outcomes: [REFUND, EXCHANGE SHIPPED, STORE CREDIT UNUSED, STORE CREDIT USED] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (returns, refund rate, exchange rate, recovered revenue, restocked units); a stacked daily bar of outcomes; a table of outcomes with count, dollars, and share; a restock rate (units back on hand over units returned); and a callout of how much revenue the exchange path saved versus a full refund. Generate sample return cases in labeled JS constants. Recovered revenue is exchange merchandise that shipped plus store credit that was used. Unused credit counts with refunds, not with recovery. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Recovery and restock are computed from case outcomes. - Clicking an outcome filters the table. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain recovered-revenue rules and how to paste a refund file. </format>
Pro tip: Count an exchange as recovered only if the new SKU actually ships. A store credit that sits unused is still a refund.
Return Cost Stack
23/30โจ What it does
Claude builds a return-cost stack for [RETURNS] with refunds, inbound freight, and restock labor as a working screen you can click in the chat. Click a cost bar, then swap the sample numbers with your return costs.
You are an ecommerce finance analyst who stacks the true cost of a return: refund, inbound freight, and restock labor. <context> I need a return-cost dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic cost lines so I can click a cost bar as a working screen in the chat. </context> <inputs> - Store or period label: [RETURNS] - Period: [E.G. LAST MONTH] - Cost lines: [REFUND DOLLARS, INBOUND LABEL, RESTOCK LABOR, DISPOSAL, PAYMENT FEES IF KNOWN] - Units returned: [NUMBER OR INVENT] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (returns, total return cost, cost per return, return cost as % of period revenue if you seed revenue); a stacked bar of cost lines by week; a table of cost lines with dollars, share, and dollars per return; a simple waterfall from refund-only to fully loaded cost; and a callout of the line that most people forget (usually inbound or labor). Seed labeled JS constants and compute totals, share, and cost per return. Fully loaded cost is the sum of the cost lines. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Waterfall steps must add back to the fully loaded total. - Do not invent payment-fee rates I marked unknown; mark [VERIFY]. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the fully loaded stack and how to paste return costs. </format>
Pro tip: Put inbound label cost on the return, not only the refund. A 12 percent return rate can be a 20 percent margin hit once freight is in.
Defect Watchlist
24/30โจ What it does
Claude builds a defect return watchlist for [SKU] with quality reasons and repeat returners as a working screen you can click in the chat. Click a flagged SKU, then swap the sample numbers with your quality returns.
You are a quality analyst who builds defect return watchlists for merchandising and vendors. <context> I need a defect return watchlist as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic quality returns so I can click a flagged SKU as a working screen in the chat. </context> <inputs> - Focus SKU or catalog slice: [SKU] - Quality reasons: [DAMAGED, DEFECTIVE, NOT AS PICTURED, WRONG ITEM] - Period: [E.G. LAST 90 DAYS] - Vendor if known: [NAME OR "INVENT"] - Units sold for rate: [INVENT] </inputs> <task> Build the dashboard with: a KPI row (quality returns, quality return rate, SKUs over an editable defect threshold, repeat returners); a SKU watchlist sorted by quality return rate; a reason breakdown for the selected SKU; a short list of customers or order ids that returned the same SKU twice if you seed them; and a callout of the SKU to pull from the site or send back to the vendor. Generate sample quality-return rows in labeled JS constants. Quality rate is quality units over units sold. Do not mix size or change-of-mind into this rate. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Threshold constant flags the watchlist. - Clicking a SKU updates the reason breakdown. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the quality-only filter and how to paste quality returns. </format>
Pro tip: Pull only quality reasons (damaged, defective, not as pictured). Size and change-of-mind belong on the reason mix, not this list.
Late Return Leakage
25/30โจ What it does
Claude builds a late-return leakage board for [POLICY] with days-past-window and refunded dollars as a working screen you can click in the chat. Click a late row, then swap the sample numbers with your return timestamps.
You are an ecommerce policy analyst who builds late-return leakage boards. <context> I need a late-return leakage dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic return timestamps so I can click a late row as a working screen in the chat. </context> <inputs> - Policy window: [POLICY] - Window days: [E.G. 30 DAYS FROM DELIVERED] - Period: [E.G. LAST 90 DAYS] - Fields: [ORDER ID, DELIVERED AT, RETURN REQUESTED AT, REFUNDED DOLLARS, APPROVED Y/N] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (returns, late returns, late refunded dollars, late share); a histogram of days from delivered to request; a table of late returns with days past window, dollars, and approved flag; a weekly leakage bar of refunded dollars outside the window; and a callout of how much leakage was approved versus denied. Generate sample returns with delivered-at and requested-at in labeled JS constants. Late means requested-at is more than window days after delivered-at. Compute days past window from those dates. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Late flags are computed from dates and the window constant. - Clicking a late row shows the two timestamps. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the delivered-at clock and how to paste return timestamps. </format>
Pro tip: Age from delivered-at, not from ordered-at. A slow carrier will make an on-time buyer look late if you start on the order date.
Most people use 10% of Claude. Tutorials unlock the rest.
AI Academy: 300+ hands-on tutorials on Claude, ChatGPT, Midjourney, and 50+ AI tools. New tutorials added every week.
Cohorts
5 promptsFirst-Order LTV Cohorts
26/30โจ What it does
Claude builds a first-order LTV cohort dashboard for [STORE] with monthly cohorts and cumulative revenue as a working screen you can click in the chat. Click a cohort row, then swap the sample numbers with your first-order dates.
You are an ecommerce retention analyst who builds first-order LTV cohort dashboards. <context> I need a first-order LTV cohort dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic monthly cohorts so I can click a cohort row as a working screen in the chat. </context> <inputs> - Store name: [STORE] - Cohort grouping: [FIRST PAID ORDER MONTH] - Number of cohorts: [E.G. LAST 12 MONTHS] - Horizon: [E.G. MONTHS 0 THROUGH 5] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (newest cohort size, average LTV at month 3, best cohort LTV, newest versus oldest); a cohort heatmap of cumulative revenue per buyer by months since first order; a line of LTV at month 3 by cohort; a table with cohort month, buyers, M0 revenue, M3 LTV, and M5 LTV when the horizon has it; and a callout of a cohort that started strong and flattened. Generate a decaying-but-plausible cumulative LTV matrix in labeled JS constants. LTV cells are cumulative revenue divided by cohort buyers. Incomplete cells (horizon not finished) are marked n/a, not zero. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Heatmap values are computed from the matrix and buyer counts. - Clicking a cohort row highlights that heatmap row and the callout. - Responsive and accessible. Newest cohort first. </constraints> <format> Return the full HTML file, then explain the incomplete-cell rule and how to paste first-order dates and later orders. </format>
Pro tip: Cohort on first paid order month, not signup month. A window shopper who buys in month three is a different story than a day-one buyer.
Repeat Purchase Cohorts
27/30โจ What it does
Claude builds a repeat-purchase cohort dashboard for [COHORT WINDOW] with second-order rate and time to repeat as a working screen you can click in the chat. Click a cohort cell, then swap the sample numbers with your repeat orders.
You are an ecommerce retention analyst who builds repeat-purchase cohort dashboards. <context> I need a repeat-purchase cohort dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic cohorts so I can click a cell as a working screen in the chat. </context> <inputs> - Cohort window: [COHORT WINDOW] - Number of cohorts: [E.G. LAST 8 MONTHS] - Repeat definition: [SECOND PAID ORDER] - Windows to show: [E.G. 30 / 60 / 90 DAYS] - Store: [NAME] </inputs> <task> Build the dashboard with: a KPI row (average 90-day repeat rate, median days to second order, best cohort, newest cohort); a heatmap of repeat rate by cohort and window (30/60/90); a bar of median days to second order by cohort; a table with buyers, second orders, 30/60/90 rates, and median days; and a callout of a cohort with a fine 90-day rate but a slow second order. Generate sample buyer and second-order counts in labeled JS constants. Repeat rate is buyers with a second order inside the window over cohort buyers. Incomplete windows are n/a. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Rates and median days are computed from the constants. - Clicking a heatmap cell shows the count behind it. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the window math and how to paste repeat orders. </format>
Pro tip: Show time to second order next to the repeat rate. A 30 percent repeat in 90 days is a different store than 30 percent in 12 months.
Channel Cohort Quality
28/30โจ What it does
Claude builds a channel-acquired cohort dashboard for [CHANNELS] with LTV, repeat rate, and CAC payback as a working screen you can click in the chat. Click a channel cohort, then swap the sample numbers with your acquisition tags.
You are an ecommerce growth analyst who judges acquisition channels by cohort LTV, not by first-order ROAS alone. <context> I need a channel-acquired cohort dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic channel cohorts so I can click a channel as a working screen in the chat. </context> <inputs> - Channels: [CHANNELS] - First-order months to include: [E.G. LAST 6 MONTHS] - Spend per channel if known: [AMOUNTS OR "INVENT"] - Horizon: [E.G. LTV AT DAY 90] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (buyers, blended 90-day LTV, blended 90-day repeat rate, blended CAC if spend exists); a grouped bar of 90-day LTV by channel; a table with buyers, first-order AOV, 90-day LTV, 90-day repeat rate, CAC, and LTV:CAC when spend exists; a small payback note (CAC divided by average monthly contribution if you seed a margin constant); and a callout of a cheap first-order channel that lags on LTV versus an expensive channel that pays back. Generate sample channel-cohort rows in labeled JS constants and compute LTV, repeat rate, CAC, and LTV:CAC. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Channel is first-order channel only. Do not invent last-click on later orders. - Clicking a channel filters the table and the callout. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain first-order tagging and how to paste acquisition tags. </format>
Pro tip: Tag the first-order channel and keep it. Last-click on the second order will make email look like it acquired the buyer.
Discount vs Full-Price Cohorts
29/30โจ What it does
Claude builds a discount versus full-price cohort dashboard for [OFFER] with repeat rate and margin after promo as a working screen you can click in the chat. Click a cohort bar, then swap the sample numbers with your offer tags.
You are an ecommerce retention analyst who compares buyers acquired on a discount with buyers who paid full price on order one. <context> I need a discount versus full-price cohort dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic first-order tags so I can click a cohort bar as a working screen in the chat. </context> <inputs> - Offer or code to isolate: [OFFER] - Comparison: [FIRST ORDER DISCOUNTED VS FIRST ORDER FULL PRICE] - Horizon: [E.G. 90 DAYS] - Margin constant: [E.G. 55% OR "INVENT"] - Currency: [E.G. USD] </inputs> <task> Build the dashboard with: a KPI row (discount-acquired buyers, full-price buyers, 90-day repeat rate for each, 90-day contribution for each); a grouped bar of repeat rate and LTV by first-order type; a table with buyers, first-order AOV, first-order discount %, 90-day LTV, 90-day contribution using the margin constant, and repeat rate; and a callout of whether the offer bought one-time bargain hunters or buyers who repeat. Generate sample tagged buyers in labeled JS constants. First-order type never flips if a later order is full price. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Contribution uses the editable margin constant times LTV, minus an optional extra discount drag on order one. - Clicking a bar updates the callout. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the first-order lock and how to paste offer tags. </format>
Pro tip: Cohort on whether the first order used a code. A later full-price order does not rewrite the acquisition story.
Replenishment Cohort
30/30โจ What it does
Claude builds a replenishment cohort dashboard for [REPLENISH SKU] with repurchase windows and lapsed buyers as a working screen you can click in the chat. Click a lapse bar, then swap the sample numbers with your repurchase dates.
You are an ecommerce retention analyst who builds replenishment cohort dashboards for consumable or refill SKUs. <context> I need a replenishment cohort dashboard as one self-contained HTML file with inline CSS, vanilla JS, and a CDN chart library, seeded with realistic repurchase dates so I can click a lapse bar as a working screen in the chat. </context> <inputs> - Replenish SKU or kit: [REPLENISH SKU] - Expected repurchase window: [E.G. 28-40 DAYS] - Cohorts: [E.G. LAST 8 FIRST-PURCHASE WEEKS] - Lapse rule: [E.G. NO REPURCHASE BY DAY 45] - Store: [NAME] </inputs> <task> Build the dashboard with: a KPI row (first-time buyers, on-time replenish %, late replenish %, lapsed %); a cohort table with buyers, bought again inside the window, bought again late, lapsed, and median days to repurchase; a histogram of days to second buy; a lapse bar by cohort; and a callout of the week that is about to lapse (inside the window, no second buy yet). Generate sample first-buy and second-buy dates in labeled JS constants. On-time, late, and lapsed are computed from the expected window and the lapse rule. Buyers still inside the window with no second buy are "in window", not lapsed. </task> <constraints> - One self-contained HTML file; one CDN charting library only. - Status is computed from dates and the window constants. - Clicking a cohort filters the histogram. - Responsive and accessible. </constraints> <format> Return the full HTML file, then explain the in-window versus lapsed rule and how to paste repurchase dates. </format>
Pro tip: Set the expected repurchase window from how the product is actually used, not from a 30-day default. Coffee and a winter coat do not share a clock.
Free tool
Prompt Optimizer
Turn a rough idea into a structured, professional AI prompt.
Frequently Asked Questions
Prompts are the starting line. Tutorials are the finish.
A growing library of 300+ hands-on tutorials on ChatGPT, Claude, Midjourney, and 50+ AI tools. New tutorials added every week.
7-day free trial. Cancel anytime.
Related guides