Table of Contents

Microsoft Project Add-In Utility

IPM Utilities is a set of tools created to streamline interactions between certain IPM procedures and the Microsoft Project schedule. Other useful features are included as well and are grouped separately in the 'Other Utilities' section; these are not directly involved with IPM.

1. Installation and Compatibility

The IPM Utilities are installed for all users on a computer, and the installation will require administrative privileges. The download information for the most recent version can be found below.

IPM Utilities in Project 2010


2. Activation

The IPM Utilities software is free but must be activated after a thirty-day trial period. This means users need to register the software with the free serial number 33d5-a6ed.

  1. Online Activation - Activate Now
    • This option requires users to enter their name, company, email address, and serial number. Use the serial number 33d5-a6ed.
  2. Offline Activation - Step 1
    • Obtain via Internet
      • Choosing this option will ask users for the same information as the online activation but open a web browser with an activation key that can be used in Step 2.
    • Obtain via Telephone or Email
      • Choosing this option opens a new window displaying a users Unique ID. Provide this to OPDEC support either by calling the phone number shown or clicking on the “Send Email” button. This button will generate an email for OPDEC support, but it must be sent by the user.
  3. Offline Activation - Step 2
    • Enter the activation key obtained in Step 1 and click the “Enter” button.
  4. Activate Later
    • Users may select this option to continue the free trial and access the utilities. If the Number of Days Remaining displays “0” then the free trial has expired, and users must activate the software to continue.

3. IPM Settings

This form is responsible for storing the field settings for the IPM Utilities. The Settings Profile Tag text box at the top of the form is used to maintain the settings between multiple Project files. Entering in a unique, identifying tag for the settings entered will tag that Project file with that profile, and in the future will load the corresponding settings. This makes transitioning between multiple Project files seamless once they have been tagged with different settings profiles. The text entered must be 255 characters or less.

The Settings form requires the user to select several fields from their Project file through the drop-down boxes provided in the Field Settings section. Each field select should correlate with its description. These options should correspond to what has already been assigned in IPM, allowing the automated processes to interact with the schedule appropriately.

If these settings are not updated or not correct, then users may experience errors while operating the utilities.


4. Import Status

This process uses a Microsoft Excel file exported from IPM to update the status of designated tasks in the Microsoft Project schedule. To accomplish this, follow these steps:

  1. Open the MS Project file that was posted to IPM for statusing.
  2. Select the “Import Status” button from the OPDEC tab
  3. Check the 'Set Phys % Complete = CAM % Complete' option if desired.
    1. This option also applies to the custom CAM completion percentage as the physical completion percentage. Doing so allows Microsoft Project to display task completion progress in the Gantt Chart view.
  4. By default, the “Override Critical Issues” checkbox is unchecked.
    1. This option allows the user to ignore critical issues found during the import and force the updates to proceed. It's advised to only check this box when the user has already reviewed the critical issues identified on a previous results report. There are however, three critical issues that no matter what option is checked, cannot be updated via the import: UIDs that no longer exist, Tasks that are now inactive, and Tasks that are now summaries. For more detail, reference the Critical Issues subsection of the Import Status Results Report documentation below.
  5. Press the “Import Status” button
  6. Select the Excel file that was exported from IPM in the file dialog prompt.
  7. The process checks to ensure a valid file was selected.
  8. The process checks for any critical issues in the status import file. Please see the Results Report section below for more detail on these issues.
  9. The import process will update the tasks as follows:
    1. Forecast starts are given a “Start No Earlier Than” constraint date equal to the forecast start date requested
    2. Forecast finishes are updated by changing the duration of the task
    3. Actual start dates are updated as requested or as originally provided from the IMS to the status instance
    4. Actual finish dates are updated as requested and the Constraint Type is removed
    5. The CAM %C field is updated as requested or as originally provided from the IMS to the status instance
    6. If requested, the physical %C is set to the CAM %C being imported
  10. The process reviews the schedule after importing the status updates. If any differences are found between the status update and the state of the schedule afterwards, they are highlighted in the Results Report. Please see the Results Report section below for more detail.
  11. The process completes. If status updates were applied, the user is notified that the process completed and that they should review the results report for any issues that occurred as a result of the status update. If critical issues were found and the “Override Critical Issues” checkbox was not checked, the user sees a notification telling them that no status updates were applied, and that critical issues were found in the results report.

4.1 Import Status Results Report

After each status import, a results report is generated. It is saved in the same directory as the status import file. This report has three sections: the status updates from the import file, the state of the IMS after the status updates are applied, and any critical issues found during the status update.


4.1.1 Status Updates From IPM

This first section of the results report provides the original data contained in the Status file exported from IPM.


4.1.2 IMS Result After IPM Status Updates

This second section shows the state of the IMS after the status updates from IPM were applied, highlighting deviations between what was requested versus the final result. This allows you to quickly see any deviations in what was requested to what the final result is. Note that this section will remain blank if critical issues were found, and the “Override Critical Issues” checkbox on the Import Status form is unchecked.

Cells highlighted in red indicate a difference between the value listed for a field in the Excel import file and the corresponding value in the IMS. When Actual Dates are highlighted in red, it typically indicates the task in the IMS is split.

