As scheduling consultants and trainers, we often hear the question, “How do I display Previous Period Billings in a P6 column, for the NAVFAC or USACE Earned Value report?”

Capturing and displaying the value of prior work in place in P6 isn’t as simple as I expected. The reason is that the value for prior periods is not a native field in P6. The value of the TOTAL work in place IS a native field. But even after having stored period performance, as soon as you add value for new work in place, that total also includes the new work. The trick is to isolate the new work from the previous and total columns, thereby having three discrete values.  Here’s the simplest way I’ve found, following each approved schedule update:

1. Following contracting officer’s approved update for each pay app, close the financial period. (Don’t do so until the per cents complete are APPROVED, to eliminate adjusting closed periods).

2. Copy the approved schedule, and paste it into the appropriate EPS branch. I rename the new copy with a suffix, typically “01” for the first pay app, “02” for the second, and so on.

3. Open this newly-created schedule and delete any baselines within it. We will save it as a baseline for the current schedule, and P6 does not allow a baseline schedule to contain a baseline within itself.

4. In the most current updated schedule, add the newly-copied schedule as a baseline. Next assign the new baseline as the “Primary Baseline,” I typically keep the schedule’s (main) baseline unchanged, making the Primary Baseline assignment the first one available.

5. When these steps are complete, the final step is to insert the BL1 Actual Cost column ( typically renamed “Prior Billings”, or similar), into the Earned Value Report layout. The correct values for Current Work, Previous Billings, and Total Work in Place can now be accurately displayed in three separate columns, for each cost-loaded activity.

By completing these steps for each pay period, the value of previously billed work will remain separate from the total work in place, (which always includes the value of the current period). It’s simple once you know how, but arguably isn’t intuitive. I used to spend at least an extra hour every month, running a global change routine to store the values in a user defined field, (which is a lot of extra effort). Thank s to Mark Stenstrom for the tip to use Baselines, in place of the more complicated UDF.