diff --git a/app/renderer/components/ActivityHeatmap.test.tsx b/app/renderer/components/ActivityHeatmap.test.tsx
new file mode 100644
index 00000000..59db5ed4
--- /dev/null
+++ b/app/renderer/components/ActivityHeatmap.test.tsx
@@ -0,0 +1,50 @@
+// @vitest-environment jsdom
+import { fireEvent, render } from '@testing-library/react'
+import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
+
+import type { DailyHistoryEntry } from '../lib/types'
+import { ActivityHeatmap } from './ActivityHeatmap'
+
+function entry(date: string, cost: number, calls: number): DailyHistoryEntry {
+ return { date, cost, savingsUSD: 0, calls, inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, topModels: [] }
+}
+
+// A fixed "now" so the 26-week window and the day-under-test are deterministic.
+beforeEach(() => vi.setSystemTime(new Date(2026, 6, 20, 12, 0, 0)))
+afterEach(() => vi.useRealTimers())
+
+describe('ActivityHeatmap no-data days (before recorded history)', () => {
+ // History begins 2026-07-10; earlier days predate any recorded data.
+ const daily = [entry('2026-07-10', 4, 20), entry('2026-07-15', 6, 30)]
+
+ it('marks days before the first recorded day as no data, not a currency zero', () => {
+ const { container } = render(