The “Out of Sequence ID” column will list the Task IDs of any Out of Sequence predecessors that the current task has a relationship to. A task's predecessor is considered out of sequence by comparing the Actual Start and Actual Finish of the predecessor and current task based upon the relationship type (i.e. FS, FF, etc.). While out of sequence tasks do not necessarily indicate a problem, this and any other red indicated cells should be reviewed, understood, and resolved, if necessary, before continuing with further analysis.


4.1.3 Critical Issues

The third and final section reports any critical issues that were found before performing the status updates. By default, if any critical issues are found (with the exception of “Split Tasks Identified”), the process will not apply any status updates. If the user wants to bypass these critical issues and proceed with the status updates, checking the “Override Critical Issues” checkbox on the import form would be necessary.

No matter the “Override Critical Issues” option chosen, the import process will never update tasks that exhibit any of the following three critical issues.

  1. UID Not Found
    1. The task UID in the import file is no longer in your current schedule.
  2. Task is now Inactive
    1. The task is now inactive in the current schedule and cannot receive status (its “Active” field value is set to “No”).
  3. Task is now a Summary
    1. The task is now a summary in the current schedule and cannot receive status (its “Summary” field value is set to “Yes”).

These checks below help illuminate conditions where the IMS data has changed since being shown to the users in IPM for statusing. The term 'expected values' refers to IPM's last known “Actual Start” and “CAM % Complete” as they were provided from the IMS to IPM. These expected values are in the “IMS Info as Provided to IPM” section of the Results Report. Note that these issues are only applicable to IPM Status exports generated with IPM version 9.3.94 or later.

  1. Starting CAM %C
    1. The task's current CAM % Complete value does not match the expected value.
  2. Actual Start
    1. The task's current Actual Start value is either missing or different from the expected value.
  3. Forecast Start
    1. The task has a Forecast Start provided in the Status file, but already has an Actual Start assigned in the current schedule.
  4. Actual Finish
    1. The task's current Actual Finish value is either missing or different from the expected value.
  5. Split Task Identified
    1. The check is performed for each task after its status is updated. If the status update caused the task to split, this error will be shown.

5. Export Status

This utility exports the current status of the Microsoft Project file to a predetermined format that can then be imported into the cost system. The typical process is dictated below:

  1. Ensure the correct Settings are applied and then select the “Export Status” button from the OPDEC tab
  2. Choose from the Export Format drop-down depending on which Cost System is being utilized by the program: Deltek's MPM or IPM's Internal Cost Module.
  3. Press the Export Status button
  4. The tool will update users on the export process using the status bar on the dialog
  5. When the process completes, the resulting “.csv” file(s) will be in the same folder as the MS Project file provided, unless the “Use Custom Location for Export Files” setting is checked in the current IPM Settings profile. These files must then be handed off to finance for import into the cost system.

Please note only tasks with the following criteria are exported for status:

  1. Tasks must be Active in Project
  2. Tasks must have a Package ID
  3. Tasks must have a valid Earned Value Technique or Milestone ID.
    1. Note that tasks with an 'AE' or 'BE' Earned Value Technique are not considered valid for status exports.

5.1 Errors

The export process first validates the schedule data to ensure it can be transferred to the destination cost system without issues. Below is a listing and explanation of these errors.


6. Export BCR

This utility is responsible for carrying BCR changes from Microsoft Project over to IPM. It accomplishes this by exporting all of the necessary information from each activity that is marked with a BCR number in the 'BCR #' field identified in the settings. The export is created in a comma-separated values text file (.csv) in the same folder location as the Project file, unless you checked the “Use Custom Location for Export Files” option in your IPM Settings profile. This file can then be uploaded into IPM.

Before the utility will allow the creation of the export file for IPM, it will first verify the integrity of the changes being made. The validation process will check for several things, but some checks are given a lower priority than others. These low priority checks will be listed as Warnings, while the urgent checks will be listed as Errors. Please see below to determine the criteria for any errors or warnings that may be received. Note that inactive tasks are not subjected to these logic tests, but they may still be exported if the BCR field values correspond.

