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