Dataflow: Rollforward logic over previous-year results
Intent
Rollforward brings values from a previous period (usually the previous year) into the current period by copying them forward in a predefined way. This helps avoid issues like circular dependencies (where templates depend on each other’s results, creating a loop that blocks rendering).
Problem
Silverfin treats cross-period references via results (within the same template) as circular. Otherwise, the system could end up in an endless loop of references (current period → period -1 → period -2 → period -3 → …).
Solution
Use a rollforward action to explicitly copy values from the previous period into the current period.
More details: Rollforward Documentation
Structure
Examples
Templates that need both current-period and previous-period values
- First period: only data in the current year will be available/completed
- Subsequent periods: values can be rolled forward into the next period’s “previous year” inputs, making comparisons straightforward.
How to implement
- Define which fields should be copied from the previous period.
- Configure a rollforward action that copies those fields into the current period.
- Clearly communicate when rollforward should be run (e.g., before users start entering current-period data).
Pros and cons
Pros
- Prevents circular reference issues
- Defaults can be taken into account in rollforward logic
- Easy to understand and control what data is copied
Cons
- One-time copy — doesn’t auto-update if the previous period changes
- Risk of overwriting user input if rollforward was done too late
- Requires clear communication of the end users or teams on how and when to use it