6.1 Errors

  1. Task has EVT but no Package defined
    • All exported tasks with an Earned Value Technique must also have a Package assigned.
  2. Invalid Baseline Start
    • The activity's Baseline Start field is not recognized as a date.
  3. Invalid Baseline Finish
    • The activity's Baseline Finish field is not recognized as a date.
  4. Baseline Start must be prior to Baseline Finish
    • The activity's Baseline Start date is listed as being later than its Baseline Finish
  5. Invalid Baseline Duration
    • The activity's Baseline Duration field is not recognized as a number.
  6. Activity with an unknown, invalid EVT
    • An EVT was encountered that does not match those that are accepted by IPM. Any value in the EVT field must conform to one of the following eleven values: 0/100, 25/75, 40/60, 50/50, PP, PC, LOE, MW, MWPC, BE, or AE.
  7. Package ID does not have an EVT assigned
    • This error reports any BCR affected packages that are missing an EVT. If the reported activity is part of a summary package, be sure the summary package has the same BCR number assigned.
  8. Package ID found multiple times with an EVT assigned
    • This error reports any BCR affected packages that have more than one EVT assigned.
  9. Package ID has duplicate Milestone IDs assigned
    • This error reports any BCR affected packages that have duplicated Milestone IDs. Milestone IDs must be unique among Work Packages. Two tasks in the schedule cannot have the same Work Package value and the same Milestone ID value.
  10. Package ID cannot have spaces, commas, or apostrophes
    • This error reports any tasks associated with a Package ID containing any of the listed invalid characters.
  11. Task has a baseline duration without a Package or Exemption defined
    • The activity's Baseline Duration is not equal to 0, it is not a summary, and both the Package ID and Exemption fields are blank.
  12. Closed Task with no Actual Start, Actual Finish, or CAM %C < 100
    • Closed activities must be shown as being complete
  13. Task is assigned a Milestone ID without a Milestone Weight
    • Milestone tasks (those summarized by a parent 'MW' or 'MWPC' EVT) need both a Milestone ID and Milestone Weight value to be properly assessed by IPM.
  14. Task is assigned a Milestone Weight without a Milestone ID
    • Milestone tasks (those summarized by a parent 'MW' or 'MWPC' EVT) need both a Milestone ID and Milestone Weight value to be properly assessed by IPM.
  15. Milestone Weight value cannot exceed 16 digits and 4 decimal places
    • The milestone weight cannot be longer than 16 digits total (including digits after the decimal), and cannot have more than 4 digits after the decimal point.
  16. Activity must have an EVT of 'AE' if Base WBS provided
    • The Base WBS field is used only on Apportioned Effort EVT activities
  17. Activity with 'AE' EVT must have a value in the Base WBS field
    • Apportioned Effort activities gain performance based on the Base WBS they are apportioned to
  18. Activity with 'AE' EVT must have a Base WBS field assigned in the settings
    • Apportioned Effort activities must have a Base WBS assigned, so the setting identifying this field must be set
  19. Base WBS on 'AE' EVTs cannot be itself
    • The Package ID cannot be equal to the Base WBS for a task with an 'AE' EVT
  20. Task cannot have both an EVT and Milestone ID/Weight
  21. Detail Package ID must match its summary Package ID
    • The activity is part of the detail for a summary task tagged with the BCR number, the summary task has an EVT, and the detail task has no Package ID or a Package ID that does not match its summary's.
  22. Detail Control Account must match its summary Control Account
    • The activity is part of the detail for a summary task tagged with the BCR number, the summary has an EVT, and the detail activity has either no Control Account or a Control Account that does not match its summary's.
  23. Detail BCR # must match its summary BCR #
    • The activity is part of the detail for a summary task tagged with the BCR number, the summary has an EVT, and the detail activity has either no BCR # or a BCR # that does not match its summary's.
  24. Detail activities of a milestone summary cannot be milestones
    • The activity is a detail activity of a summary within a summary. The first summary level has an EVT of 'MW' or 'MWPC'. The summary within that summary is listed as a milestone. This activity is part of the detail for the second level summary, and it is also defined as a milestone with an ID and Weight provided.
  25. Detail tasks of a summary with a BCR # cannot be inactive.
    • The activity is a detail activity within a summary that is assigned a BCR #. All detail tasks of summary must be active.
  26. Milestone not summarized by a task with EVT of MW or MWPC
    • This is a detail task with a Milestone ID or Weight value, but whose summary does not have an EVT value of 'MW' or 'MWPC'
  27. Weighted EVT Package has no milestones defined
    • The activity is a summary with an EVT of 'MW' or 'MWPC', and it has no detail activities defined as milestones.
  28. Summary's Baseline Start date must align with its detail activities.
    • Any exported summaries must have their Baseline Start date align with the earliest Baseline Start date of its detail. The summary cannot be baselined to Start earlier than the tasks it summarizes.
  29. Summary's Baseline Finish date must align with its detail activities.
    • Any exported summaries must have their Baseline Finish date align with the latest Baseline Finish date of its detail. The summary cannot be baselined to Finish later than the tasks it summarizes.
  30. MW and MWPC EVTs must be summaries
    • These earned value techniques require earned value milestones to be identified within the schedule. This is done by using a summary activity as the work package and sub-activities as the milestones. If milestones are not requested or required within the schedule, the EVT needs to be reevaluated,
  31. Activity does not have a Control Account assigned
    • Every activity identified as part of the BCR # to export needs to have a Control Account value populated. Check the IPM Settings to ensure the Control Account field is correctly established.
  32. EVT cannot be identified at both the summary and detail level
    • This error reports any task that is assigned an EVT while already summarized by a parent task with an EVT. The error reports both the summary and detail tasks associated with the issue.

6.2 Warnings

  1. Activity name is duplicated within this BCR #
    • Activity has an EVT provided, and its Task Name is not unique among the other activities tagged with the same BCR #. This seems like it could be indicative of a problem.
  2. Milestone ID does not equal activity UID
    • This is a common convention that we recommend users follow, but it is not required.

7. Export IPMDAR

This utility provides a system to export schedule data into a valid IPMDAR deliverable known as the IPMDAR Schedule Performance Dataset. This is accomplished by inputting Contractor Information and using custom fields within the Project to provide the information required by the dataset. The combination of inputs and Project field mappings is called a Settings Profile in the tool. Once the first profile is established, the tool can automatically export schedule data into the strictly formatted JSON text files, which are then zipped into a final deliverable file.

