Estimates Versus Actuals

PSA uses Estimates Versus Actuals records (EVAs) to compare estimated scheduled hours against actual hours entered on timecards.

You can automatically generate EVAs for all existing held resource requests that have a schedule and a linked resource. For more information, see Generate EVAs For Held Resource Requests.

Estimates versus actuals comparison records are automatically generated, replaced, or updated for the following events. If you want to stop new EVAs from being generated or stop the recalculation of existing EVAs, select the RecalculateEstVsActuals Disabled field in the Triggers custom setting. For more information, see Trigger Settings.

The EVAs have separate fields that signify estimates and actuals. Therefore, the calculation of estimates and actuals occurs in two separate processes.

Estimates calculation is done in case of any of the following events:

Estimates Calculation Events
Event Further Information
A held resource request is converted into an assignment. The schedule and EVA are deleted for the held resource request and are recreated against the assignment. Assignments and Schedules Overview
A new Estimates Versus Actuals comparison is created for a resource. Creating an Estimates versus Actuals Comparison
A resource request is held. Holding Resources
A schedule exception is created or updated. Schedule Exceptions Overview
A time periodClosed A period of time with a start date and an end date to which forecasts, actuals calculations, billing event batches, utilization calculations and region plans belong. record including weeks, months, quarters, and custom time periods, is spanned by an assignment schedule.
A timecard is updated with Admin Global Edit selected and the changes impact actuals records. Each assignment's estimates versus actuals record is updated. Admin Global Edit
An assignmentClosed Connection between a resource and a project. and a schedule are created or updated. Assignments and Schedules Overview
Action: Refresh Hours From Schedule is checked on an Assignment. Action: Refresh Hours From Schedule

An assignment is created when a resource is assigned from a held resource request. The existing EVA record is deleted and a new one is created. The corresponding values are calculated and populated in the following fields:

The corresponding values are removed from the following fields and replaced with "0" where applicable:

Assigning Resources
The requested or suggested bill rate, resource, or schedule is changed on a held resource request detail record.

An assignment is using a bill rate card, and a dated resource rate that applies to the assignment is:

  • Added to the bill rate card
  • Updated on the bill rate card
  • Deleted from the bill rate card
  • Restored from your org's recycle bin to the bill rate card

In each case, the Scheduled Billable Amount and Scheduled Bill Rate fields update to take account of the change. This recalculation does not happen for EVAs linked to resource requests.

Warning:

You might encounter locking issues if you try to add, update, delete, or restore more than 200 dated resource rates at once.

(Beta) Dated Resource Rates Overview

Actuals calculation process can run either synchronously or asynchronously. For more information, see Estimates Versus Actuals Calculations. Actuals calculation is done in case of any of the following events:

Actuals Calculation Events
Event Further Information
A timecard is updated with Admin Global Edit selected and the changes impact actuals records. Each assignment's estimates versus actuals record is updated. Admin Global Edit
Action: Refresh EVA Hours From Timecards is checked on an Assignment. Assignments and Schedules Overview
Timecards are entered against an assignment. Entering Time Against Projects and Assignments
Timecards are specified by status for inclusion in Estimates Vs. Actuals calculations. For example, saved, submitted, and approved timecards. Timecard Statuses

You can view Estimates versus Actuals comparison records on the Est vs Actuals related list as follows:

Notes:
  • When Disable Automatic Weekly Time Periods is false, weekly EVA records are calculated based on the resource's work calendar. When Disable Automatic Weekly Time Periods is true, weekly EVAs are calculated based on weekly time periods in PSA.
  • When Update Project Manager From Project is true, EVA records are updated to reflect whenever there is a change to the Project Manager field. When Update Project Manager from Project is false, project manager records are not updated on EVAs.
  • Timecard split records have a link to their associated estimates versus actuals record.
  • When swapping the resource on an assignment, the EVAs are updated with the swapped resource.
  • The Assignments and Projects having the Exclude From EVA Calculation checked are not considered for EVA calculation.
  • EVA records with an end date earlier than today are not updated if they have actuals values unless Adjust Past Est on Records with Actuals is true.
  • If your assignments use dated resource rates, see (Beta) EVA Calculations when Dated Resource Rates Apply for examples of how the scheduled and actual values are calculated.

EVAs are deleted when:

  • They fall outside of the expected time period range when a schedule is updated on a related held resource request. For example, an EVA record is created for the month of June. You update the schedule so that the schedule dates do not overlap with June. The EVA created for June is deleted because it is now out of schedule's date range.
  • You delete a related held resource request.
  • A resource request is unheld or assigned (the EVAs are deleted from the resource request and created for the newly created Assignments).
  • Assignment or Schedule of an assignment is deleted.
  • When an assignment is closed or its end date is updated to a date earlier than the latest generated EVA record, the system automatically deletes any EVA records that fall outside the assignment span.

Estimates Versus Actuals Error Handling

If errors occur when the asynchronous process to calculate estimate values fails, an error email is sent to the email address or a group of email addresses specified in the EVA Error Notification Email field in the Async Job Notification Settings custom setting. The email contains a link to the App Logs tab where you can view the error log. You can view asynchronous job process records on the Async Job Records tab.

Notes:

The asynchronous Apex Job ID is stored in an app log's Category field. You can filter the App Logs list view by Category to find all logs associated with a particular run of the asynchronous process.

The error email is sent from the email address specified in the Organization-Wide Email Address field in the FDN Background Processing Settings custom setting. For more information, see Setting an Organization-Wide Email Address.

If an assignment is using dated resource rates but no rate exists for all or part of the assignment's duration, an error is logged when the estimates are calculated. EVAs for time periods containing at least one day without an applicable rate are updated as follows:

  • The Scheduled Billable Amount is set to null
  • The Scheduled Bill Rate is set to the assignment's bill rate, or is left blank if that rate is not available.

For example, if the earliest dated resource rate does not take effect until the second week of an assignment, the Scheduled Billable Amount is calculated for EVAs from the second week onwards. The Scheduled Billable Amount for the week, month, quarter, and year EVAs covering the assignment's first week is set to null.