Hi @lpb and @Tetsuo_Kawakami, I’ve chatted again with our PMs and they’ve confirmed that this is currently a limitation rather than a bug. That said, they’ve added your feedback to their list of opportunities, and it’s something they hope to address in a future update.
In the meantime, they’ve shared this additional context:
As of May 2025, we don’t propagate value changes from subtasks up to portfolios with Rollup() formulas. They recognize this doesn’t align with customer expectations and can feel like a bug, especially since there are other scenarios where propagation does work.
Currently, these are the three ways users can refresh Rollup() formula values:
1- Whenever a Rollup() formula is added to a container:
- If you add a Rollup() formula to a portfolio or project, we always immediately calculate/rollup the most up to date value of all of the container’s child objects
- This means that a simpler workaround than this to propagate value changes from subtasks up to portfolios is to remove the Rollup() formula from the portfolio, then add it back. We’ve tested this on our end and observed the Rollup() value in the portfolio correctly updates to account for subtask values
2- For Rollup() Formulas in portfolios:
- (Note that we currently don’t rollup nested portfolio values, but we are tracking this opportunity for the future, though there’s no ETA to share yet)
- If a task’s value changes for a custom field, and that task is in a project within a portfolio containing a Rollup() formula for that custom field, we refresh the Rollup() formula value on the portfolio.
- Perhaps an easier to follow example:
- Project “A” has a custom field called “Number”
- Portfolio “B” contains a Rollup() formula that rolls up the “Number” custom field
- Portfolio “B” contains Project “A”
- A user changes a value for a task (that is not a subtask) within Project “A”
- The value for the “Number” Rollup() formula on Portfolio “B” gets refreshed
3- For Rollup() Formulas in projects:
- Whenever a subtask’s values change for the custom field in a Rollup() formula, its parent task refreshes its Rollup() value
Even though there’s no timeline for a fix yet, the team is aware of this gap and does plan to improve it down the line. I hope the explanation and workaround help in the meantime!