diff --git a/conservancy_beancount/reports/core.py b/conservancy_beancount/reports/core.py
index 5e27169..7f93368 100644
--- a/conservancy_beancount/reports/core.py
+++ b/conservancy_beancount/reports/core.py
@@ -167,8 +167,10 @@ class Balance(Mapping[str, data.Amount]):
     ) -> bool:
         return all(op_func(amt.number, operand) for amt in self.values())
 
-    def copy(self: BalanceType) -> BalanceType:
-        return type(self)(self.values())
+    def copy(self: BalanceType, tolerance: Optional[Decimal]=None) -> BalanceType:
+        if tolerance is None:
+            tolerance = self.tolerance
+        return type(self)(self.values(), tolerance)
 
     def clean_copy(self: BalanceType, tolerance: Optional[Decimal]=None) -> BalanceType:
         if tolerance is None: