To summarize, the Roll Forward metapattern is overloaded, in my view, and really should be broken out into three metapatterns:
- Roll Forward: This is what exists now. The Roll Forward reconciles a balance at one point in time to a balance at a different point in time. This is a simple thing that most people learned in their auditing class most likely: BASE. Beginning + Additions - Subtractions = Ending. In the XBRL world you have one concept which is an instant (the balance) and one concept which summarizes the changes (the additions and subtractions). The only dimension which changes is the period (Calendar Time [Measure] in the business reporting logical model. Here is a very basic example.
- Adjustment: This is new. I had always tried to model this as a Roll Forward, but it is really something different than a Roll Forward. For an Adjustment, the period (Calendar Time [Measure]) does not change, it stays the same. What changes is some other dimension. Here is a basic example. In the example, the balance of retained earnings is restated for prior period adjustments. The equation is: Originally Stated Balance + Adjustments for Prior Period Errors = Restated Balance. In the example (look in the XBRL instance at the contexts), what changes is the Report Date [Measure]. Frankly, I believe that the definition of an adjustment is a change in the report date. If one looks at the details, you can see the differences between a Roll Forward and an Adjustment.
- Variance: This is new. I had always modeled this as a Roll Forward also. Here is a basic example to help you visualize what is going on. In that example, we have Actual - Budget = Variance. The variance seems to be the difference between two Members of the same dimension or called Measure in the Business Reporting Logical Model. While the Roll Forward appears to specifically relate to changes in the period and the Adjustment appears to relate to changes in the report date; the Variance appears to be generally applicable to any dimension (Measure). The Domain of the dimension (Measure) is what expresses the actual variance value.
So while I do want to check with the super smart XBRL people that I know to be sure that breaking the Roll Forward out like this is the thing to do, I would contend these are in fact metapatterns.
Alternatively, one could perhaps argue that the Adjustment and Variance are specializations of the Roll Forward. But, if one were to look at the details in the XBRL instance and the XBRL taxonomy, I really do think someone knowledgeable about XBRL and business reporting would break these out into separate metapatterns.
Have a look at the details, let me know your vote. I will get back to you with what others think at some point in the future.