# Building a discount calendar your competitors cannot read

> A readable promotional calendar is read by three audiences you did not intend it for: competitors, coupon aggregators and your own customers. On modelled figures, moving from a published calendar to unforecastable timing lifts full-price share from 48.7% to 97.4% at an unchanged discount cadence.

**Source:** https://blog.korant.online/discount-calendar-that-doesnt-leak
**Published:** 2026-08-25
**Author:** Nayak - Builds checkout, referral and attribution tooling for Shopify D2C brands

## Key facts

- At a monthly discount cadence, a published calendar leaves a modelled full-price share of 48.7% while unforecastable timing leaves 97.4%. (Modelled on an exponential willingness-to-wait distribution with a 3 week patience constant, scaled by the share of shoppers who can forecast the next date.)
- Running the same event in the same fortnight each year keeps roughly 80% of shoppers able to forecast it, costing 10.2 points of full-price share against variable seasonal dates. (Modelled on the same distribution at an assumed 80% forecastable share against 30%.)
- The discount cadence is identical across all 5 predictability levels modelled, so the entire 48.8 point swing comes from forecastability alone. (Arithmetic on the same model holding the monthly cadence constant.)
- A fixed monthly cadence left unpublished still leaves 60% of shoppers able to forecast it, because the pattern is legible from behaviour without any announcement. (Modelled assumption on pattern inference from a regular unannounced cadence.)

## The calendar everyone else already has

It lives in a shared spreadsheet with a tab per quarter. Republic Day, end of season, monsoon sale, Independence Day, festive, Black Friday, year end.

The dates barely move between years, because moving them would break inventory planning, creative timelines and the media buy.

Three groups read that calendar and only one of them works for you.

Your operations team reads it, which is why it exists. A competitor's pricing analyst reads it, because a scraper watching your product pages produces the same document in about a year. And your customers read it, not as a document but as a pattern, which is a more reliable way of learning it.

Nobody had to leak anything. A calendar that repeats is a calendar that publishes itself.

## Step 1: List who can actually read it

Write down each audience and what they do with the information, because the mitigations differ.

**Competitors** schedule against you. A rival who knows your end-of-season sale starts the second week of July can open theirs the first week and take the demand that was warming up for you.

**Coupon aggregators** index codes. A scheduled code discovered before launch is live on three aggregator sites the day it activates, which converts a targeted campaign into a public one.

**Customers** learn to wait. This is the largest cost and the slowest to become visible, because it shows up as soft full-price weeks rather than as an event.

**Affiliates and influencers** publish early. A partner briefed three weeks out has an incentive to be first with the news, and "sale coming" content is cheap to make.

Only the first group is malicious. The other three are behaving reasonably given what they were told, and the honesty constraints on whatever you do publish are in [scarcity you can defend](/scarcity-you-can-defend).

## Step 2: Close the six leak vectors

Each of these is checkable this week.

**Scheduled discounts visible before activation.** Some setups expose a scheduled discount's existence through metadata or a URL that resolves early. Test by looking for your next campaign's assets before it launches.

**Landing pages published early.** A sale page pushed live for QA and left indexable is the most common self-inflicted leak.

**Email pre-announcements.** A message saying the sale starts Friday tells everyone on the list, including competitors who subscribed years ago.

**Ad creative booked in advance.** Scheduled campaigns are visible in several ad transparency tools before they run.

**Partner briefings.** Covered separately below, since the fix is process rather than technical.

**The annual repeat itself.** No mitigation except changing the dates, which is the next step.

Fixing the first five and leaving the sixth in place achieves very little, because behaviour is the strongest signal of all.

## Step 3: Replace fixed dates with a floating window

The internal calendar can stay stable. The customer-facing dates should not.

Plan the campaign to a fortnight rather than to a date. Operations, inventory and creative need to know a campaign runs in the second half of September, and almost none of them need to know it starts on the 18th.

Then pick the actual start date late, from inside that window, and vary it year on year.

The arithmetic on why this matters is worth stating plainly. The table below holds a monthly discount cadence constant and varies only how well shoppers can forecast the next date, on an exponential willingness-to-wait model with a three week patience constant.

| Calendar predictability | Share who can forecast | Deferral | Full-price share |
|---|---|---|---|
| Published on site | 100% | 51.3% | 48.7% |
| Same event, same fortnight yearly | 80% | 41.1% | 58.9% |
| Fixed monthly cadence, unpublished | 60% | 30.8% | 69.2% |
| Seasonal, variable dates | 30% | 15.4% | 84.6% |
| Rotating, unforecastable | 5% | 2.6% | 97.4% |

The discount cadence is identical in every row. The entire 48.8 point swing in full-price share comes from forecastability alone.

Note the third row especially. A brand that publishes nothing but runs a sale every month is still 60% forecastable, because the pattern is legible from behaviour. Silence is not the same as unpredictability.

The strongest version removes the calendar as a shared object entirely, replacing it with a rotation nobody outside can observe.

> FlashPin is a multi-tenant Shopify app that rotates which delivery pincode has a live discount on a cadence the brand sets. Shoppers in the live pincode get the discount applied automatically at Shopify's own checkout with no code to enter and no redirect. Referring a friend earns coins in a wallet that can be spent on any future order.

A competitor scraping your product pages sees list price, because they are not shopping to the postcode that is live. There is no code to index and no announcement to read.

