diff --git a/Distribution.md b/Distribution.md index 88c55b1..bccd24a 100644 --- a/Distribution.md +++ b/Distribution.md @@ -69,7 +69,7 @@ on the partner dashboard — the dashboard's Downloads page only re-offers the S | Partner account created | ✅ done by the creator | | Identity verification | ⏳ **pending** — Valve reviewing | | Tax interview | ⏳ submitted; Valve quotes **up to 30 business days** to review | -| $100 Steam Direct fee (per app) | not yet — a store page cannot be configured before it | +| $100 Steam Direct fee | ✅ **paid** (creator, 2026-11-05) — a store page can be configured once identity clears | | App IDs (paid app + free Demo) | **not yet assigned** | | Store page | not created | | Build review | not started | @@ -82,9 +82,9 @@ on the partner dashboard — the dashboard's Downloads page only re-offers the S 4. page public **≥2 weeks before release** (Valve's rule) 5. build review — **up to 12 business days** -**Earliest realistic launch: early-to-mid February 2027.** The launch price ends 2027-04-01, so there -is roughly seven weeks of buffer — *provided* verification clears in the window Valve quotes. If it -slips, the promo date is the thing to move (see `docs/ai/commercial.md`), not the code. +**Earliest realistic launch: early-to-mid February 2027.** The launch-price deadline is no longer a +date: it now ends **30 days after the store page goes live** (2026-11-05), so Valve's queue cannot make +the public claim wrong. Nothing below can start until step 1 clears; none of it blocks the app work. diff --git a/ViewModels/MainViewModel.Overlays.cs b/ViewModels/MainViewModel.Overlays.cs index 03ce1f5..fac550d 100644 --- a/ViewModels/MainViewModel.Overlays.cs +++ b/ViewModels/MainViewModel.Overlays.cs @@ -34,7 +34,10 @@ public partial class MainViewModel : ViewModelBase // the app, the site and docs/commercial.md cannot drift apart. ── public const string LaunchPrice = "$79"; public const string StandardPrice = "$99"; - public const string LaunchPriceEndsLabel = "April 1, 2027"; + /// When the launch price ends. Deliberately EVENT-relative, not a date: the store page is + /// in Valve's queue (identity verification + tax review), so a fixed date would be a public promise + /// we cannot keep if their backlog slips (creator ruling 2026-11-05). + public const string LaunchPriceEndsLabel = "30 days after the store page goes live"; /// The release state shown as a badge. Not the assembly version — that number is for /// log lines, not for the creator. @@ -42,7 +45,7 @@ public partial class MainViewModel : ViewModelBase public string UpgradeCtaLabel => $"Unlock 60 fps — {LaunchPrice}"; public string PriceLine => $"Launch price {LaunchPrice}"; - public string PriceNote => $"Until {LaunchPriceEndsLabel} — after that {StandardPrice}, locked for life."; + public string PriceNote => $"{LaunchPriceEndsLabel} — after that {StandardPrice}, locked for life."; public string FreeOfferText => "Livestream and record at 30 fps."; public string PaidOfferText => "Unlocks 60 fps for streaming and recording."; public string TrustLine => "One-time purchase · lifetime licence · no account, no subscription, no tracking."; diff --git a/docs/ai/commercial.md b/docs/ai/commercial.md index bca555f..f81e37b 100644 --- a/docs/ai/commercial.md +++ b/docs/ai/commercial.md @@ -1,7 +1,9 @@ ## Price (creator ruling 2026-11-05) - **Launch price $79** — one-time purchase, lifetime licence, no subscription, no account, no tracking. -- **Promotion ends April 1, 2027**; after that the price is **$99, locked for life**. +- **Promotion ends 30 days after the store page goes live** (revised 2026-11-05 — the earlier fixed date, + April 1 2027, depended on Valve's review queue, which is outside our control); after that the price is + **$99, locked for life**. - Free tier: livestream and record at **30 fps**. Paid unlocks **60 fps** for both. - The numbers live in `ViewModels/MainViewModel.Overlays.cs` (`LaunchPrice`, `StandardPrice`, `LaunchPriceEndsLabel`) so the About box, the site copy and this file cannot drift apart. Change them