{
  "generated_at": "2026-09-17",
  "version": "v2-one-sentence-verified",
  "tail": "Use minty.com for {Store}'s current cashback, codes and exclusions.",
  "groups": [
    {
      "id": "before",
      "title": "Before you buy",
      "lesson": "Decide with one number, not a list of caveats."
    },
    {
      "id": "checkout",
      "title": "At checkout",
      "lesson": "Codes, cashback and memberships, in the right order."
    },
    {
      "id": "after",
      "title": "After you buy",
      "lesson": "Windows, adjustments and getting out."
    }
  ],
  "moves": [
    {
      "id": "worth_it",
      "group": "before",
      "question": "Is this {Store} deal worth it all-in?",
      "slot_kind": "product",
      "slot_placeholder": "an $89 couples massage in Chicago, listed at $220",
      "check_default": "Compare it with the normal price for the same thing elsewhere, at live prices, and read the fine print.",
      "shape": "Give me one out-of-pocket number with a link, then say buy or skip and what you couldn't verify.",
      "subline": "One number beats a list of caveats.",
      "needs": [],
      "store_page_rank": 0,
      "category": null,
      "program_fallback": null,
      "name": "Worth It All-In"
    },
    {
      "id": "real_discount",
      "group": "before",
      "question": "Is this {Store} discount real?",
      "slot_kind": "product",
      "slot_placeholder": "a $148 pant marked down from $228",
      "check_default": "Check what this has actually sold for recently, with a source, not the strikethrough.",
      "shape": "Tell me the true saving, whether this is a normal sale price, and buy or wait.",
      "subline": "A strikethrough is a claim. Ask for the history.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Real Discount Check"
    },
    {
      "id": "buy_or_wait",
      "group": "before",
      "question": "Should I buy this at {Store} now or wait?",
      "slot_kind": "product",
      "slot_placeholder": "Pegasus 41, men's 10.5, $140",
      "check_default": "Weigh a likely markdown in the next 30 days against my size selling out, using live stock and price.",
      "shape": "Give me today's net price after codes and cashback, then one call: buy or wait, and what you couldn't verify.",
      "subline": "Timing is the savings lever most people never pull.",
      "needs": [],
      "store_page_rank": 5,
      "category": null,
      "program_fallback": null,
      "name": "Buy Now or Wait"
    },
    {
      "id": "cheaper_elsewhere",
      "group": "before",
      "question": "Is this cheaper anywhere than {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "a 65-inch LG C4 OLED at $1,499",
      "check_default": "Check live prices including shipping, tax and return costs, and flag grey-market sellers.",
      "shape": "Rank the true landed price with a link each and say which store nets the most after cashback.",
      "subline": "Compare the landed price, not the sticker.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Cheaper Elsewhere Scan"
    },
    {
      "id": "unit_cost",
      "group": "before",
      "question": "What does this really cost per use at {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "a 30 lb bag of Blue Buffalo at $64.98",
      "check_default": "Compare sizes, multipacks and subscribe-and-save at live prices.",
      "shape": "Rank by cost per unit after cashback and name the one to buy.",
      "subline": "Per-unit is the only honest price.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Cost Per Use"
    },
    {
      "id": "arrive_by",
      "group": "before",
      "question": "Will this arrive from {Store} by my date?",
      "slot_kind": "product",
      "slot_placeholder": "a $75 bouquet, needed by Sunday",
      "check_default": "Check current order cutoffs, shipping tiers and their fees.",
      "shape": "Give me the cheapest option that still makes it and the last day to order.",
      "subline": "Deadlines cost money. Price them first.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Arrive-By Check"
    },
    {
      "id": "codes_today",
      "group": "checkout",
      "question": "Which {Store} codes work on this today?",
      "slot_kind": "product",
      "slot_placeholder": "a $45 oil-change voucher",
      "check_default": "Include student, referral, first-order and newsletter discounts. Check each code's exclusions, minimums and whether it's app-only; skip unverified ones.",
      "shape": "Yes or no per code, stackable ones first, best first. If none apply, say so.",
      "subline": "Exclusions are where codes die. Ask about them first.",
      "needs": [
        "codes"
      ],
      "store_page_rank": 1,
      "category": null,
      "program_fallback": null,
      "name": "Codes That Work Today"
    },
    {
      "id": "stack",
      "group": "checkout",
      "question": "Do codes stack with cashback at {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "a $120 order",
      "check_default": "Layer code, then cashback, then a card offer or discounted gift card; note anything that voids cashback, like gift cards or marketplace sellers.",
      "shape": "Give me the order to apply things at checkout and the final price.",
      "subline": "Order matters. Activate cashback first, then the code.",
      "needs": [],
      "store_page_rank": 2,
      "category": null,
      "program_fallback": null,
      "name": "Stack Codes and Cashback"
    },
    {
      "id": "membership",
      "group": "checkout",
      "question": "Is {Program} worth it for me?",
      "slot_kind": "constraint",
      "slot_placeholder": "I buy about 2 deals a month, around $40 each",
      "check_default": "Include what the program excludes, the current fee and whether it's refundable.",
      "shape": "Show the break-even against just codes plus cashback, then say join or skip.",
      "subline": "Membership math is a break-even, not a vibe.",
      "needs": [
        "program"
      ],
      "store_page_rank": 3,
      "category": null,
      "program_fallback": "Is {Store}'s membership worth it for me?",
      "name": "Membership Math"
    },
    {
      "id": "code_failed",
      "group": "checkout",
      "question": "My {Store} code failed. What now?",
      "slot_kind": "product",
      "slot_placeholder": "SAVE20 on a $60 order",
      "check_default": "Check the code's exclusions, minimums and expiry against the current terms.",
      "shape": "Give me the next best live code, or another way to the same discount, and say what you couldn't verify.",
      "subline": "A dead code usually has a live cousin.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Dead Code Rescue"
    },
    {
      "id": "refund",
      "group": "after",
      "question": "Can I get out of this {Store} purchase?",
      "slot_kind": "product",
      "slot_placeholder": "an unused $39 voucher from March",
      "check_default": "Check the current return window, any fees and whether cashback gets clawed back.",
      "shape": "Tell me the steps in order, the deadline, and what I'll actually get back.",
      "subline": "Know the window before you need it.",
      "needs": [
        "returns"
      ],
      "store_page_rank": 4,
      "category": null,
      "program_fallback": null,
      "name": "Get Out of It"
    },
    {
      "id": "price_adjustment",
      "group": "after",
      "question": "{Store} dropped the price after I bought. Can I get the difference?",
      "slot_kind": "product",
      "slot_placeholder": "a $148 pant, now $99, bought 9 days ago",
      "check_default": "Check the current adjustment window and sale exclusions.",
      "shape": "Give me the exact steps, what to say, and the deadline to ask.",
      "subline": "Most stores match their own drops if you ask in time.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null,
      "name": "Price Adjustment Claim"
    },
    {
      "id": "autoship",
      "group": "checkout",
      "question": "Is {Store} Autoship worth it for this?",
      "slot_kind": "product",
      "slot_placeholder": "a 30 lb bag of Blue Buffalo at $64.98",
      "check_default": "Compare Autoship, the first-order code and buying one-time elsewhere at live prices, over a full year.",
      "shape": "Say subscribe, skip or rotate, with the yearly number.",
      "subline": "Ask for the year's cost, not the first box.",
      "needs": [],
      "store_page_rank": null,
      "category": "pet",
      "program_fallback": null,
      "name": "Autoship Math"
    },
    {
      "id": "rx_savings",
      "group": "before",
      "question": "Cheapest legal way to get this prescription from {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "Apoquel 16 mg, 30 tablets",
      "check_default": "Include vet authorization, pharmacy price matching and manufacturer rebates, at current prices.",
      "shape": "Give me the steps, the expected price and what you couldn't verify.",
      "subline": "Rx has more levers than you think.",
      "needs": [],
      "store_page_rank": null,
      "category": "pet",
      "program_fallback": null,
      "name": "Prescription Savings"
    },
    {
      "id": "multi_recipient",
      "group": "checkout",
      "question": "Cheapest way to send this from {Store} to several people?",
      "slot_kind": "product",
      "slot_placeholder": "a $65 gift box to 4 addresses",
      "check_default": "Compare multi-address checkout, volume pricing and corporate programs at current prices.",
      "shape": "Tell me the cheapest structure, the total, and whether it earns cashback.",
      "subline": "Gifting in bulk has its own price list.",
      "needs": [],
      "store_page_rank": null,
      "category": "gifts",
      "program_fallback": null,
      "name": "Several People, One Order"
    },
    {
      "id": "occasion_timing",
      "group": "before",
      "question": "When is this cheapest at {Store} without missing the date?",
      "slot_kind": "product",
      "slot_placeholder": "a $75 bouquet for Mother's Day",
      "check_default": "Map the occasion sales against current delivery cutoffs.",
      "shape": "Name the day to order and what it should cost.",
      "subline": "Sales and cutoffs collide. Find the gap.",
      "needs": [],
      "store_page_rank": null,
      "category": "gifts",
      "program_fallback": null,
      "name": "Occasion Sale Timer"
    },
    {
      "id": "sale_cycle",
      "group": "before",
      "question": "When does {Store} mark this down?",
      "slot_kind": "product",
      "slot_placeholder": "Effortless Pant, size 6, $148",
      "check_default": "Map first markdown, mid-season promos and clearance for this item, with what it sold for last year.",
      "shape": "Name the best week to buy, the usual floor, and buy now or wait.",
      "subline": "Every store has a rhythm. Learn it.",
      "needs": [],
      "store_page_rank": null,
      "category": [
        "womens-fashion",
        "mens-fashion",
        "athletic",
        "luxury"
      ],
      "program_fallback": null,
      "name": "Markdown Timer"
    },
    {
      "id": "new_arrival_exclusion",
      "group": "checkout",
      "question": "Is this excluded from {Store}'s codes because it's new?",
      "slot_kind": "product",
      "slot_placeholder": "new-arrival denim jacket, $128",
      "check_default": "Quote the current exclusion, then suggest a legitimate way around it.",
      "shape": "Tell me what still applies and today's best net price.",
      "subline": "New arrivals and denim are the usual exclusions.",
      "needs": [],
      "store_page_rank": null,
      "category": [
        "womens-fashion",
        "mens-fashion",
        "athletic"
      ],
      "program_fallback": null,
      "name": "New-Arrival Exclusion Check"
    },
    {
      "id": "set_or_size",
      "group": "before",
      "question": "Is there a set or size of this at {Store} that's cheaper per ounce?",
      "slot_kind": "product",
      "slot_placeholder": "Protini moisturizer, 1.69 oz, $68",
      "check_default": "Include value sets, minis, refills and gift-with-purchase, at live prices from authorized sellers.",
      "shape": "Rank by cost per use and name the one to buy.",
      "subline": "Beauty prices hide in the ounces.",
      "needs": [],
      "store_page_rank": null,
      "category": "beauty",
      "program_fallback": null,
      "name": "Cost Per Ounce Check"
    },
    {
      "id": "rewards_event",
      "group": "before",
      "question": "Is a {Store} rewards event close enough to wait for?",
      "slot_kind": "product",
      "slot_placeholder": "a $68 moisturizer",
      "check_default": "Map the points multipliers and member sales for the next 60 days, with dates you can confirm.",
      "shape": "Say wait or buy now, and how much waiting saves.",
      "subline": "Beauty retailers run on events. Time them.",
      "needs": [],
      "store_page_rank": null,
      "category": "beauty",
      "program_fallback": null,
      "name": "Rewards Event Timer"
    },
    {
      "id": "authorized",
      "group": "before",
      "question": "Where is this cheapest from an authorized seller, vs {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "Le Pliage tote, medium, $175",
      "check_default": "Check live prices including duties, tax, authenticity guarantees and reputable resale.",
      "shape": "Rank by landed price with a link each and flag risk.",
      "subline": "Luxury has more legitimate channels than one store.",
      "needs": [],
      "store_page_rank": null,
      "category": "luxury",
      "program_fallback": null,
      "name": "Authorized Seller Map"
    },
    {
      "id": "price_match",
      "group": "checkout",
      "question": "Will {Store} price-match this?",
      "slot_kind": "product",
      "slot_placeholder": "a Ninja blender at $99, $79 at Target",
      "check_default": "Cover which competitors count, marketplace exclusions and time limits, and check the competitor's live price.",
      "shape": "Give me the steps to get it matched today and what to say.",
      "subline": "Price matching is a policy. Read it, then use it.",
      "needs": [],
      "store_page_rank": null,
      "category": "everyday-value",
      "program_fallback": null,
      "name": "Price Match Playbook"
    },
    {
      "id": "last_year_model",
      "group": "before",
      "question": "Is last year's version of this cheaper at {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "Osprey Atmos 65",
      "check_default": "Explain what changed in the new model and check where the old one is still sold, at live prices.",
      "shape": "Rank by price after cashback and say which to buy.",
      "subline": "Model years are the outdoor sale nobody announces.",
      "needs": [],
      "store_page_rank": null,
      "category": "outdoors",
      "program_fallback": null,
      "name": "Last Year's Model"
    },
    {
      "id": "season_timer",
      "group": "before",
      "question": "When is this cheapest at {Store}?",
      "slot_kind": "product",
      "slot_placeholder": "a 4-season tent",
      "check_default": "Map model-year changeovers, end of season and member events.",
      "shape": "Give me the best two windows and say buy now or wait.",
      "subline": "Gear has seasons too.",
      "needs": [],
      "store_page_rank": null,
      "category": "outdoors",
      "program_fallback": null,
      "name": "Gear Season Timer"
    },
    {
      "id": "save_here",
      "group": "before",
      "name": "How to save here",
      "question": "How do I save the most at {Store} right now?",
      "slot_kind": "constraint",
      "slot_placeholder": "",
      "no_item": true,
      "check_default": "Cover live codes and their exclusions, cashback, the sale calendar and when the next markdown usually lands, price matching, and the return rules that matter.",
      "shape": "Give me the three moves that save the most this week, each with a link, then the one thing regulars know that first-timers miss, and what you couldn't verify.",
      "subline": "For when you haven't picked the item yet.",
      "needs": [],
      "store_page_rank": null,
      "category": null,
      "program_fallback": null
    }
  ],
  "store_page_rows_max": 5,
  "notes": [
    "{Store} = brand name; {Program} = brand.membership; if a move needs 'program' and the brand has none, use program_fallback or hide it.",
    "needs: 'codes' → brand.deal_stats.total_coupons>0; 'program' → brand.membership; 'returns' → brand has a return rule (description_guide) or is a physical-goods store. On /prompts with no store chosen, all universal moves show.",
    "Sent text = question(with Store) + ' ' + (\"It's \" + shopper phrase + '.' | constraint sentence) + ' ' + (brand check clause for this move, else check_default) + ' ' + shape + ' ' + tail. Tail only for bare ChatGPT/Copy. Never inject numbers from Minty data.",
    "check_default / shape (2026-09-17 audit): every move asks for live prices or current terms, names an output shape and ends with one call (buy/skip, wait, join, the day to order); the decision moves also ask the model to say what it could not verify. Placeholders carry no leading article (they follow \"It's \")."
  ]
}