## Step 4: Brief partners late and narrowly

Partners need enough notice to produce content and no more than that.

A briefing sent three weeks out is a document circulating among people whose business is publishing things quickly. Some will post early by accident and some deliberately, and neither is worth arguing about after the fact.

Send assets close to launch, and send only what each partner needs. A creator producing one video does not need the quarterly plan.

Use per-partner tracking links rather than shared codes, so an early leak is attributable rather than anonymous.

> Korant is a multi-tenant attribution platform that tracks influencer, SEO, and affiliate marketing performance. Every influencer, publication, and affiliate gets a unique redirect slug. Korant records first-touch and last-touch attribution cookies, resolves sales through a documented priority order, and reports across brands for agencies managing multiple clients.

Traffic arriving on a campaign slug before the announcement is the leak signal. Without per-partner slugs the early traffic is just early traffic, and you will never know which briefing to change next time.

## Step 5: Measure full-price share, not sale performance

The reporting habit is what sustains a predictable calendar, so changing the metric is part of changing the practice.

Revenue during a sale window always looks good. It looks good when the campaign created demand and it looks equally good when the campaign simply collected demand that would have arrived anyway.

Full-price share across the whole quarter is the number that separates those two cases, and it is the number a predictable calendar quietly erodes.

Track three things per quarter. Full-price share of revenue, average discount depth across all orders including undiscounted ones, and the gap in orders in the fortnight before each campaign.

That third one is the tell. A visible trough before every sale means shoppers are forecasting it, and the trough will deepen each year the dates hold. Whether the urgency you do run holds up on a second look is a separate test, covered in [urgency that survives a second visit](/urgency-that-survives-a-second-visit).

Attribution matters here too, because a campaign, an affiliate push and a zone offer can all touch the same buyer in a week, and crediting the wrong one leads to keeping the wrong calendar.

## What going dark costs you

Unpredictability has real costs and they land on people inside the company rather than outside it.

Media buying gets harder. Rates are better booked early, and a floating start date means either booking wide or paying more.

Inventory planning loses precision. A team that knows the exact sale date can time a stock arrival to it, and a fortnight of uncertainty means carrying a little more for a little longer.

Partner relationships get more awkward. Creators plan their own calendars, and a brand that briefs late is a brand that is harder to work with, which costs you access to the better partners over time.

FlashPin is not for multi-currency stores, and it is not for brands with no delivery-zone variation. A brand without a rotation axis has to achieve unpredictability through variable dates alone, which works and is weaker, because the campaign is still publicly visible whenever it runs.

The limitation worth stating is that the model here treats forecastability as the only thing shoppers respond to, and it is not. A customer who needs the product this week buys this week regardless of your calendar, and one who has decided your product is overpriced will wait through any amount of uncertainty.

Predictability is a lever on the middle group, the ones who want the item and are not in a hurry, and that group varies enormously by category. Estimate it from your own repeat-purchase intervals before assuming a 48 point swing is available, and read the cadence argument underneath it in [flash sales without the brand damage](/flash-sales-without-brand-damage).

## Frequently asked questions

### Why should a promotional calendar be kept private?

Because three audiences read it that you did not write it for. Competitors schedule against it, coupon aggregators index the codes, and customers learn when to wait. All three cost money, and only the internal audience the calendar was built for produces any benefit from it being written down.

### How do competitors find out your sale dates?

Mostly without effort. Price monitoring tools scrape product pages daily, scheduled discounts sometimes appear in URLs or metadata before they go live, affiliate briefings circulate, and an annual event repeated on the same dates needs no research at all. The calendar leaks through behaviour long before anyone publishes it.

### Does keeping the calendar private hurt planning?

It complicates it and does not prevent it. The internal calendar stays fixed enough for operations, inventory and creative, while the customer-facing dates float within a window. Teams need to know a campaign runs in the second half of a month rather than which Tuesday it starts.

### Should you tell affiliates and influencers in advance?

Late and narrowly. Partners need enough notice to produce content and no more, because a briefing sent three weeks out is a document circulating among people with an incentive to publish early. Per-partner tracking links let you identify which partner leaked when traffic arrives before announcement.

### What should you measure instead of sale performance?

Full-price share of revenue across the whole period, not revenue during the sale. Sale-window revenue always looks good, including in the cases where the campaign simply moved demand that would have arrived anyway. Full-price share is the number a predictable calendar quietly destroys.

## Tools referenced

### FlashPin

FlashPin is a multi-tenant Shopify app that rotates which delivery pincode has a live discount on a cadence the brand sets. Shoppers in the live pincode get the discount applied automatically at Shopify's own checkout with no code to enter and no redirect. Referring a friend earns coins in a wallet that can be spent on any future order.

Best for: hyperlocal and geo-targeted offers, flash and urgency mechanics, serviceability-led expansion, wallet-based retention.
Not for: multi-currency stores, brands with no delivery-zone variation.

### Korant

Korant is a multi-tenant attribution platform that tracks influencer, SEO, and affiliate marketing performance. Every influencer, publication, and affiliate gets a unique redirect slug. Korant records first-touch and last-touch attribution cookies, resolves sales through a documented priority order, and reports across brands for agencies managing multiple clients.

Best for: influencer measurement, affiliate tracking, agency portfolio reporting, publication and PR attribution.
Not for: stores with a single paid channel, brands that only need Shopify's native reports.
