CREEX TEAM

Steam Discount & Cooldown Planner

Steam won't let you schedule discounts however you like: 30 days between discounts, 30 days after release, and 30 days after a price increase — all counted from the exact moment (discounts switch at 10:00 AM PT).

My games

COOLDOWN

Input data
Steam discounts end at 10:00 AM PT — usually evening for you. If you haven't run a discount yet, use your release date and time instead.
No discounts yet — this is the release date
Was there a price increase?
Steam discount rules at a glance
  • At least 30 days between two discounts, counted from the exact moment the previous discount ended.
  • 30 days without discounts after your game's release. The only exception is the launch discount, configured in advance and starting at release.
  • 30 days without any discounts after a price increase — including seasonal sales. No exceptions.
  • Seasonal sales (Spring, Summer, Autumn, Winter) are exempt from the between-discounts cooldown — you can join even if 30 days haven't passed.
  • Discounts range from 10% to 90% off the base price.
  • A custom discount (outside of sales) can run for at most 14 days.
  • Discounts switch on and off at 10:00 AM Pacific Time (PT).
Rules behind this planner

Mathematical Model of the Discount Cooldown

30 days between discounts, 30 days after release, 30 days after a price increase (no exceptions — this blocks even a sale).

$$ T_{floor} = \max\big(T_{last} + 30d,\ T_{price} + 30d\big) $$ $$ T_{next} = \min\left\{\, t \ge T_{floor} \;:\; t \equiv 10\!:\!00\ \mathrm{PT} \,\right\} $$

Seasonal sales are exempt from the between-discounts cooldown: you can join even if less than 30 days passed since your last discount (but the price-increase and 30-days-after-release cooldowns still apply).

$$ F_r = \begin{cases} T_{price} + 30d, & \text{type}(r) = \text{seasonal} \wedge \lnot\,\text{release mode} \\ \max\big(T_{last} + 30d,\ T_{price} + 30d\big), & \text{otherwise} \end{cases} $$ $$ E_r = \mathbb{1}\big[\, D_r \ge F_r \,\big] $$

Themed festivals: joining with a discount counts as a regular dev discount (subject to all cooldowns), but joining by tag without a discount is always allowed. A launch discount only runs before release, 7–14 days, capped at 40%.

Nomenclature:

$T_{last}$ : End of the last discount (or release date)
$T_{price}$ : Instant of the last price increase
$T_{floor}$ : Earliest allowed instant for the next discount
$T_{next}$ : Next 10:00-PT boundary at or after $T_{floor}$
$D_r$ : Start date of festival/sale $r$
$F_r$ : Required floor for event $r$ to be eligible
$E_r$ : Eligibility of event $r$ (1 = allowed)
$30d$ : Steam's fixed 30-day cooldown window

Cross-checked with Steamworks docs, June 2026 — Event dates are in the 2026 festival calendar below.

Steam sale & fest calendar 2026

The full calendar of Steam sales and fests for 2026 with official start and end dates from Valve's announcement. All events start and end at 10:00 AM Pacific Time (PT).

Summer Sale
Jun 25, 2026 — Jul 9, 2026
seasonal sale
Social Deduction Fest
Jul 13, 2026 — Jul 16, 2026
themed festival
Train Fest
Jul 20, 2026 — Jul 27, 2026
themed festival
Cyberpunk Fest
Aug 3, 2026 — Aug 10, 2026
themed festival
Pins & Pegs Fest
Aug 17, 2026 — Aug 20, 2026
themed festival
PvE Survival Crafting Fest
Aug 31, 2026 — Sep 7, 2026
themed festival
Programming Fest
Sep 10, 2026 — Sep 14, 2026
themed festival
Party-Based RPG Fest
Sep 14, 2026 — Sep 21, 2026
themed festival
Autumn Sale
Oct 1, 2026 — Oct 8, 2026
seasonal sale
Cooking Fest
Oct 12, 2026 — Oct 19, 2026
themed festival
Steam Next Fest (October)
Oct 19, 2026 — Oct 26, 2026
demo fest (no discounts)
Steam Scream V Fest
Oct 26, 2026 — Nov 2, 2026
themed festival
Auto-Battler RPG Fest
Nov 16, 2026 — Nov 23, 2026
themed festival
Winter Sale
Dec 17, 2026 — Jan 4, 2027
seasonal sale

The calendar is hardcoded for H2 2026; we'll update it for 2027 once Valve announces the dates.

🧪 Calculator in beta

The logic is fresh — expect edge cases and simplifications. Treat the result as a guide, not exact accounting. Found a bug or an edge case? Let us know and we'll fix it.

RU EN