diff --git a/packages/loot-core/src/server/budget/goaltemplates.ts b/packages/loot-core/src/server/budget/goaltemplates.ts
index 7c3c033bfbeb1ebecef7ce606674cacd0e8c7265..bf394c4c5f22ca0d56bf742776cda8afa8b4f3c1 100644
--- a/packages/loot-core/src/server/budget/goaltemplates.ts
+++ b/packages/loot-core/src/server/budget/goaltemplates.ts
@@ -144,7 +144,7 @@ async function processTemplate(month, force, category_templates) {
     let remainder_scale = 1;
     if (priority === lowestPriority) {
       let available_now = await getSheetValue(sheetName, `to-budget`);
-      remainder_scale = Math.round(available_now / remainder_weight_total);
+      remainder_scale = available_now / remainder_weight_total;
     }
 
     for (let c = 0; c < categories.length; c++) {
@@ -671,6 +671,9 @@ async function applyCategoryTemplate(
           // can over budget with the rounding, so checking that
           if (to_budget >= budgetAvailable + budgeted) {
             to_budget = budgetAvailable + budgeted;
+            // check if there is 1 cent leftover from rounding
+          } else if (budgetAvailable - to_budget === 1) {
+            to_budget = to_budget + 1;
           }
         }
         break;
diff --git a/upcoming-release-notes/1400.md b/upcoming-release-notes/1400.md
new file mode 100644
index 0000000000000000000000000000000000000000..3bd39278fc70ce0cd7725c8acc0b992709a77271
--- /dev/null
+++ b/upcoming-release-notes/1400.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [youngcw]
+---
+
+Goals: Fix leftover $0.01 when using remainder goal