7.1 Getting Started

Before beginning, gather the required data and ensure the schedule is updated to provide all the applicable information that's requested by the IPMDAR.

7.1.1 Prerequisite Data

  1. Contract/Contractor Information. This includes identifying information about the contract, the contract's security level, program, and point of contact for this report. See the 'Contractor Info' tab of the Settings form for a complete list.
  2. Associated Task Data. The schedule will need to use custom task fields to identify the Task Subtype, Planning Level, and other data such as the corresponding Control Account, Earned Value Technique, Work Package ID, etc. See the 'Core Field Mappings' tab of the Settings form for a complete list.
  3. Any other custom Project/Task information that could be useful. Additional information, although not specifically requested, may be provided through the Custom Project Fields and Custom Task Fields tabs of the Settings form. This is up to the user's discretion to decide what other data in the schedule could supplement the submission.
  4. The schedule must meet the following criteria for the tool to run:
    1. Must not have subprojects
    2. Must have a valid Status Date
    3. Must have a Project Start Date
    4. Must have a Project Finish Date
  5. Also, note that Inactive tasks are automatically excluded from the export. However, the tool reports active task logic as it is shown in MS Project. If active tasks are logically linked to inactive tasks, these links should be removed before exporting to avoid mentioning logic links to nonexistent tasks.

7.1.2 Settings

To get started, launch the tool from the ribbon button. Next, click on Tools → Settings to open the IPMDAR Settings window.

7.2 Running the Tool

Once a Settings Profile has been created, the export is ready to run. Simply input a valid Reporting Period End date, choose the duration unit of measure (“Days” or “Hours”), and click “Run Export”. The tool will gather the schedule data, export it to the corresponding JSON files, and then zip (compress) those files into a deliverable result. The exported files will always be saved in the same location as the schedule, unless the “Use Custom Location for Export Files” setting is checked in the IPM Settings profile.

7.3 Solving Issues

If data omissions or logical errors are found, they will be presented in a display grid after the tool is finished analyzing the schedule. Four columns of information about the issues are provided: Count, Issue Severity, Export File, and Issue Description. Note that the “Copy to Clipboard” button will copy the issue grid to the clipboard, allowing the data to be pasted into other applications such as Excel.

The errors must be resolved for the tool to export a result successfully. Please see below for a list of the possible errors and their resolutions.

7.3.1 Errors

7.3.2 Warnings


8. MilestonesPro to PNG

This utility provides the capability to convert images created in the software Milestones Professional from their default file format to the .png image format. This allows the files to be uploaded into IPM while retaining the image resolution.

Begin by using the Browse button next to the “Milestones Pro File Location” setting to select the folder containing the Milestones Professional files. Use the Search button to find all the Milestones Pro files available. If the “Search SubDirectories” checkbox is checked, the process finds all Milestones Professional files in every location within the initially selected folder. Click the “Stop” button to cancel the search.

Once the list displays the found Milestones Professional files, select the ones to export using the “Select” column. The “Select All” check box will deselect/select all files in the list.

Now, use the Browse button at the bottom of the form to select your export location. With the appropriate files still selected, use the Export Selected File(s) button to export them.


9. Import Baseline EV Data

This process uses a Microsoft Excel file exported from IPM to update your Microsoft Project file with earned value data.

The information being imported to your Project file represents all the EV data that was identified during the IPM baseline process. Work Package ID, Milestone ID, Milestone Weight, EVT, and schedule Exemption information is updated to the schedule to ensure a solid linking connection to the cost data.

NOTE: It is very important that this process is executed if schedule changes are to be uploaded to IPM, overwriting the schedule that is already there. Avoiding this step can cause EV information identified in IPM to be lost.


10. Export Calendars

Clicking on this utility exports your Microsoft Project file's calendar to a “*.CSV” text file that is saved in the same location as the Project file, unless you checked the “Use Custom Location for Export Files” setting in your IPM Settings profile. This text file is then uploaded into IPM to report the non-working days for the schedule.


11. Other Utility Settings

This form is responsible for storing the settings for all of the Other Utilities. These are the general-purpose tools not directly related to IPM.

Multiple settings profiles can be managed using the File options: Create, Save, Rename, and Delete. These profiles are stored on your device, independent of the Microsoft Project file.

The dropdown options should be populated with corresponding custom Project fields. These custom fields are used during the Inspect Schedule Status checks.


12. Inspect Schedule

This utility contains a series of schedule health checks broken into three categories: DCMA 14-point, DECM, and IPM. The IPM checks are designed to OPDEC's IPM software and its custom requirements, while the 14-point and DECM checks conform to DCMA's requirements.

Note: Inactive tasks may be flagged as issues if using the Standard edition of Microsoft Project. The 'Active' field is only available in Project Professional, so the tool cannot distinguish between active/inactive tasks while using Project Standard.


12.1 DCMA 14-Point Checks

For convenience, we will refer to two task groups in the documentation. These are Incomplete Tasks and Total Tasks. Some checks deviate from these conventions, and these exceptions will be noted.

Incomplete Tasks: All tasks except those with the attributes below.

Total Tasks: All tasks except those with the attributes below.

