Calculate WIP projects

Calculates CFO or product manager (PM) forecast values based on the specified requested calculation.

For example, when you request a calculation for cfoForecastContractValue, the service calculates the cfoForecast.costToComplete, cfoForecast.costAtCompletion, and cfoForecast.percentComplete fields based on the cfoContractValue and other actual values such as jobToDateCosts.

The extended forecast fields such as costAtCompletionVariance, contractVarianceAmount, grossProfitPercentOfCost, and earnedProfitToDateAmount, are calculated using only the CFO forecast and the actuals.

Calculate a WIP project

post/services/construction-forecasting/wip-project/calculate

Calculate WIP project fields.

Permissions and other requirements
SubscriptionConstruction
User typeBusiness, Project Manager
PermissionsCalculate WIP Project
SecurityOAuth2
Request
Request Body schema: application/json
required
calculationRequested
string

Requested calculation for a WIP project forecast.

Enum: "cfoForecastContractValue" "cfoForecastCostAtCompletion" "cfoForecastCostToComplete" "cfoForecastPercentComplete" "priorYearsProfit" "projectManagerForecastContractValue" "projectManagerForecastCostAtCompletion" "projectManagerForecastCostToComplete" "projectManagerForecastPercentComplete"
Example: "cfoForecastContractValue"
object

Ongoing projects that provide project manager and CFO forecasts of project costs, profits, and completion percentage, actual costs and earned revenue, and overbilling and underbilling amounts.

key
string

Unique key for the WIP project.

Example: "1"
id
string

Unique identifier for the WIP project.

Example: "1"
isFinalized
boolean
Default: false

A WIP project is finalized when it is ready to be posted to the general ledger.

Enum: false true
Example: false
glPostedDate
string <date>

Date this WIP project was posted to the general ledger.

Example: "2023-05-16"
estimatedCostToDateAmount
string <decimal-precision-2>

The project's estimated costs to-date based on estimate entries in the project's primary estimate.

Example: "10000.00"
jobToDateCosts
string <decimal-precision-2>

The project's actual costs to-date. This amount comes from journal postings to the selected cost accounts.

Example: "1000.00"
estimatedCostToComplete
string <decimal-precision-2>

Estimate of the costs remaining for the project. The amount is calculated as estimatedCostAtCompletion less jobToDateCosts.

Example: "3000.00"
estimatedCostAtCompletion
string <decimal-precision-2>

Estimated cost at completion of the project based on estimate entries in the project's primary estimate. Estimate entries are included if they have a workflow type of original, revision, or approved change.

Example: "3000.00"
pendingEstimatesAmount
string <decimal-precision-2>

Estimated pending amount based on pending estimate entries in the project's primary estimate.

Example: "3000.00"
estimatedPercentComplete
string <percent-precision-2>

Estimated percent complete for the project, calculated as project's jobToDateCosts divided by estimatedCostAtCompletion.

Example: 70.5
object

Project manager's forecast of project costs, profits, and completion percentage.

costToComplete
string <decimal-precision-2>

Project manager forecast cost to complete.

Example: "3000.00"
costAtCompletion
string <decimal-precision-2>

Project manager forecast cost at completion.

Example: "9000.00"
percentComplete
string <percent-precision-2>

Project manager forecast percent complete.

Example: 90
contractValue
string <decimal-precision-2>

Project manager forecast contract value.

Example: "10000.00"
lastUpdatedDate
string <date-time>

The date and time the project manager last updated their forecast.

Example: "2023-05-26T10:06:00Z"
object

CFO forecast of project costs, profits, and completion percentage.

costToComplete
string <decimal-precision-2>

CFO forecast cost to complete.

Example: "4000.00"
costAtCompletion
string <decimal-precision-2>

CFO forecast cost at completion.

Example: "9500.00"
percentComplete
string <percent-precision-2>

CFO forecast percent complete.

Example: 70
contractValue
string <decimal-precision-2>

CFO forecast contract value.

Example: "10000.00"
lastUpdatedDate
string <date-time>

The date and time the CFO last updated their forecast.

Example: "2023-05-26T10:06:00Z"
costAtCompletionVariance
string <decimal-precision-2>

