Skip to content
Back to skills

Discounts

ASecurity

Use when deciding how to word, size, or display a price discount, sale price, coupon, or markdown for an online store — e.g. "should this be 25% off or $15 off", "how do I show the sale price", "is 60% off too much", "what kind of coupon code should we send", "how do I write the promo banner".

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
ai-agentsgoreactexpressgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 19, 2026

npx -y skills add checkout-page/ecommerce-skills --skill discounts --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Discounts?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Discounts
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/checkout-page-discounts/badge)](https://www.skillsdirectory.com/skills/checkout-page-discounts)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: discounts
description: Use when deciding how to word, size, or display a price discount, sale price, coupon, or markdown for an online store — e.g. "should this be 25% off or $15 off", "how do I show the sale price", "is 60% off too much", "what kind of coupon code should we send", "how do I write the promo banner".
---

# Discounts

Turn a planned discount into the exact numbers and wording that make it look biggest and most credible. The same discount can be expressed several ways; people react to the size of the numeral they see, not the arithmetic, and very large discounts read as a quality warning.

## When to use

- Choosing between percentage-off and amount-off
- Writing the sale badge, strikethrough price, banner, or email subject for a markdown
- Sizing a discount (how deep is too deep)
- Choosing the format of a coupon code (store-wide vs product-specific)
- Deciding whether to add a time limit

## When not to use

- Setting the full price itself (digits, endings) → the `pricing` skill
- Promotions that aren't price cuts (gifts, bundles, pre-orders, special days) → the `promotions` skill

## Inputs

Collect, or state your assumption:

- Full price `P` and either the sale price `S` or the discount `D` (`D = P − S`). `P` must be a price you actually charged for a reasonable period before the sale — if it wasn't, there is no discount to frame.
- Currency
- Scope: one product, one brand/category, or the whole store
- Where it appears: product page, banner, coupon code, email
- Reason for the sale (seasonal, clearance, launch, customer birthday) — if none, say so
- Audience gender mix, if known (affects price color only)

## Procedure

1. **Check the reference price is genuine.** Showing a struck-through or "was" price that was never really charged is deceptive pricing (US FTC guides, UK CMA, and the EU rule that a "was" price must be the lowest price of the prior 30 days). Confirm `P` was the real selling price before continuing; if you're unsure of the local rule, say so.
2. **Compute the three numbers.** `D = P − S`; `off% = D / P`; `higher% = D / S`. Example: P = 90, S = 60 → D = 30, off% = 33%, higher% = 50%.
3. **Check the depth.** If `off% > 40%`, warn: discounts this deep signal low quality, and at 60%+ they tend to reduce sales, especially for lesser-known brands or products whose quality is hard to judge before buying. Propose capping at 40% and adding a gift or bundle instead (see `promotions`). Exception: explicit clearance or shutdown, stated as the reason.
4. **Pick amount vs percentage by the numeral of the full price.** If `P ≥ 100` in the currency's units → show the **amount** off ("$120 off"). If `P < 100` → show the **percentage** off. The rule is about the size of the printed number, so it holds in any currency.
5. **If percentage: recalculate against the sale price.** State the discount as "was X% higher" where `X = higher%`, because `D / S > D / P`. Cap: if `higher% > 100%`, people ignore the "100" and read only the remainder, so fall back to plain "`off%` off" or the amount.
6. **Keep the price ending consistent.** The sale price should end the way the full price ends ($26.75 → $16.75, not $16.99). If `S` doesn't, adjust `S` to the nearest value with the same ending and recompute step 2. Always show the full price next to the sale price so the subtraction is easy.
7. **Coupons.** Store-wide or most-of-store coupon → **percentage** off ("everything 15% off"), which invites "the more I spend, the more I save". Product- or brand-specific coupon → **amount** off ("$2 off Gillette razors"), which makes the loss of not using it concrete. Send store-wide coupons to segments likely to buy new items, not to hoard. The evidence doesn't give a coupon size; apply the depth check from step 3 to the coupon, and if a coupon can stack on top of a marked-down item, apply it to the combined discount.
8. **Phrase the condition before the reward.** "Spend $100 and get $20 off", not "Get $20 off when you spend $100". The offer then reads as a reward, not a restriction. †
9. **Time limit, if any.** A time limit is fine and should be short (24–48 h), tied to a stated reason (seasonal, birthday), and carry a timezone. Online, time limits mostly raise awareness and visits rather than immediate sales, so don't rely on the deadline alone. Never limit by quantity ("only 500 left"): people who miss out get angry and switch brands; time limits don't cause this.
10. **Price color.** If the audience is mostly men *and* the purchase is routine (the effect disappears when people scrutinize the price, as for expensive or important buys), show *all* prices in red; men judged red prices as much better value, women were unaffected. Mixed red/black backfires, so it's all or nothing.

## Output

| Item | Value |
|---|---|
| Full price | $90.00 |
| Sale price | $60.00 |
| Display | ~~$90.00~~ **$60.00** — was 50% higher |
| Badge / subject line | "Cyber Monday: was 50% higher — ends Monday 23:59 PT" |
| Coupon (if any) | Store-wide → `CYBER15` = 15% off everything |
| Warnings | none / depth > 40% / higher% > 100% |
| Why | one line per choice, citing the rule |

## Common mistakes

- Choosing "$30 off" on a $90 item because "a dollar figure feels concrete" — under 100, the percentage is the bigger numeral. Use 33% off, or better, "was 50% higher".
- Rejecting a 60% discount only on margin grounds — the bigger problem is that it signals poor quality and can cut sales.
- Rounding the sale price to .99 when the full price ends in .00 or .75 — keep the endings the same.
- Treating a countdown as the main sales driver online — it drives clicks and opens, not purchases.
- Using "only N left" for urgency — quantity scarcity angers the people who miss out.
- Striking through a price that was never actually charged — that's deceptive pricing, not a discount.

## Quick reference

| Situation | Do |
|---|---|
| Full price ≥ 100 | Amount off |
| Full price < 100 | Percentage off, stated as "was X% higher" (X = D/S) |
| D/S > 100% | Plain "% off" or amount |
| Discount > 40% | Warn; cap or swap for a gift/bundle |
| Store-wide coupon | % off |
| Product/brand coupon | Amount off |
| Sale price ending | Same as full price |
| Wording | Condition first, then reward |
| Urgency | Short time limit with a reason and timezone; never a unit cap |
| Mostly male audience, routine purchase | All prices red |

† No primary citation on file for this rule — a practitioner tip, not a measured finding.

Evidence and effect sizes: see [reference.md](reference.md).

Files in this skill

  • SKILL.md6.5 KB
  • reference.md6.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.