Also, note that a result of “NaN” indicates that the denominator of the percentage is equal to 0, and therefore no tasks in the schedule met the criteria defined by one of the two groups above.

Check Details

  1. Missing Logic
    • Description: Identifies incomplete tasks with either no predecessors or no successors.
    • Percentage: Missing logic incomplete tasks divided by total incomplete tasks.
    • Goal: Less than or equal to 5%.
  2. Leads
    • Description: Identifies task logic links with leads (negative lag) on incomplete tasks. Negative time is not demonstrable and should not be encouraged.
    • Percentage: Lead links divided by total number of links within incomplete tasks.
    • Goal: Zero.
  3. Lags
    • Description: Identifies task logic links with lags on incomplete tasks.
    • Percentage: Lag links divided by total number of links within incomplete tasks.
    • Goal: Less than or equal to 5%.
  4. FS Relationship Types
    • Description: Identifies the number of links using the Finish-To-Start relationship on incomplete tasks. These should make up most of links in the schedule.
    • Percentage: FS links divided by the total number of links found within incomplete tasks.
    • Goal: Greater than or equal to 90% of links.
  5. Hard Constraints
    • Description: Identifies incomplete tasks with hard constraint types: Must Finish On, Must Start On, Start No Later Than, or Finish No Later Than.
    • Percentage: Incomplete tasks with hard constraints divided by total incomplete tasks.
    • Goal: Less than or equal to 5%.
  6. High Float
    • Description: Identifies incomplete tasks with a Total Slack value greater than 44 days.
    • Percentage: Incomplete tasks with high float divided by incomplete tasks.
    • Goal: Less than or equal to 5% of incomplete tasks.
  7. Negative Float
    • Description: Identifies incomplete tasks with a negative value for Total Slack.
    • Percentage: Tasks with negative float divided by incomplete tasks.
    • Goal: Zero.
  8. High Duration
    • Description: Identifies incomplete tasks within the planning period that have a Baseline Duration > 44 days.
      • The planning period is defined as 60 working days after the schedule's status date; only tasks with a Baseline Start within this period are considered.
      • This check will ignore planning packages (both summaries and their detail tasks).
    • Percentage: High duration, incomplete, not planning package tasks divided by incomplete, not planning package tasks within the planning period.
    • Goal: Less than or equal to 5%.
  9. Invalid Dates
    • Description: Identifies tasks with a Forecast Start/Finish prior to the Status Date, and tasks with an Actual Start/Finish after the Status Date.
    • Percentage: Invalid date tasks divided by total tasks.
    • Goal: Zero.
  10. Missing Resources
    • Description: This check is not applicable. IPM does not allow resources in the schedule.
    • Percentage: NA
    • Goal: NA
  11. Missed Tasks
    • Description: Identifies tasks that were supposed to finish according to their baseline but have not. These tasks have a Baseline Finish less than the Status Date and either a Finish greater than the Baseline Finish or the Actual Finish equals 'NA'.
    • Percentage: Missed tasks divided by total tasks with a Baseline Finish date less than or equal to the Status Date.
    • Goal: Less than or equal to 5%.
  12. Critical Path Test
    • Description: The goal is to test the integrity of the schedule's network logic, particularly its critical path, using the steps detailed below. Otherwise, the steps below are performed.
      • If any negative slack is found in the schedule, the test immediately fails with a notification.
      • Note: The Project Option “Calculate multiple critical paths” must be disabled (unchecked) for this check to work properly. To do this, navigate to File → Options → Advanced and uncheck this option at the bottom of the window.
        1. The major events are released. This means removing any constraints or deadlines on all tasks identified as a major event in your settings.
        2. Gather the current Project Finish date
        3. Calculate what adding 600 days to the Project Finish date will be (according to the default schedule calendar)
        4. Filter the schedule for tasks with Total Slack equal to 0, an Actual Finish equal to NA, and a Summary field value of No.
        5. Find the task within the filter criteria that has the earliest Start date.
        6. Increase this task's duration by 600 days.
        7. Check to see if the Project Finish date is equal to what we gathered in Step #2.
          • If it is not, this indicates a problem in the network logic. The entire schedule (without constraints/deadlines) should shift forward when we increase the duration of our incomplete task.
        8. The process restores all major event constraints/deadlines and resets the duration of our targeted task to its initial value.
    • Percentage: The utility will display a Pass or Fail result.
    • Goal: NA
  13. Critical Path Length Index
    • Description: The CPLI is a measure of the efficiency required to complete a milestone on time. The completion task is targeted automatically by the utility. The calculation steps are listed below.
      1. Filter the schedule for all major events (identified in your settings) that meet the following criteria: EVT is not equal to 'LOE', Actual Finish is equal to NA, and Baseline Finish is greater than the Status Date.
      2. Find the major event among the filtered list with the earliest Forecast Finish. This is our completion task.
      3. Release the major events. This removes any constraints or deadlines associated with major event tasks.
      4. Find the Critical Path Length (CPL). This is the number of working days between the Status Date and the unconstrained completion task's Finish date.
      5. Constrain the completion task to its Baseline Finish date with a Finish No Later Than type.
      6. Find the completion task's Total Float (TF).
      7. Restore the major events' constraints and deadlines.
    • Percentage: (CPL + TF) / CPL. This metric is left as a ratio instead of a true percentage.
    • Goal: Greater than or equal to 0.95
  14. Baseline Execution Index
    • Description: The BEI is a calculation of the efficiency of task accomplishment measuring against the baseline tasks. Listed below are the calculation steps followed:
      1. Filter out inactive tasks, summaries, LOE tasks, and milestones.
      2. Filter the resulting tasks down to those with a Baseline Finish less than the first day of the Status Date's month.
      3. Count and label as Baseline Count
      4. Clear filters
      5. Filter out inactive tasks, summaries, LOE tasks, and milestones.
      6. Filter for tasks with an Actual Finish less than the first day of the Status Date's month.
      7. Count and label as Actual Count
      8. Divide the Actual Count by the Baseline Count. This is the BEI.

