
The Deferred Tax Rollforward That Never Ties
Opening balances that do not agree to last period's closing are the most common tax review finding there is, and the plug that resolves them tends to survive for years.
A deferred tax rollforward starts with the prior period closing balance, adds the current period movement, separates the effect of rate changes and currency translation, and arrives at the closing balance. It fails to tie for five reasons: a return to provision adjustment never posted, a rate change applied to the wrong opening balance, a currency effect netted into movement, an acquisition or disposal balance never brought in, or a difference reclassified between categories without a corresponding entry.
- The rollforward is a continuity control, not a presentation exercise. Its whole value is that opening should equal prior closing with no adjustment.
- Five causes explain nearly every break, and each leaves a different fingerprint in the numbers.
- Rate change effects and currency translation must be shown as separate lines. Netted into movement, they hide breaks permanently.
- A plug that survives one period will survive ten, because each subsequent rollforward starts from the plugged balance.
- ChatFin rebuilds the rollforward from ledger and difference detail, tests continuity by category, and isolates which of the five causes applies.
There is a specific moment in a tax review that most preparers recognise. The closing deferred balance is right, the movement is explainable, and the opening balance is off by an amount nobody can source.
What happens next determines whether the problem is solved or inherited. Under time pressure the difference gets absorbed into a movement line, described as an adjustment, and the pack ships. The following period starts from that balance, and the origin of the difference is now one period further away and correspondingly harder to find.
This page covers what a rollforward is actually testing, the five causes behind almost every break, why netting rate and currency effects makes the problem permanent, and how to rebuild the schedule so continuity is proved rather than assumed.

What the rollforward is actually testing
A deferred tax rollforward is often treated as a disclosure input. Its real function is a control, and the control is continuity: everything that happened to the deferred balance in the period is either explained by a line in the schedule or it is a break.
That framing changes how the schedule is built. A rollforward designed for disclosure has as few lines as the disclosure needs. A rollforward designed as a control has a line for every category of movement that can occur, even when several are zero in a given period, because a category with no line is a category where a difference can hide.
| Opening balance | Prior period closing, agreed without adjustment, by jurisdiction and by difference category |
| Current provision movement | The deferred element of the current period charge, split by category |
| Rate change effect | The remeasurement of opening balances for enacted rate changes, on its own line |
| Currency translation | The effect of translating balances held in other currencies, never netted into movement |
| Return to provision | Differences between the provision recorded and the return as filed |
| Acquisitions and disposals | Balances brought in or removed, at the date of the transaction |
| Reclassification | Movements between categories that net to zero in total, shown explicitly |
| Closing balance | Agreeing to the deferred tax balances in the ledger and to the disclosure |
The five causes of a break
Almost every failure to tie comes from this list, and each one is identifiable from the shape of the difference.
Return to provision never posted
The analysis was performed, the differences were identified, and the entry never reached the ledger. The rollforward and the ledger diverge by exactly that amount.
Rate change on the wrong base
The remeasurement was calculated on a balance that had already moved, or applied to the wrong jurisdiction. Produces a difference proportional to the rate change.
Currency netted into movement
Translation effects absorbed into the movement line, so the schedule appears to tie while the underlying categories do not.
Acquired or disposed balances
Opening deferred balances from an acquisition never brought into the schedule, or disposal balances never removed. Usually a large, single, dateable amount.
Silent reclassification
A difference moved between categories in the model without an entry, netting to zero overall while both categories are wrong.
Cause five is the hardest to detect because the total ties perfectly. It only appears when the rollforward is tested by category rather than in aggregate, which is the argument for building it that way in the first place.

Why netting makes the problem permanent
The temptation with rate and currency effects is understandable. They are mechanical, they are not judgemental, and folding them into movement produces a shorter schedule that still ties.
The cost is that the schedule stops being a control. Once rate and currency sit inside a movement line, any difference of any origin can be absorbed there without detection, because nobody can independently recalculate a line that contains four different things. The schedule now proves only that the arithmetic is internally consistent.
Shown separately, both lines are independently verifiable. The rate change effect can be recalculated from the opening balance and the rate delta. The currency effect can be recalculated from opening balances and the rate movement. Anything left over is a genuine break with nowhere to hide, which is precisely the point.
What the tax platforms handle
Provision software handles rollforwards properly when the data going in is correct. Corptax, Thomson Reuters ONESOURCE and Longview Tax all maintain deferred balances by jurisdiction and category, apply rate changes, and produce the rollforward with the required splits.
The failure point is upstream and it is the same in every platform. If the opening balance loaded into the system was already plugged, or an acquisition was never set up, or a return to provision entry was calculated in the platform but never posted to the ledger, the platform will produce a schedule that ties internally and disagrees with the general ledger. The software has no way to know the ledger says something different.
Reconciling a maintained schedule against the ledger by category is a matching exercise across two systems, which is what ChatFin does as part of the wider close described in automated close management.

