diff --git a/lib/workers/check_usage.ex b/lib/workers/check_usage.ex
index a2d96e4e5769d77fcd088537ecc1b20ed2a9f40e..8f333a8bbbd94612fd735fe4413a61cf0aaea7d2 100644
--- a/lib/workers/check_usage.ex
+++ b/lib/workers/check_usage.ex
@@ -40,6 +40,7 @@ defmodule Plausible.Workers.CheckUsage do
           on: s.user_id == u.id,
           left_join: ep in Plausible.Billing.EnterprisePlan,
           on: ep.user_id == u.id,
+          where: is_nil(u.grace_period),
           where: s.status == "active",
           where: not is_nil(s.last_bill_date),
           # Accounts for situations like last_bill_date==2021-01-31 AND today==2021-03-01. Since February never reaches the 31st day, the account is checked on 2021-03-01.
diff --git a/test/workers/check_usage_test.exs b/test/workers/check_usage_test.exs
index b38cfa74f1dd1c7cd16a61492de75f253dabbd35..37b71bce01d8eeddf7ed91bf38e3c270e67a185f 100644
--- a/test/workers/check_usage_test.exs
+++ b/test/workers/check_usage_test.exs
@@ -97,6 +97,28 @@ defmodule Plausible.Workers.CheckUsageTest do
     assert Repo.reload(user).grace_period.end_date == Timex.shift(Timex.today(), days: 7)
   end
 
+  test "skips checking users who already have a grace period", %{user: user} do
+    Plausible.Auth.User.start_grace_period(user, 12_000) |> Repo.update()
+
+    billing_stub =
+      Plausible.Billing
+      |> stub(:last_two_billing_months_usage, fn _user -> {11_000, 11_000} end)
+      |> stub(:last_two_billing_cycles, fn _user ->
+        {Date.range(Timex.today(), Timex.today()), Date.range(Timex.today(), Timex.today())}
+      end)
+
+    insert(:subscription,
+      user: user,
+      paddle_plan_id: @paddle_id_10k,
+      last_bill_date: Timex.shift(Timex.today(), days: -1)
+    )
+
+    CheckUsage.perform(nil, billing_stub)
+
+    assert_no_emails_delivered()
+    assert Repo.reload(user).grace_period.allowance_required == 12_000
+  end
+
   test "reccommends a plan to upgrade to", %{
     user: user
   } do