Cost at completion variance (cfoForecast.costAtCompletion less estimatedCostAtCompletion).

Example: "500.00"
totalContractValue
string <decimal-precision-2>

The sum of the price for all project contract lines, including any change request entries linked to the project contract line through a change order.

Example: "10000.00"
contractVarianceAmount
string <decimal-precision-2>

Contract amount variance (cfoForecast.contractValue less totalContractValue).

Example: "1000.00"
jobToDateBillings
string <decimal-precision-2>

Job-to-date billings amount comes from journal postings to the revenue accounts specified in the WIP setup object.

Example: "5000.00"
earnedToDateAmount
string <decimal-precision-2>

Earned-to-date amount (cfoForecast.contractValue multiplied by cfoForecast.percentComplete).

Example: "5000.00"
remainingBacklogAmount
string <decimal-precision-2>

Remaining backlog amount represents the work left for the project as a currency amount (cfoForecast.contractValue less earnedToDateAmount).

Example: "3000.00"
overUnderBillingAmount
string <decimal-precision-2>

The overbilling or underbilling amount is the difference between YTD billed and YTD earned amounts.

Example: "-1000.00"
earnedProfitToDateAmount
string <decimal-precision-2>

Current earned profit to-date (earnedToDateAmount less jobToDateCosts).

Example: "5000.00"
grossProfitPercentOfContract
string <percent-precision-2>

Gross profit percent of contract (cfoForecast.grossProfitAtCompletion divided by cfoForecast.contractValue).

Example: 20
grossProfitPercentOfCost
string <percent-precision-2>

Gross profit percent of cost (cfoForecast.grossProfitAtCompletion divided by cfoForecast.costsAtCompletion).

Example: 30
totalGrossProfitEstimatedAtCompletion
string <decimal-precision-2>

Total gross profit estimated at completion (totalContractValue less estimatedCostAtCompletion).

Example: "3000.00"
cfoForecastGrossProfitAtCompletion
string <decimal-precision-2>

CFO forecast gross profit at completion (cfoForecast.contractValue less cfoForecast.costsAtCompletion).

Example: "3000.00"
grossProfitVarianceAmount
string <decimal-precision-2>

Gross profit variance (cfoForecast.grossProfitAtCompletion less totalGrossProfitEstimatedAtCompletion).

Example: "1000.00"
cfoForecastGrossProfitMarginPercent
string <percent-precision-2>

CFO forecast gross profit margin percent (cfoForecast.grossProfitAtCompletion divided by cfoForecast.contractValue).

Example: 30
priorYearsProfit
string <decimal-precision-2>

Earned to-date profit (earnedToDateAmount less jobToDateCost).

Example: "20000.00"
endOfPriorYearEarnedToDateAmount
string <decimal-precision-2>

Earned to-date amount as of end of prior year (earnedToDateAmount less endOfPriorYearEarnedProfit).

Example: "15000.00"
endOfPriorYearEarnedProfit
string <decimal-precision-2>

Earned profit as of end of prior year. This value comes from the end-of-year WIP schedule from the prior year if one exists. Otherwise, the amount is zero.

Example: "15000.00"
remainingProfit
string <decimal-precision-2>

The amount of the project that remains to be earned (cfoForecast.grossProfitAtCompletion less earnedProfitToDate).

Example: "15000.00"
yearToDateCostAmount
string <decimal-precision-2>

Year-to-date costs.

Example: "15000.00"
yearToDateBillingAmount
string <decimal-precision-2>

Year-to-date billings.

Example: "15000.00"
yearToDateEarnedRevenueAmount
string <decimal-precision-2>

Year-to-date earned revenue.

Example: "15000.00"
jobToDateOverBillingAmount
string <decimal-precision-2>

Job-to-date over billing.

Example: "15000.00"
jobToDateUnderBillingAmount
string <decimal-precision-2>

Job-to-date under billing.

Example: "15000.00"
yearToDateEarnedProfitAmount
string <decimal-precision-2>

Year-to-date earned profit.

Example: "15000.00"
currentPeriodBillingAmount
string <decimal-precision-2>

Current period billings.

Example: "15000.00"
currentPeriodCostAmount
string <decimal-precision-2>

Current period costs.

Example: "15000.00"
currentPeriodEarnedProfitAmount
string <decimal-precision-2>

