diff --git a/src/_zkapauthorizer/lease_maintenance.py b/src/_zkapauthorizer/lease_maintenance.py
index 74f495f470b746ac75dabe0a417817a47a280195..57b8624b388e4cc19d505230d64c32251223eecd 100644
--- a/src/_zkapauthorizer/lease_maintenance.py
+++ b/src/_zkapauthorizer/lease_maintenance.py
@@ -211,7 +211,7 @@ def needs_lease_renew(min_lease_remaining, stat, now):
     :return bool: ``True`` if the lease needs to be renewed, ``False``
         otherwise.
     """
-    remaining = now - datetime.utcfromtimestamp(stat.lease_expiration)
+    remaining = datetime.utcfromtimestamp(stat.lease_expiration) - now
     return remaining < min_lease_remaining