The BEI is always shown along with the Hit Task Percentage (HTP). The HTP is displayed in the Exempt column of the utility for this check. The calculation steps for the HTP are listed below.

  1. Filter out inactive tasks, summaries, LOE tasks, and milestones.
  2. Filter for tasks within this subset having a Baseline Finish less than or equal to the last day of the Status Date's month.
  3. Count and label these as the Baseline Count
  4. Add an extra criterion to the existing filter, and filter for tasks having an Actual Finish less than or equal to their Baseline Finish.
  5. Count and label these as the Actual Count
  6. The HTP is the Actual Count divided by the Baseline Count.

12.2 DECM Checks

The DECM checks in this tool are compatible with DECM version 6.0. The DECM (DCMA EVMS Compliance Metrics) include most of the Artifact 11 checks (categorized as requiring only the IMS) items with a few exceptions. Excluded checks are the ones requiring unavailable EV Percent Complete or BCWP values (“06A505a”, “06A505b”, and “10A302b”), “06A211a” which requires external contractor information, and “06A301a” which requires external supplemental schedules and MRP/ERP system data.

For convenience, when referencing “incomplete tasks” in the descriptions below, we are referring to tasks that meet the following criteria:

Also, note that a result of “NaN” indicates that the denominator of the percentage is equal to 0, and therefore no tasks in the schedule met the overarching criteria of the check.

  1. (06A204b) Dangling Starts or Finishes
    • Description: Identifies dangling tasks either without Predecessors, without Successors, with an Open Start, or with an Open Finish.
      • Open Start tasks have no FS or SS relationship with any of its predecessors.
      • Open Finish tasks have no FS or FF relationship to any of its successors.
      • This check will not flag tasks that are LOE, finished, un-baselined (missing Baseline Start/Finish), and the beginning/ending tasks of the schedule (identified as those with earliest Baseline Start or latest Baseline Finish).
      • Additionally, milestones, defined as tasks with zero duration, are only flagged if they do not have predecessors or successors.
      • The EVT field (identified in your Other Utility Settings) is used to determine what tasks are LOE.
    • Percentage: Dangling tasks divided by incomplete, non-LOE tasks
    • Goal: Zero.
  2. (06A205a) Use of Lags
    • Description: Identifies tasks with logic links that include lag.
    • Percentage: Lag tasks divided by incomplete tasks.
    • Goal: Less than or equal to 10%.
  3. (06A208a) Summary with Logic
    • Description: Identifies summary tasks that have either predecessors or successors.
    • Percentage: Not applicable. This check only returns the count of issues found.
    • Goal: Zero.
  4. (06A209a) Use of Hard Constraints
    • Description: Identifies incomplete tasks that utilize one of the following constraint types: Start No Later Than, Finish No Later Than, Must Start On, or Must Finish On.
    • Percentage: Incomplete tasks with hard constraints divided by incomplete tasks.
    • Goal: Zero.
  5. (06A210a) LOE Tasks with Non-LOE Successor
    • Description: Identifies any LOE tasks (including summaries) with a non-LOE successor. We define non-LOE as any task without a value of 'LOE' in the EVT field (including blanks). The EVT field is identified in the Other Utility Settings. See the EVT entry in the Glossary section of this documentation for a list of acceptable values.
    • Percentage: LOE tasks with non-LOE successors divided by total number of LOE tasks.
    • Goal: Zero.
    • Note: While LOE activities that have an end-of-project milestone as a successor are acceptable, the process does not automatically assume what the end-of-project milestone(s) are. For this reason, it may be necessary to validate/confirm issues reported as false-positives.
  6. (06A212a) Out of Sequence
    • Description: Identifies tasks that are out of sequence. Here are some noteworthy details of the check criteria:
      1. Time of day is considered when comparing dates.
      2. Leads and lags are also considered when comparing dates.
      3. Summary tasks and inactive tasks are avoided.
    • Percentage: Not applicable. This check only returns the count of issues found.
    • Goal: Zero
  7. (06A501a) Missing Baseline Start or Finish Dates
    • Description: Identifies tasks that do not have a Baseline Start or a Baseline Finish.
    • Percentage: Missing baseline date tasks divided by total tasks.
    • Goal: Less than or equal to 5%.
  8. (06A504a) Prior Month Actual Start Change
    • Description: Identifies tasks who’s Actual Start date has changed from the previous month's IMS to the current month's IMS. The user must provide the file location of the previous IMS they would like to check their current file against. Ignores only summary tasks and inactive tasks.
    • Percentage: Tasks with an Actual Start date change divided by the total number of tasks in the previous IMS with an Actual Start date.
    • Goal: Less than or equal to 10%.
  9. (06A504b) Prior Month Actual Finish Change
    • Description: Identifies tasks whose Actual Finish date has changed from the previous month's IMS to the current month's IMS. The user must provide the file location of the previous IMS they would like to check their current file against. Ignores only summary tasks and inactive tasks.
    • Percentage: Tasks with an Actual Finish date change divided by the total number of tasks in the previous IMS with an Actual Finish date.
    • Goal: Less than or equal to 10%.
  10. (06A506a) Invalid Actual Start and Finish
    • Description: Identifies tasks with an Actual Start or Actual Finish greater than the status date.
    • Percentage: Number of invalid AS/AF tasks divided by total tasks with an Actual Start date.
    • Goal: Less than or equal to 5%.
  11. (06A506b) Invalid Forecast Start and Finish
    • Description: Identifies tasks with a Forecast Start date less than the Status Date without an Actual Start, and tasks with a Forecast Finish date less than the Status Date without an Actual Finish.
    • Percentage: Invalid Start/Finish tasks divided by incomplete tasks.
    • Goal: Zero.
  12. (06A506c) Forecast Dates Riding the Status Date
    • Description: Compares the prior month's IMS to the current month and identifies tasks that move in constant proportion to the status date. The calculation steps are below.
      1. Identify all tasks, excluding summaries, in the current schedule with no Actual Start date and a Forecast Start date within three days after the Status Date.
        1. For each of these tasks, check their Forecast Start date in the Prior Month schedule. Count all tasks within three days of the prior schedule's Status Date.
      2. Identify all tasks, excluding summaries and inactive tasks, in the current schedule with an Actual Start date and without an Actual Finish date.
      3. Identify all tasks, excluding summaries and inactive tasks, in the prior month schedule with Actual Start dates.
      4. Check for any matching tasks between these two sets. For those that do, if their Remaining Duration is +/- 2 working days then these are flagged and counted as well.
      5. The issue count will be a unique combination of both sets of identified tasks.
    • Percentage: All flagged tasks divided by incomplete tasks.
    • Goal: Less than or equal to 1%.
  13. (10A303a) Do all PPs have Duration?
    • Description: Identifies planning package tasks with a Baseline Duration less than or equal to one day. Planning packages are required to have a value of 'PP' in their EVT field (defined in your settings).
    • Percentage: PP tasks with a Baseline Duration less than or equal to one day divided by total PP tasks.
    • Goal: Less than or equal to 10%.

