{"version":"2.1.197","anchor":"promotional-launch-pricing-in-model-picker","canonical_anchor":"promotional-launch-pricing-in-model-picker","heading":"Promotional Launch Pricing in Model Picker","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.197\/e\/promotional-launch-pricing-in-model-picker","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.197","markdown":"### Promotional Launch Pricing in Model Picker\n\n**What**\n\nWhen Sonnet 5 is on a launch promotion, the model picker displays the promo price with the regular list price struck through next to it.\n\n**Details**\n\n- During the promo period, the Sonnet 5 entry shows: `~~$3\/$15~~ $2\/$10 per Mtok \u00b7 promo through [date]`\n- The promo expiry date is read from the `cedar_basin` key in the remote server config (`AI()?.cedar_basin`). `Dlo()` parses the value and returns it only if `Date.now() < parsedMs` (live gate); once the date has passed `Dlo()` returns `undefined` and no promo UI is rendered\n- `Rlo()` formats the raw date string using `toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", timeZone: \"UTC\" })`, producing e.g. `\"Jun 29\"`\n- The `description` field carries the promo price (`$2\/$10 per Mtok \u00b7 promo through \u2026`) so plain-text consumers read it unambiguously; rich pickers (the CLI model-selector component) additionally prepend `chalk.dim.strikethrough(promoListPrice)` before the first `$X\/$Y` token in `description`, producing the struck-through display\n- When no promo is active the description falls back to `C1(jte)` \u2014 the standard pricing description string\n- The \"Sonnet 5 (1M context)\" entry (`Nlo()`) follows the same pattern; when running in a standalone\/operator context (`Ao()` returns `true`) all pricing is omitted and only `\"Sonnet 5 for long sessions\"` is shown\n- Third-party provider users (Bedrock, Vertex, etc.) do not see promo pricing: `gBn()` applies the promo display block only when `ud()` returns `false` (first-party API key users)\n- This is a new UI field: `promoListPrice` added to the model row schema specifically to support struck-through rendering in rich pickers; `description` always carries only the promo price so plain-text consumers are unaffected\n\n**Evidence**\n\nPromo gate function `Dlo()` reading `AI()?.cedar_basin`; formatter `Rlo()` (search for `\"$2\/$10 per Mtok\"` and `\"promoListPrice\"`); rich-picker rendering (search for `\"dim.strikethrough\"`); schema documentation (search for `\"@internal List price (e.g. \\`$3\/$15\\`)\"`)"}