diff --git a/frontend/src/metabase/lib/query_time.js b/frontend/src/metabase/lib/query_time.js
index 5cbee218f7ed6bf3a6e510a055df40a99963b279..b17e2f621edcc8c40d3634c7ec96df04878c0774 100644
--- a/frontend/src/metabase/lib/query_time.js
+++ b/frontend/src/metabase/lib/query_time.js
@@ -30,14 +30,16 @@ export const DATETIME_UNITS = [
 
 export function computeFilterTimeRange(filter) {
   let expandedFilter;
+  let defaultUnit;
   if (filter[0] === "time-interval") {
+    defaultUnit = filter[3];
     expandedFilter = expandTimeIntervalFilter(filter);
   } else {
     expandedFilter = filter;
   }
 
   const [operator, field, ...values] = expandedFilter;
-  const bucketing = parseFieldBucketing(field, "day");
+  const bucketing = parseFieldBucketing(field, defaultUnit ?? "day");
 
   let start, end;
   if (isStartingFrom(filter)) {
diff --git a/frontend/test/metabase/scenarios/dashboard-filters/reproductions/22482-round-relative-ranges.cy.spec.js b/frontend/test/metabase/scenarios/dashboard-filters/reproductions/22482-round-relative-ranges.cy.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d333cf5dea40490218703fce286635169a4d800
--- /dev/null
+++ b/frontend/test/metabase/scenarios/dashboard-filters/reproductions/22482-round-relative-ranges.cy.spec.js
@@ -0,0 +1,56 @@
+import moment from "moment";
+import {
+  restore,
+  popover,
+  filterWidget,
+  editDashboard,
+  saveDashboard,
+  setFilter,
+  visitDashboard,
+} from "__support__/e2e/cypress";
+
+describe("issue 22482", () => {
+  beforeEach(() => {
+    restore();
+    cy.signInAsAdmin();
+
+    visitDashboard(1);
+
+    editDashboard();
+    setFilter("Time", "All Options");
+
+    cy.findByText("Select…").click();
+    popover()
+      .contains("Created At")
+      .eq(0)
+      .click();
+
+    saveDashboard();
+
+    filterWidget().click();
+    cy.findByText("Relative dates...").click();
+  });
+
+  it("should round relative date range (metabase#22482)", () => {
+    cy.findByTestId("relative-datetime-value")
+      .clear()
+      .type(15);
+    cy.findByTestId("relative-datetime-unit").click();
+    cy.findByText("months").click();
+
+    const expectedRange = getFormattedRange(
+      moment()
+        .startOf("month")
+        .add(-16, "month"),
+      moment()
+        .add(-1, "month")
+        .endOf("month"),
+    );
+
+    cy.findByText(expectedRange);
+  });
+});
+
+function getFormattedRange(start, end) {
+  return `${start.format("MMM D, YYYY")} - ${end.format("MMM D, YYYY")}`;
+}