Current period earned profit.

Example: "15000.00"
currentPeriodEarnedRevenueAmount
string <decimal-precision-2>

Current period earned revenue.

Example: "15000.00"
href
string

URL endpoint for the WIP project.

Example: "/objects/construction-forecasting/wip-project/1"
object

The project this WIP project is based on.

key
string

Key for the project.

Example: "16"
id
string

Identifier for the project.

Example: "SMIT"
name
string

Name for the project.

Example: "Staff Meeting - Interworking Technologies"
href
string

URL endpoint for the project.

Example: "/objects/projects/project/10"
object

The WIP period this WIP project is associated with.

key
string

The key for the WIP period.

Example: "123"
id
string

Unique identifier for the WIP period.

Example: "123"
periodName
string

The name for the WIP period, sourced from GL reporting period name.

Example: "Month end May 2023"
href
string

URL endpoint for the WIP period.

Example: "/objects/construction-forecasting/wip-period/123"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "calculationRequested": "projectManagerForecastPercentComplete",
  • "wipProject": {
    • "key": "8",
    • "project": {
      • "key": "3"
      },
    • "isFinalized": false,
    • "jobToDateCosts": "1134076.65",
    • "jobToDateBillings": "0",
    • "earnedToDateAmount": "0",
    • "overUnderBillingAmount": "0",
    • "cfoForecastGrossProfitAtCompletion": "0",
    • "totalContractValue": "1270800",
    • "estimatedCostToDateAmount": "1081591.99",
    • "estimatedCostAtCompletion": "1081591.99",
    • "pendingEstimatesAmount": "0",
    • "totalGrossProfitEstimatedAtCompletion": "189208.01",
    • "estimatedPercentComplete": 104.85,
    • "estimatedCostToComplete": "-52484.66",
    • "contractVarianceAmount": "0",
    • "remainingBacklogAmount": "0",
    • "earnedProfitToDateAmount": "0",
    • "grossProfitVarianceAmount": "0",
    • "remainingProfit": "0",
    • "endOfPriorYearEarnedToDateAmount": "0",
    • "endOfPriorYearEarnedProfit": "0",
    • "currentPeriodBilledToDateAmount": "0",
    • "currentPeriodOverBillingAmount": "0",
    • "currentPeriodUnderBillingAmount": "0",
    • "projectManagerForecast": {
      • "costToComplete": "-52484.66",
      • "costAtCompletion": "1081591.99",
      • "percentComplete": 99,
      • "contractValue": "1270800"
      },
    • "cfoForecast": {
      • "costToComplete": "0",
      • "costAtCompletion": "0",
      • "percentComplete": 0,
      • "contractValue": "0"
      }
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "warnings": [
      • {
        },
      • {
        },
      • {
        }
      ],
    • "wipProject": {
      • "project": {
        },
      • "projectManagerForecast": {
        },
      • "cfoForecast": {
        },
      • "remainingProfit": "0.00",
      • "totalContractValue": "1270800.00",
      • "endOfPriorYearEarnedToDateAmount": "0.00",
      • "earnedProfitToDateAmount": "0.00",
      • "cfoForecastGrossProfitAtCompletion": "0.00",
      • "estimatedCostToComplete": "-52484.66",
      • "overUnderBillingAmount": "0.00",
      • "grossProfitVarianceAmount": "0.00",
      • "estimatedPercentComplete": 104.85,
      • "jobToDateCosts": "1134076.65",
      • "endOfPriorYearEarnedProfit": "0.00",
      • "remainingBacklogAmount": "0.00",
      • "id": "8",
      • "currentPeriodBilledToDateAmount": "0.00",
      • "estimatedCostToDateAmount": "1081591.99",
      • "contractVarianceAmount": "0.00",
      • "key": "8",
      • "currentPeriodUnderBillingAmount": "0.00",
      • "totalGrossProfitEstimatedAtCompletion": "189208.01",
      • "jobToDateBillings": "0.00",
      • "earnedToDateAmount": "0.00",
      • "currentPeriodOverBillingAmount": "0.00",
      • "estimatedCostAtCompletion": "1081591.99",
      • "pendingEstimatesAmount": "0.00"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}