12.3 OPDEC Checks

  1. Out of Sequence Tasks
    • This check is very similar to the DECM version. The only difference between the IPM and DECM versions is that the IPM version will look at all completed tasks.
  2. Tasks Needing Status
    • This check identifies tasks that require an updated status.
    • Other Criteria: The task is not a summary, has a Start/Finish prior to the status date, and does not have valid actual start/finish.
  3. Invalid CAM % Complete
    • This check identifies any tasks whose CAM percent complete field is not in alignment with its actual start/finish.
  4. Invalid Baseline Data
    • This checks for problematic data with Baseline fields: Baseline Start, Baseline Finish, and Baseline Duration. Since MS Project will accept ANY values as baseline start/finish/duration, this check not only ensures the finish date is after the start but also confirms that only date/number values are given (no symbols, question marks, blanks, etc.).
  5. Baseline Summary Alignment
    • This check identifies summary tasks whose detail tasks have either an earlier Baseline Start date or a later Baseline Finish date. The summaries themselves are flagged as issues.
  6. Split Tasks
    • This check identifies split tasks. These are tasks with an intermittent schedule; they stop/start work one or several times in their duration. Split tasks may cause problems when assigning Actual Start/Finish dates and can negatively affect schedule health.
  7. Effort Driven
    • This check identifies any task marked as Effort Driven.
    • Other Criteria: The task is effort driven.
  8. Unknown EVT
    • This check identifies any values in the EVT field that are not accepted by IPM. Any value in the EVT field must conform to one of the following eleven values: 0/100, 25/75, 40/60, 50/50, PP, PC, LOE, MW, MWPC, BE, or AE.
  9. Constraint on Completed Tasks
    • This check identifies any completed tasks that have a constraint applied.
    • Other Criteria: The task is not complete, has a constraint date, and is not a summary.
  10. Constraint on Summary Tasks
    • This check identifies any summary tasks that have a constraint applied.
  11. Consecutive Constraints
    • This check identifies any tasks with constraints (Constraint Type is not “As Soon As Possible”) whose successors also have constraints.
  12. SNET within 1WK of Pred Finish
    • This check identifies tasks with Start No Earlier Than constraint dates that are within 5 working days of its predecessor's finish date. These constraints can be unnecessarily causing gaps in the schedule, but they are not always a problem.
  13. SNET Not Pushing
    • This check identifies tasks with a “Start No Earlier Than” constraint whose predecessors are pushing the Start date of the task past the constraint date. These constraints do not affect the schedule.
  14. ? Durations
    • This check identifies any tasks with a question mark in its duration.
  15. Non-Fixed Duration Types
    • This check identifies any tasks that do not have a fixed duration type.
  16. Elapsed Durations
    • This check identifies any tasks that have an elapsed duration (an “e” in the duration field)
    • Other Criteria: The task has not finished.
  17. Non-Day Duration Types
    • This check identifies any tasks that have a duration specified in a different unit of measure other than days.
    • Other Criteria: The task is not a summary, does not use days as a unit of measure, and is not finished.
  18. Fractional Durations
    • This check identifies any tasks with a duration that is not a whole number.
    • Other Criteria: The task is not a summary, has not finished, and has a duration that is not a whole number.
  19. Resources Assigned in Project
    • This check identifies any tasks that have been assigned resources.
    • Other Criteria: The task contains entries for the Resource Names field.
  20. Inactive Tasks
    • This check identifies any tasks with a value of No in the Active field of Project. Note: This check only applies for Microsoft Project versions 2010 or later
  21. Manually Scheduled Tasks
    • This check identifies any tasks that have been set as manually scheduled instead of automatically scheduled. Note: This check only applies for Microsoft Project versions 2010 or later
  22. Multiple Calendars
    • This check identifies any tasks that are using a calendar that is different from the default calendar as set in Project Information.
  23. Inconsistent %C Progress
    • This check identifies tasks with a MS Project calculated '% Complete' value that does not match the manually calculated, expected value. The manual calculation is as follows: (Time between Actual Start and Status Date / Duration) * 100.
  24. Planning Package with Actual Start
    • This check identifies tasks in the schedule with an EVT of 'PP' and an Actual Start date. Note: This check ignores any tasks with 'CLOSED -' in their task name.
  25. Empty Tasks
    • This check finds all blank task lines in your schedule or 'empty tasks'. These lines are created when pressing the INSERT on the keyboard and no subsequent edits are made to the record. Since these tasks visually appear in the schedule but cannot be filtered on, clicking this check result displays its own error reporting grid that provides the Empty Task IDs, allowing for quick searches. These records can be copied to the clipboard using the button on the error grid display.
  26. Duplicate Task Names
    • This check identifies tasks whose Name value appears more than once in the schedule. All instances of the duplication are flagged as issues. For example, if five tasks all have the same name, the Issue Count of this check will be five.
  27. Multi-Level EVTs Assigned
    • This check identifies any task in your schedule that is assigned an EVT while it is summarized by a parent task that is also assigned an EVT. This check searches through all summary levels in the schedule outline, and reports both the summary and detail tasks associated with the issue.

