diff --git a/eval/pricing.json b/eval/pricing.json index 9bd64bd..a53c6a0 100644 --- a/eval/pricing.json +++ b/eval/pricing.json @@ -25,8 +25,8 @@ } }, { - "since": "2026-09-10T11:00:00Z", - "label": "V4.1 Flash (changelog 2026-09-10); instant inferred, see src/provider/catalog.ts", + "since": "2026-09-10T04:00:00Z", + "label": "V4.1 Flash (changelog 2026-09-10); effective 04:00 UTC per the release note, see src/provider/catalog.ts", "rates": { "flash": { "input_hit": 0.003, "input_miss": 0.15, "output": 0.6 }, "pro": { "input_hit": 0.022, "input_miss": 0.66, "output": 1.98 } diff --git a/src/provider/catalog.ts b/src/provider/catalog.ts index 3e3c984..0c17e7c 100644 --- a/src/provider/catalog.ts +++ b/src/provider/catalog.ts @@ -70,11 +70,12 @@ export const CARDS: Card[] = [ }, { // V4.1 Flash, 2026-09-10: Flash cut on every item, Pro unchanged. - // The instant is INFERRED: our docs mirror read the old card at 04:50 - // UTC and the new one at 11:27 UTC that day. 11:00 is the last whole - // hour between, so a call in the gap can only be overstated. + // "New pricing takes effect at 04:00 UTC on Sept 10, 2026" -- DeepSeek's + // release note (news260910; 12:00 Beijing in the Chinese one). The + // pricing page itself still showed the old card at 04:50 UTC, so a date + // read off the page lags the bill. label: "V4.1", - since: new Date("2026-09-10T11:00:00Z"), + since: new Date("2026-09-10T04:00:00Z"), timeOfUse: true, rates: { flash: { inputHit: 0.003, inputMiss: 0.15, output: 0.6 }, pro: V4_PRO }, }, diff --git a/tests/catalog.test.ts b/tests/catalog.test.ts index b0e9a92..2314411 100644 --- a/tests/catalog.test.ts +++ b/tests/catalog.test.ts @@ -42,12 +42,14 @@ describe("dated cards", () => { expect(ratesAt("deepseek-v4-flash", at("2026-09-09T02:00:00Z"))?.inputMiss).toBe(0.44); // Wed peak }); - test("V4.1 Flash card from 2026-09-10 11:00 UTC; pro unchanged across it", () => { - const before = at("2026-09-10T10:59:00Z"); - const after = at("2026-09-10T11:00:00Z"); - expect(ratesAt("deepseek-flash", before)).toEqual({ inputHit: 0.007, inputMiss: 0.22, output: 0.66 }); + test("V4.1 Flash card from 2026-09-10 04:00 UTC; pro unchanged across it", () => { + // 03:59 is inside the 01-04 peak window, 04:00 is outside it, so this + // also proves the card and the tariff switch independently. + const before = at("2026-09-10T03:59:00Z"); + const after = at("2026-09-10T04:00:00Z"); + expect(ratesAt("deepseek-flash", before)).toEqual({ inputHit: 0.014, inputMiss: 0.44, output: 1.32 }); + expect(ratesAt("deepseek-v4-pro", before)).toEqual({ inputHit: 0.044, inputMiss: 1.32, output: 3.96 }); expect(ratesAt("deepseek-flash", after)).toEqual({ inputHit: 0.003, inputMiss: 0.15, output: 0.6 }); - expect(ratesAt("deepseek-v4-pro", before)).toEqual(ratesAt("deepseek-v4-pro", after)); expect(ratesAt("deepseek-v4-pro", after)).toEqual({ inputHit: 0.022, inputMiss: 0.66, output: 1.98 }); });