Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions eval/pricing.json
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down
9 changes: 5 additions & 4 deletions src/provider/catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
},
Expand Down
12 changes: 7 additions & 5 deletions tests/catalog.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 });
});

Expand Down
Loading