This utility provides the capability to step through each task of predecessor to successor relationship, viewing detailed information about each task along the way.

Upon opening the utility, the currently selected task is displayed in the middle section of the screen. Its predecessors are shown above, and its successors are shown below. Navigate through a relationship by selecting the Predecessor/Successor Task Name link or double clicking anywhere in the row to load the selected task as the current task. Also, a task can be selected in Project to load it as the current task. Selecting the left arrow will navigate back to the previously selected task, while the right arrow will move the selection to back to the most recent position. A task can also be focused by entering the task ID or UID in the boxes at the top of the form and pressing the ENTER key.

All duration fields displayed are converted to day measurement units (as defined by the Hours Per Day setting in Project). Most fields shown in the Navigate Tasks window are self-explanatory; however, there are two that may require further elaboration: Gap and OoS.

The Gap field displays the duration between the relationship end of a predecessor and relationship start of its successor. The Out of Sequence (OoS) field will be filled with a red flag icon if the task's status is illogical. The criteria of the Out of Sequence check can be changed on the Settings form. The “Compare Actual dates on Out of Sequence checks” option toggles whether the OoS and Gap columns will make date comparisons between the Actual Starts/Finishes provided to ensure they are in sequence, or just accept any Actual Start/Finish provided to a predecessor/successor. The result is more precise with the option checked.


14. Milestone Set/Release

This utility consists of two tabs: Set Milestones and Release Milestones.

The Milestone Field setting indicates which field is set to identify the milestone tasks. This should be an empty text field that only has values (the value itself can be anything) entered for milestone tasks. This process does not use any settings from the Settings form.

Set Milestones
After selecting a constraint date and constraint type, click the Set Milestones button to apply those constraints to all milestone tasks.

Release Milestones
Simply click the Release Milestones button on this tab to set the constraint type of the identified milestone tasks back to 'As Soon As Possible'.


15. Find UID

Clicking the Find UID button or using the keyboard shortcut (Ctrl+Shift+F) will launch the Find UID utility. This utility will select the task UID provided, and scroll the focus of Project to the task.




16. Initialize Project

Clicking this utility simply applies the “All Tasks” filter to your Project file, opens all outline levels, and scrolls the file's focus to the first task.


17. Help

The Help button will launch this website in your default web browser. For any additional help, please email support@opdec.com


18. About

The About button will display basic information about your version of the installation as well as contact information for questions about the utilities.


19. Check for Update

The Download Update button will display a form that compares your installed version of the IPM Utilities to the version that is currently available for download. If there is a more recent version of the IPM Utilities available, the form will enable the option to download it. If not, the download button will be disabled.

Additionally, the automatic reminders about updates can be enabled/disabled through this form by toggling the check box on or off.


20. Version History