diff --git a/frontend/src/metabase/visualizations/lib/timeseries.js b/frontend/src/metabase/visualizations/lib/timeseries.js
index b5a1ba84ccc26c76a17bdaa8ae9bbb39f5c9714f..91c2794357caff7b24ea6edeab1dd732acb773e4 100644
--- a/frontend/src/metabase/visualizations/lib/timeseries.js
+++ b/frontend/src/metabase/visualizations/lib/timeseries.js
@@ -196,6 +196,10 @@ function computeTimeseriesDataInvervalIndex(xValues, unit) {
   if (unit && INTERVAL_INDEX_BY_UNIT[unit] != undefined) {
     return INTERVAL_INDEX_BY_UNIT[unit];
   }
+  // Always use 'day' when there's just one value.
+  if (xValues.length === 1) {
+    return TIMESERIES_INTERVALS.findIndex(ti => ti.interval === "day");
+  }
   // Keep track of the value seen for each level of granularity,
   // if any don't match then we know the data is *at least* that granular.
   const values = [];
diff --git a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js b/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js
index 823885bd6e350d48b6cb355d2e71eae9514be218..21fa26822f93aace6625d577c71fb991ac5925b7 100644
--- a/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js
+++ b/frontend/test/metabase/visualizations/lib/timeseries.unit.spec.js
@@ -132,6 +132,7 @@ describe("visualization.lib.timeseries", () => {
         10,
         [["2015-01-01T00:00:00.000Z"], ["2025-01-01T00:00:00.000Z"]],
       ],
+      ["day", 1, [["2019-01-01T00:00:00.000Z"]]],
     ];
 
     TEST_CASES.map(([expectedInterval, expectedCount, data]) => {