[Bug]: Net Worth change value always zero on first interval #2927

Closed
opened 2026-02-28 20:32:43 -06:00 by GiteaMirror · 1 comment
Owner

Originally created by @TerborX on GitHub (Feb 13, 2026).

What happened?

I was trying to review the change in net worth for the current year shown in the net worth report versus a hand-calculated number and found a difference. While the actual new worth amount always seems to be correct, it appears that the change calculation excludes any activity that occurs in the first period of the calculation window.

I expected that the change figure in the report would take the current net worth balance and subtract the balance from the end of the prior period

What should happen:

  • December 31st - Net worth is $100
  • January 1st - Receive $100,000
  • No other January transactions
  • YTD Net Worth change should be $100,000 (YTD minus end of prior period)

What actually happens:

  • December 31st - Net worth is $100
  • January 1st - Receive $100,000
  • No other January transactions
  • YTD Net Worth is change is reported as zero; It is using the January 1 balance as the starting point of the calculation

Fix needed: Adjust net worth report change calculation to go back one day to grab the prior period's balance

How can we reproduce the issue?

a hand calculation of net worth will show that the change amount always excludes the change associated with the beginning of the period. This applies to days or months.

Where are you hosting Actual?

Pikapods

What browsers are you seeing the problem on?

Safari

Operating System

Mac OSX

Originally created by @TerborX on GitHub (Feb 13, 2026). ### What happened? I was trying to review the change in net worth for the current year shown in the net worth report versus a hand-calculated number and found a difference. While the actual new worth amount always seems to be correct, it appears that the change calculation excludes any activity that occurs in the first period of the calculation window. I expected that the change figure in the report would take the current net worth balance and subtract the balance from the end of the prior period What should happen: - December 31st - Net worth is $100 - January 1st - Receive $100,000 - No other January transactions - YTD Net Worth change should be $100,000 (YTD minus end of prior period) What actually happens: - December 31st - Net worth is $100 - January 1st - Receive $100,000 - No other January transactions - YTD Net Worth is change is reported as zero; It is using the January 1 balance as the starting point of the calculation Fix needed: Adjust net worth report change calculation to go back one day to grab the prior period's balance ### How can we reproduce the issue? a hand calculation of net worth will show that the change amount always excludes the change associated with the beginning of the period. This applies to days or months. ### Where are you hosting Actual? Pikapods ### What browsers are you seeing the problem on? Safari ### Operating System Mac OSX
GiteaMirror added the reportsbug labels 2026-02-28 20:32:43 -06:00
Author
Owner

@PratikSilwal5 commented on GitHub (Feb 14, 2026):

In net-worth-spreadsheet.ts, the change calculation used the first period's ending balance as the baseline instead of the prior period's ending balance (i.e., the balance right before
the report window starts).

Two specific issues:

  1. Per-period change (line 239): const change = last ? total - last.y : 0— the first period always showed 0 change because there was no previous data point to compare against.
  2. Total change (line 295): totalChange: endNetWorth - startNetWorth — startNetWorth was set to the first period's ending balance, which already included that period's transactions.

I will make a PR to fix this

@PratikSilwal5 commented on GitHub (Feb 14, 2026): In `net-worth-spreadsheet.ts`, the change calculation used the first period's ending balance as the baseline instead of the prior period's ending balance (i.e., the balance right before the report window starts). Two specific issues: 1. Per-period change (line 239): `const change = last ? total - last.y : 0`— the first period always showed 0 change because there was no previous data point to compare against. 2. Total change (line 295): `totalChange: endNetWorth - startNetWorth` — startNetWorth was set to the first period's ending balance, which already included that period's transactions. I will make a PR to fix this
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2927