Project Estimates
A project estimate lets you compare estimated costs for a project against the actual amounts posted.
A project estimate is composed of one or more project estimate entries, which are amounts that can be tied to cost types (categories in the work breakdown structure), tasks, items, or other aspects of your project. Each entry can have a workflow type of original
, revision
, forecast
, pending change
, approved change
, or other
.
Your project estimate can post entries to an existing GL budget that was configured for that project in the Sage Intacct UI. An optional project estimate type lets you designate a subset of workflow types for posting to the GL budget.
You can create multiple project estimates for a given project/GL budget pairing. However, only one project estimate, known as the primary estimate, can post to the GL budget.
You can create individual entries at the same time you create the project estimate, or you can add entries to an existing estimate using one of the following approaches:
- Update the original estimate and provide new entries.
- Create new entries independently and specify the ID of the owning estimate.
Note: As the project progresses, you can create change requests that update project estimate entries.
Project Estimates
Get Project Estimate Object Definition
lookup
List all the fields and relationships for the project estimate object:
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
Query and List Project Estimates
query
List the record number and project estimate ID for each project estimate:
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
filter | Optional | object | Filter expression to limit the response to only objects that match the expression. Check the value of a single field using operators such as equalto/like, or multiple fields using and/or. Query fields on related objects using the dot operator (for example, VENDOR.CREDITLIMIT on APBILL). |
select | Required | sequence | The names of the fields that you want included in the response, and an optional aggregate function such as count or sum . Returning all fields is not supported. |
orderby | Optional | object | Provide an order element with a field name and choose an ascending or descending sort order, for example: <order> |
options | Optional | object | Query options:
|
pagesize | Optional | integer | Maximum number of matching objects to return in the response, between 1 and 2000 items (Default: 100 ) |
offset | Optional | integer | Point at which to start indexing into records (Default: 0 ) |
Query and List Project Estimates (Legacy)
readByQuery
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
fields | Optional | string | Comma-separated list of fields on the object to list. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value. |
query | Required | string | SQL-like query based on fields on the object. The following operators are supported: < , > , >= , <= , = , like , not like , in , not in , IS NOT NULL , IS NULL , AND , OR . Illegal XML characters must be properly encoded, and single quotes must be escaped with backslashes ('Jane\'s Deli' ). Joins are not supported. |
pagesize | Optional | integer | Custom page size between 1 and 1000 items (Default: 100 ) |
Get Project Estimate
read
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
keys | Required | string | Comma-separated list of RECORDNO of the project estimate to get |
fields | Optional | string | Comma-separated list of fields on the object to get. To return all fields, omit the element or provide * for the value.For best performance and predictability, limit the number of fields. |
returnFormat | Optional | string | Data format for the response body:
|
Get Project Estimate by ID
readByName
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
keys | Required | string | Comma-separated list of PJESTIMATEID of the project estimate to get |
fields | Optional | string | Comma-separated list of fields on the object to get. To return all fields, omit the element or provide * for the value.For best performance and predictability, limit the number of fields. |
returnFormat | Optional | string | Data format for the response body:
|
Create Project Estimate
Release | Changes |
---|---|
2021 Release 1 | Added PRODUCTIONUNITS |
2020 Release 4 | Added ESTIMATEDATE, EFFECTIVEDATE, added new values for POSTTO |
create
Parameters
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATE |
Required | object | Type of object to create. |
PJESTIMATE
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATEID | Optional | string | Unique ID for the project estimate. Required if company does not use document sequencing, or you can provide a value to use instead of the document sequence value. |
DESCRIPTION | Optional | string | Description of the project estimate. |
ISPRIMARY | Optional | boolean | Specifies whether this is the primary estimate for the project. Use true for primary, false otherwise. A project can have zero or one primary estimates and multiple non-primary estimates. The first estimate for a project is automatically set as primary when it is created. To set another estimate as primary, update the first estimate to set ISPRIMARY to false and then update the desired estimate to set it to true . (Default: true for the first estimate created for a project, false otherwise) |
POSTED | Optional | boolean | Specifies whether the estimate posts entries to the GL budget. Use true to post to the entries. You can “unpost” an estimate by updating it and setting POSTED to false .(Default: false ) |
PJESTIMATETYPENAME | Optional | string | Name of a project estimate type that defines a subset of workflow types. This subset specifies which entries post to the GL budget (if POSTED is true ), and can be used for reporting purposes. When this parameter is not supplied, all workflow types post to the GL budget. If the given project estimate type doesn’t include workflow types, no entries post to the GL budget. |
GLBUDGETID | Optional | string | ID of the existing GL budget to use. The budget must be configured for a project estimate in the Sage Intacct UI. |
ESTIMATEDATE | Optional | string | Date of the project estimate, which must be in a budgetable period. Required if POSTTO is set to Estimate date and POSTED is true . The meaning of this date can vary according to the customer’s workflow. It can be the date the estimate was created, the date the estimate was presented as a quote, or the date of the forecast. Specified in the format mm/dd/yyyy . |
POSTTO | Optional | boolean | GL Budget period, either First period , All periods , Estimate date , or Effective date . (Default: First period ) |
PROJECTID | Required | string | ID of the project for this estimate |
STATUS | Optional | string | Status. Use active , inactive , or finalized . An estimate set to finalized cannot be modified other than to change its status. |
ENTRIES | Optional | array of PJESTIMATEENTRY | One or more estimate entries to create |
Custom field name | varies | varies | Custom field names and values as defined for this object. For a multi-pick-list custom field, implode multiple field values with #~# . |
You can provide a specific amount for an entry, or you can specify a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.
If you provide a value for production units, you can omit amount, quantity, and unit cost.
Name | Required | Type | Description |
---|---|---|---|
EUOM | Optional | string | External unit of measure. Free form field with 200 or fewer characters. |
QTY | Optional | decimal | Quantity |
UNITCOST | Optional | currency | Unit cost, also known as unit rate |
AMOUNT | Optional | currency | Amount. Required if quantity and unit cost or production units are not supplied. |
MEMO | Optional | string | Memo for the entry. Use 2000 or fewer characters. |
WFTYPE | Optional | string (enum) | Workflow type for the entry.
|
PRODUCTIONUNITS | Optional | numeric | Number of production units, which are units that track several inputs of cost (such as for material, labor, equipment). If specified, then amount, quantity, and unit cost all become optional. When specifying production units, you must also provide a task ID, from which the production unit description, if present, is inherited. (Construction subscription) |
ACCOUNTNO | Optional | string | Account number |
DEPARTMENTID | Optional | string | Department ID |
CUSTOMERID | Optional | string | Customer ID |
EMPLOYEEID | Optional | string | Employee ID |
ITEMID | Optional | string | Item ID |
CONTRACTID | Optional | string | Contract ID |
TASKID | Optional | string | Task ID. Required if you specify production units. |
COSTTYPEID | Optional | string | Cost type ID |
VENDORID | Optional | string | Vendor ID |
CLASSID | Optional | string | Class ID |
EFFECTIVEDATE | Optional | string | Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true . Specified in the format mm/dd/yyyy . |
Custom field name | varies | varies | Custom field names and values as defined for this object. For a multi-pick-list custom field, implode multiple field values with #~# . |
Update Project Estimate
Release | Changes |
---|---|
2021 Release 1 | Added PRODUCTIONUNITS |
2020 Release 4 | Added ESTIMATEDATE, EFFECTIVEDATE, added new values for POSTTO |
You can update header information for a project estimate, modify existing entries, or add new ones:
- To modify the header information only, omit the array of entries altogether.
- To update existing entries, specify their record numbers and the fields to change. You cannot update a project estimate entry if there is a change request entry that is linked to it.
- To add new entries, provide the field information for the new entries (without record numbers).
You can only modify or add entries during an update, you cannot delete entries. Use the delete function for this purpose.
Note: You can also update an estimate entry directly or create new entries independently.
update
Updates the header of the project estimate created above, adding a description:
Updates the same project estimate, modifying the amount of an existing entry and adding a new entry:
Parameters
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATE |
Required | object | Object to update |
PJESTIMATE
Name | Required | Type | Description |
---|---|---|---|
RECORDNO | Optional | integer | Record number of the project estimate to update. Required if not providing the project estimate ID. |
PJESTIMATEID | Optional | string | Unique ID of the project estimate. Required if not providing the record number. |
DESCRIPTION | Optional | string | Description of the project estimate. Use 1000 or fewer characters. |
ISPRIMARY | Optional | boolean | Specifies whether this is the primary estimate for the project. Use true for primary, false otherwise. A project can have zero or one primary estimates and multiple non-primary estimates. You cannot change ISPRIMARY to false if there are change request entries that are linked to it. |
POSTED | Optional | boolean | Specifies whether the estimate posts entries to the GL budget. true posts the entries, false performs an unpost and deletes any existing GL budget entries. |
PJESTIMATETYPENAME | Optional | string | Name of a project estimate type that defines a subset of workflow types. This subset specifies which entries post to the GL budget (if POSTED is true ), and can be used for reporting purposes. When this parameter is not supplied, all workflow types post to the GL budget. If the given project estimate type doesn’t include workflow types, no entries post to the GL budget. |
GLBUDGETID | Optional | string | ID of the existing GL budget to use. The budget must be configured for a project estimate in the Sage Intacct UI. If you change the budget ID and POSTED is set to true , any previously posted budget entries are deleted and a new post to the specified GL budget is performed. |
ESTIMATEDATE | Optional | string | Date of the project estimate, which must be in a budgetable period. Required if POSTTO is set to Estimate date and POSTED is true . The meaning of this date can vary according to the customer’s workflow. It can be the date the estimate was created, the date the estimate was presented as a quote, or the date of the forecast. Specified in the format mm/dd/yyyy . |
POSTTO | Optional | boolean | GL Budget period, either First period , All periods , Estimate date , or Effective date . If you change the budget period and POSTED is set to true , any previously posted budget entries for that period are deleted and a new post for the specified period is performed. |
STATUS | Optional | string | Status. Use active , inactive , or finalized . An estimate set to finalized cannot be modified other than to change its status. |
ENTRIES | Optional | array of PJESTIMATEENTRY | One or more estimate entries. You can add new entries or modify existing entries by supplying their record numbers. Omit this parameter to preserve the existing entries as they are. |
Custom field name | varies | varies | Custom field names and values as defined for this object. For a multi-pick-list custom field, implode multiple field values with #~# . |
You can provide a specific amount for the entry, or you can provide a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.
If you provide a value for production units, you can omit amount, quantity, and unit cost.
Name | Required | Type | Description |
---|---|---|---|
RECORDNO | Optional | integer | Record number of the project estimate to update. Omit this parameter to add a new entry. |
EUOM | Optional | string | External unit of measure. Free form field with 200 or fewer characters. |
QTY | Optional | decimal | Quantity |
UNITCOST | Optional | currency | Unit cost, also known as unit rate |
AMOUNT | Optional | currency | Amount. Required if quantity and unit cost or production units are not supplied. |
MEMO | Optional | string | Memo for the entry. Use 2000 or fewer characters. |
WFTYPE | Optional | string (enum) | Workflow type for the entry.
|
PRODUCTIONUNITS | Optional | numeric | Number of production units, which are units that track several inputs of cost (such as for material, labor, equipment). If specified, then amount, quantity, and unit cost all become optional. When specifying production units, you must also provide a task ID, from which the production unit description, if present, is inherited. (Construction subscription) |
ACCOUNTNO | Optional | string | Account number |
DEPARTMENTID | Optional | string | Department ID |
CUSTOMERID | Optional | string | Customer ID |
EMPLOYEEID | Optional | string | Employee ID |
ITEMID | Optional | string | Item ID |
CONTRACTID | Optional | string | Contract ID |
TASKID | Optional | string | Task ID. Required if you specify production units. |
COSTTYPEID | Optional | string | Cost type ID |
VENDORID | Optional | string | Vendor ID |
CLASSID | Optional | string | Class ID |
EFFECTIVEDATE | Optional | string | Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true . Specified in the format mm/dd/yyyy . |
Custom field name | varies | varies | Custom field names and values as defined for this object. For a multi-pick-list custom field, implode multiple field values with #~# . |
Delete Project Estimate
You cannot delete a primary or finalized project estimate, nor can you delete one with change request entries linked to it.
delete
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATE |
keys | Required | string | Comma-separated list of RECORDNO of the project estimate to delete |
Project Estimate Entries
Get Project Estimate Entry Object Definition
lookup
List all the fields and relationships for the project estimate entry object:
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATEENTRY |
Query and List Project Estimate Entries
query
List the record number and project estimate ID for each project estimate entry:
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATEENTRY |
filter | Optional | object | Filter expression to limit the response to only objects that match the expression. Check the value of a single field using operators such as equalto/like, or multiple fields using and/or. Query fields on related objects using the dot operator (for example, VENDOR.CREDITLIMIT on APBILL). |
select | Required | sequence | The names of the fields that you want included in the response, and an optional aggregate function such as count or sum . Returning all fields is not supported. |
orderby | Optional | object | Provide an order element with a field name and choose an ascending or descending sort order, for example: <order> |
options | Optional | object | Query options:
|
pagesize | Optional | integer | Maximum number of matching objects to return in the response, between 1 and 2000 items (Default: 100 ) |
offset | Optional | integer | Point at which to start indexing into records (Default: 0 ) |
Query and List Project Estimate Entries (Legacy)
readByQuery
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATEENTRY |
fields | Optional | string | Comma-separated list of fields on the object to list. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value. |
query | Required | string | SQL-like query based on fields on the object. The following operators are supported: < , > , >= , <= , = , like , not like , in , not in , IS NOT NULL , IS NULL , AND , OR . Illegal XML characters must be properly encoded, and single quotes must be escaped with backslashes ('Jane\'s Deli' ). Joins are not supported. |
pagesize | Optional | integer | Custom page size between 1 and 1000 items (Default: 100 ) |
Get Project Estimate Entry
read
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATEENTRY |
keys | Required | string | Comma-separated list of RECORDNO of the project estimate entry to get |
fields | Optional | string | Comma-separated list of fields on the object to get. To return all fields, omit the element or provide * for the value.For best performance and predictability, limit the number of fields. |
returnFormat | Optional | string | Data format for the response body:
|
Create Project Estimate Entry
Release | Changes |
---|---|
2021 Release 1 | Added PRODUCTIONUNITS |
2020 Release 4 | Added EFFECTIVEDATE |
create
Parameters
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATEENTRY |
Required | object | Object to create |
PJESTIMATEENTRY
You can provide an amount for the entry, or you can specify a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.
If you provide a value for production units, you can omit amount, quantity, and unit cost.
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATEID | Required | string | Unique ID of the existing project estimate |
EUOM | Optional | string | External unit of measure. Free form field with 200 or fewer characters. |
QTY | Optional | decimal | Quantity |
UNITCOST | Optional | currency | Unit cost, also known as unit rate |
AMOUNT | Optional | currency | Amount. Required if quantity and unit cost or production units are not supplied. |
MEMO | Optional | string | Memo for the entry. Use 2000 or fewer characters. |
WFTYPE | Optional | string (enum) | Workflow type for the entry.
|
PRODUCTIONUNITS | Optional | numeric | Number of production units, which are units that track several inputs of cost (such as for material, labor, equipment). If specified, then amount, quantity, and unit cost all become optional. When specifying production units, you must also provide a task ID, from which the production unit description, if present, is inherited. (Construction subscription) |
ACCOUNTNO | Optional | string | Account number |
DEPARTMENTID | Optional | string | Department ID |
CUSTOMERID | Optional | string | Customer ID |
EMPLOYEEID | Optional | string | Employee ID |
ITEMID | Optional | string | Item ID |
CONTRACTID | Optional | string | Contract ID |
TASKID | Optional | string | Task ID. Required if you specify production units. |
COSTTYPEID | Optional | string | Cost type ID |
VENDORID | Optional | string | Vendor ID |
CLASSID | Optional | string | Class ID |
EFFECTIVEDATE | Optional | string | Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true . Specified in the format mm/dd/yyyy . |
customfields | optional | customfield[0…n] | Custom fields |
customfield
Name | Required | Type | Description |
---|---|---|---|
customfieldname | Optional | string | Custom field ID |
customfieldvalue | Optional | varies | Custom field value. For a multi-pick-list custom field, implode multiple field values with #~# . |
Update Project Estimate Entry
Release | Changes |
---|---|
2021 Release 1 | Added PRODUCTIONUNITS |
2020 Release 4 | Added EFFECTIVEDATE |
You cannot update a project estimate entry if there is a change request entry that is linked to it.
update
Parameters
Name | Required | Type | Description |
---|---|---|---|
PJESTIMATEENTRY |
Required | object | Object to update |
PJESTIMATEENTRY
You can provide an amount for the entry, or you can specify a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.
If you provide a value for production units, you can omit amount, quantity, and unit cost.
Name | Required | Type | Description |
---|---|---|---|
RECORDNO | Required | integer | Record number of the project estimate entry to update |
EUOM | Optional | string | External unit of measure. Free form field with 200 or fewer characters. |
QTY | Optional | decimal | Quantity |
UNITCOST | Optional | currency | Unit cost, also known as unit rate |
AMOUNT | Optional | currency | Amount. Required if quantity and unit cost or production units are not supplied. |
MEMO | Optional | string | Memo for the entry. Use 2000 or fewer characters. |
WFTYPE | Optional | string (enum) | Workflow type for the entry.
|
PRODUCTIONUNITS | Optional | numeric | Number of production units, which are units that track several inputs of cost (such as for material, labor, equipment). If specified, then amount, quantity, and unit cost all become optional. When specifying production units, you must also provide a task ID, from which the production unit description, if present, is inherited. (Construction subscription) |
ACCOUNTNO | Optional | string | Account number |
DEPARTMENTID | Optional | string | Department ID |
CUSTOMERID | Optional | string | Customer ID |
EMPLOYEEID | Optional | string | Employee ID |
ITEMID | Optional | string | Item ID |
CONTRACTID | Optional | string | Contract ID |
TASKID | Optional | string | Task ID. Required if you specify production units. |
COSTTYPEID | Optional | string | Cost type ID |
VENDORID | Optional | string | Vendor ID |
CLASSID | Optional | string | Class ID |
EFFECTIVEDATE | Optional | string | Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true . Specified in the format mm/dd/yyyy . |
customfields | optional | customfield[0…n] | Custom fields |
customfield
Name | Required | Type | Description |
---|---|---|---|
customfieldname | Optional | string | Custom field ID |
customfieldvalue | Optional | varies | Custom field value. For a multi-pick-list custom field, implode multiple field values with #~# . |
Delete Project Estimate Entry
You cannot delete a project estimate entry if there is a change request entry that is linked to it.
delete
Parameters
Name | Required | Type | Description |
---|---|---|---|
object | Required | string | Use PJESTIMATEENTRY |
keys | Required | string | Comma-separated list of RECORDNO of the project estimate entry to delete |