diff --git a/.changeset/fix-outreach-stats.md b/.changeset/fix-outreach-stats.md
new file mode 100644
index 0000000000..8a7bfeefe1
--- /dev/null
+++ b/.changeset/fix-outreach-stats.md
@@ -0,0 +1,4 @@
+---
+---
+
+fix: align frontend outreach stats field names with backend API response
diff --git a/server/public/admin-outreach.html b/server/public/admin-outreach.html
index c2bdc5d6d0..16476b8369 100644
--- a/server/public/admin-outreach.html
+++ b/server/public/admin-outreach.html
@@ -613,7 +613,7 @@
New Variant
if (response.ok) {
const stats = await response.json();
document.getElementById('stat-today').textContent = stats.sent_today || 0;
- document.getElementById('stat-week').textContent = stats.sent_week || 0;
+ document.getElementById('stat-week').textContent = stats.sent_this_week || 0;
const responseRate = stats.total_sent > 0
? Math.round(100 * stats.total_responded / stats.total_sent)
: 0;
diff --git a/server/src/db/insights-db.ts b/server/src/db/insights-db.ts
index f5ba1dc5a8..53a65c96be 100644
--- a/server/src/db/insights-db.ts
+++ b/server/src/db/insights-db.ts
@@ -287,6 +287,7 @@ export interface OutreachStats {
sent_today: number;
sent_this_week: number;
total_responded: number;
+ total_sent: number;
response_rate: number;
insights_gathered: number;
}
@@ -1238,6 +1239,7 @@ export class InsightsDatabase {
sent_today: parseInt(row.sent_today, 10),
sent_this_week: parseInt(row.sent_this_week, 10),
total_responded: totalResponded,
+ total_sent: totalSent,
response_rate: totalSent > 0 ? Math.round((100 * totalResponded) / totalSent) : 0,
insights_gathered: parseInt(row.insights_gathered, 10),
};