The rule we work to. If a customer has to ask a question before they can buy, the interface has failed. The answer should be visible at the moment the decision is made — not one click later, and certainly not in a help centre. -->
The decisions a store makes difficult
In our audits, the same handful of decisions come up again and again.
1. Is this discount real, and does it apply to me?
This is the most expensive one. A headline promise of 30% off, followed by a product page that shows the full price, creates a small but immediate distrust. Even if the discount applies at checkout, the customer has already learned that your headline claims and your product page disagree.
The fix is structural rather than cosmetic: the sale price, the saving, the strike-through original and the eligibility rule should all be visible on the product page, in the same viewport, before any click.
2. How much will I actually pay?
Fees are the classic example. Shipping, taxes, service costs and duties get introduced late, at the last possible moment, and they are almost always a surprise. The customer who expected to pay $80 and sees $96 does not feel informed. They feel ambushed.
Show the landed cost early, on the product page, and let it stay stable. If a discount changes the final number, the product page should already reflect the discounted number with the original struck through.
3. When does it arrive?
A vague delivery estimate — "5–7 business days" — creates a decision for the customer even when it is the right answer. Five to seven days means they must decide whether that works, and if it does not, they leave to find one where it does.
Where a date is knowable, show it. Where it is not, show the range with the reason it varies. Shipping to a different country or a different postcode is a legitimate variable, and showing that clearly is more useful than hiding it.
4. Can I return it?
Return policy is one of the most-visited pages on a retail site and one of the least-read. But the question gets asked at the point of purchase by every first-time customer, and if the answer is not on the product page, they are making a purchase under uncertainty.
A short, plain summary next to the buy button — "Free returns within 30 days" — removes an entire category of hesitation at a cost of roughly ten words.
5. Is this the right variant?
Size, colour, model, pack size. If a product has more than one variant and the default is not the one the customer wanted, the returns queue builds up and the product page gets a one-star review for a reason that has nothing to do with quality.
Variants should be visible and obvious, and the selected one should be unmistakably selected. This is a component decision, not a copy decision, which is why it belongs in a design system.
6. Can I trust this seller?
Trust signals — reviews, returns, delivery, security, contact — are gathered in one place and consulted at three different moments. The customer checks before they click. They check on the product page. They check at checkout.
Why this is a design system problem, not a campaign problem
The instinct is to fix these individually, in the week before the sale. That works, and then it breaks next quarter.
Every one of these decisions is made in a component: the price block, the variant selector, the delivery estimate, the trust row, the cart summary. If those components are right, the promotional pages inherit the fix automatically. If they are wrong, every campaign inherits the problem.
That is the argument for building the price and trust components once, carefully, with the rules written down — and then letting every seasonal campaign be an arrangement of parts that are already correct.
A useful test: take any campaign landing page and ask whether it would still be truthful and clear if the promotion were removed. Campaign pages that only work because of a temporary promotion are, structurally, a special case. Special cases are where the expensive bugs live.
What to do in the two weeks before a peak
If the peak is close, triage rather than rebuild.
First, the price block. Make the discounted price, the original price and the saving visible together, with no interaction required to reveal them. This is a day of work and it is usually the largest single lift available.
Second, the eligibility rule. If some items are excluded, say so next to the promise — not at checkout, and not in a footnote. If nothing is excluded, remove the ambiguity from the ad copy instead.
Third, the landed cost. Show shipping and taxes early on the product page, even approximately.
Fourth, the delivery estimate. Replace ranges with dates wherever the data allows it.
Fifth, the trust row. Put returns, security and contact on the product page, in one line, near the buy button.
None of that is a redesign. It is five focused corrections to the places where the store currently asks the customer to work.
And in the quarter after
Peak season is a diagnostic. The traffic is there; you can see exactly where it goes. Set up the analytics before the campaign, not after — segment by device, by new versus returning, and by whether a discount was applied. Then read the result with the same scepticism you would apply to any other metric.
What we usually find is that the friction was already there before the promotion, and the promotion simply made it expensive.
Peak seasons reward stores that have already done the unglamorous work. If you want a second opinion on where your own store is making customers work harder than they need to, talk to us — or, if the problem is that the team is moving too slowly to fix it, that is a design systems conversation.