Finding the break systematically
When a rollforward does not tie, the instinct is to search the largest categories first. A structured elimination is faster and it produces an explanation rather than a match.
Test continuity by category, not in total
Compare prior closing to current opening for every jurisdiction and category separately. A total that ties can conceal offsetting breaks.
Recalculate the rate change independently
Apply the rate delta to the opening balance yourself. If your figure differs from the schedule, cause two is confirmed.
Recalculate currency independently
Translate opening balances at both rates. Any residual after this and the rate test is not mechanical.
Check the return to provision entry reached the ledger
Trace the analysis to a posted entry. A calculated but unposted adjustment is the single most common cause.
Reconcile the category list itself
Compare the categories in this period's schedule to the prior period's. A category that appeared or disappeared is a silent reclassification.
Running these five in order resolves most breaks within an afternoon, and each one either eliminates a cause or identifies it, which is what makes the process reliable rather than exploratory.
How ChatFin rebuilds and tests the rollforward
ChatFin builds the rollforward from the ledger and the underlying difference detail rather than carrying forward a maintained schedule, which means opening balances are derived from what the ledger actually holds rather than from what the model believes.
The autonomous reconciliation agent tests continuity by jurisdiction and category, not in aggregate, and reports every category where prior closing does not equal current opening. The analytics agent recalculates the rate change and currency effects independently and shows the residual after both, which isolates the mechanical causes immediately. The conversational finance AI layer lets the tax team ask which deferred category moved without a corresponding entry.
| Reconciliation agent | Tests prior closing to current opening by jurisdiction and category, never only in total |
| Analytics agent | Independently recalculates rate change and currency effects and reports the residual |
| Pattern recognition | Flags categories that appeared or disappeared between periods, exposing silent reclassification |
| Data query agent | Answers questions such as which deferred balances moved without a posted entry |
| Governed write back | Prepares the correcting entry with the continuity test attached, for tax approval |
The correcting entry is never posted by the agent. It is prepared with the evidence of which cause applied, routed through your approval chain, and posted only after a person releases it, which also means the explanation exists in the workpaper rather than in somebody's memory.

Getting to a clean opening balance once
If the current schedule contains an inherited plug, the only way forward is to source it, and the effort is bounded if you approach it from the ledger side.
Rebuild from the ledger, not the model
Take the deferred balances the general ledger actually holds by account and jurisdiction, and treat those as the starting point.
Rebuild the category split from difference detail
Derive categories from the underlying temporary differences rather than from the prior schedule, so an inherited misallocation does not carry forward.
Reconcile the two and document the difference
The gap between the ledger position and the maintained schedule is the plug. Write down what it is and, where possible, when it arose.
Post the correction and start clean
A documented one time correction is far better than a permanent unexplained line, and it is a conversation your auditors would rather have now than later.
The last step is the one teams avoid because it looks like admitting an error. It is considerably less costly than the alternative, which is explaining in three years why an unexplained balance has been rolled forward twelve times.
A plug that survives one period will survive ten, because every rollforward after it starts from the plugged balance.
ChatFin
Frequently Asked Questions
Why does the deferred tax rollforward not tie?
Five causes explain nearly all of it. A return to provision adjustment that was calculated but never posted to the ledger, a rate change remeasurement applied to the wrong opening base, currency translation netted into the movement line, deferred balances from an acquisition or disposal never brought in or removed, and a difference reclassified between categories in the model without a corresponding entry. Each leaves a distinguishable trace.
Should rate change effects be shown separately in a rollforward?
Yes, and so should currency translation. Both are mechanical and independently recalculable, which is exactly what makes them valuable as separate lines. Folded into a movement line, they create a place where any difference of any origin can be absorbed without detection, and the schedule stops functioning as a continuity control.
How do you find the source of a deferred tax break?
Test continuity by jurisdiction and category rather than in total, since offsetting breaks net to zero. Then recalculate the rate change and currency effects independently to eliminate the mechanical causes. Confirm the return to provision entry actually reached the ledger, which is the most common single cause. Finally, compare the category list against the prior period to expose any silent reclassification.
Can ChatFin rebuild a deferred tax schedule from the ledger?
Yes. ChatFin derives deferred balances from what the general ledger actually holds by account and jurisdiction, and rebuilds the category split from the underlying temporary difference detail rather than carrying forward a maintained schedule. It then tests continuity by category and reports which of the causes applies, with the correcting entry prepared for the tax team to approve.
This article is general information for finance and accounting teams. It is not accounting, tax or legal advice. Confirm the treatment of your own facts with your auditors and advisers.
See ChatFin rebuild your deferred rollforward from the ledger.
ChatFin derives deferred balances from the ledger and the underlying difference detail, tests continuity by jurisdiction and category, and recalculates rate and currency effects independently.
Where a break exists, the cause is identified and the correcting entry is prepared with the continuity test attached, for the tax team to approve before posting.
Book a DemoBring last period's rollforward and ledger balances.
ChatFin will test continuity by category, recalculate the rate and currency effects, and show the residual with the cause identified.