Gets the Violations of the last performed DCMA 14-Point Assessment for the Schedule. Allows filtering to only return violations of specific types. A DCMA 14-Point Assessment must be performed before calling this endpoint.
V10 Endpoint
This endpoint is only supported by v10 schedules. The schedule type can be identified by querying the /schedules/{scheduleId} endpoint.
DCMA 14-Point Assessment
The DCMA (Defense Contract Management Agency) 14-point assessment is a schedule quality evaluation framework that applies 14 industry-recognized metrics to analyze the integrity and performance of a project schedule. It helps identify common issues such as missing logic, unrealistic constraints, excessive leads/lags, or insufficient progress tracking.
The assessment produces quantitative results that indicate whether the schedule meets recommended thresholds. These results can be used to flag risks, improve schedule quality, and support better forecasting and decision-making.
The assessment consists of the following metrics:
- Missing Logic
- Description: Measures the percentage of incomplete tasks that are missing predecessors or successors.
- Default threshold: <5%.
- Leads
- Description: Identifies the use of negative lag (leads) in task links.
- Default threshold: 0%.
- Lags
- Description: Measures the percentage of task links that use positive lag.
- Default threshold: <5%.
- Relationship Types
- Description: Measures the percentage of non finish-to-start task links.
- Default threshold: <10%.
- Hard Constraints
- Description: Measures the percentage of tasks with hard constraints.
- Default threshold: <5%.
- Note: Hard constraints include: cannot reschedule, mandatory start, mandatory finish.
- High Float
- Description: Measures the percentage of tasks with excessive total float.
- Default threshold: <5%.
- Negative Float
- Description: Measures the percentage of tasks with negative float.
- Default threshold: 0%.
- High Duration
- Description: Measures the percentage of incomplete tasks with long durations (e.g., > 44 working days).
- Default threshold: <5%.
- Note: By default tasks are considered high duration if their durations are longer than 44 working days.
- Invalid Dates
- Description: Measures the percentage of tasks with actual dates in the future or forecast dates in the past.
- Default threshold: 0%.
- Missing Resources
- Description: Measures the percentage of tasks without assigned resources (depending on schedule type).
- Default threshold: <=100%.
- Missed tasks
- Description: Measures the percentage of tasks with actual finish dates later than baseline planned finish dates
- Default threshold: <=100%.
- Critical Path Test
- Description: Verifies that the critical path is continuous and correctly drives project completion.
- Critical Path Length Index (CPLI)
- Description: Evaluates the integrity of the overall network logic and measures the likelihood of completing a project successfully.
- Default threshold: >=0.95.
- Baseline Execution Index (BEI)
- Description: Ratio of the number of tasks completed to the number that should have been completed relative to the baseline.
- Default threshold: >=0.95.
DCMA 14-Point Assessment Violation
A DCMA violation indicates a Task or a Task Link that has failed a DCMA 14-Point Assessment check. Each violation consists of the failed metric type (i.e. MissingLogic, Lags, InvalidDate) and an ID representing the Task or Task Link, which failed the metric. The type of the metric indicates whether the ID identifies a Task or a Task Link - Leads, Lags, and RelationshipTypes types denote a Task Link violation while the others denote Task violations.
Authentication
Requires Authorization header with valid Bearer token for scope itwin-platform.
For more documentation on authorization and how to get access token visit OAUTH2 Authorization page.
Rate limits
All iTwin Platform API operations have a rate limit. For more documentation on that visit Rate limits and quotas page.
Request parameters
The unique identifier of the Schedule.
The $top system query option requests the number of items in the queried collection to be included in the result. When $top parameter is not provided default is set to 100. $top value cannot exceed 10000.
A token used for pagination to retrieve the next set of results. It indicates where the previous page of results ended, allowing you to fetch the subsequent batch of data.
Filter violations by type. Returns only violations of the specified types. Values should be comma-separated without spaces.
Request headers
OAuth access token with itwin-platform scope
Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.
Response 200 OK
OK
{ "violations": [{ "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "MissingLogic" }, { "id": "ecc6702b-b39f-43ef-a7ed-21f58e22f721", "type": "Leads" } ], "_links": { "self": { "href": "https://api.bentley.com/schedules/5e11b21e-cba2-48a8-a2c1-2977d2d373e0/quality/dcma/violations?$top=2" }, "next": { "href": "https://api.bentley.com/schedules/5e11b21e-cba2-48a8-a2c1-2977d2d373e0/quality/dcma/violations?$top=2&$continuationToken=eyJQcmltYXJ5U2tpcFRva2VuIjoiMDAwNGE5MDAtM2UxYy00NGNlLThhMzktYWUxZWRlY2M1MWY0IiwiU2Vjb25kYXJ5U2tpcFRva2VuIjpudWxsfQ==" } } }
Response headers
A token used for pagination to retrieve the next set of results. It indicates where the previous page of results ended, allowing you to fetch the subsequent batch of data.
Response 400 Bad Request
The 400 (Bad Request) status code indicates that the request cannot be processed by the server due to a client error (e.g. malformed request syntax)
{ "error": { "code": "InvalidSchedulesRequest", "details": [{ "code": "InvalidValue", "message": "Top value is not positive, or exceeds maximum page size.", "target": "$top" }, { "code": "InvalidValue", "message": "Provided continuation token is invalid.", "target": "$continuationToken" } ], "message": "The request contains invalid properties." } }
Response 401 Unauthorized
This response indicates that request lacks valid authentication credentials. Access token might not been provided, issued by the wrong issuer, does not have required scopes or request headers were malformed.
{ "error": { "code": "HeaderNotFound", "message": "Header Authorization was not found in the request. Access denied." } }
Response 404 Not Found
This response indicates that the provided Schedule is not available.
{ "error": { "code": "ScheduleNotFound", "message": "Requested Schedule is not available.", "target": "scheduleId" } }
Response 409 Conflict
Indicates that the DCMA violations cannot be retrieved in the current state.
{ "error": { "code": "DcmaAssessmentConflict", "message": "Another DCMA 14-point assessment has been performed since the last DCMA violation page query, previous pages are now invalid. Please re-query DCMA violations to get the latest results." } }
Response 429 Too many requests
This response indicates that the client sent more requests than allowed by this API for the current tier of the client.
{ "error": { "code": "RateLimitExceeded", "message": "The client sent more requests than allowed by this API for the current tier of the client." } }
Response headers
Number of seconds to wait until client is allowed to make more requests.
DCMA Violation
A DCMA violation.
The unique identifier of the Task or Link that has the violation.
{ "title": "DCMA Violation", "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the Task or Link that has the violation." }, "type": { "$ref": "#/components/schemas/DcmaViolationType", "description": "The type of the DCMA violation." } }, "additionalProperties": false, "description": "A DCMA violation." }
DCMA Violation Type
{ "title": "DCMA Violation Type", "enum": [ "MissingLogic", "Leads", "Lags", "RelationshipTypes", "HardConstraints", "HighDuration", "InvalidDates", "MissingResources", "Unknown" ], "type": "string" }
DCMA Violations Response
List of DCMA Violations.
{ "title": "DCMA Violations Response", "type": "object", "properties": { "violations": { "type": "array", "items": { "$ref": "#/components/schemas/DcmaViolation" }, "description": "A list of DCMA Violations." }, "_links": { "$ref": "#/components/schemas/PagingLinks", "description": "Contains the hyperlinks to the current and next pages of results." } }, "additionalProperties": false, "description": "List of DCMA Violations." }
Link
Hyperlink container.
Hyperlink to the specific entity.
{ "type": "object", "properties": { "href": { "type": "string", "description": "Hyperlink to the specific entity." } }, "additionalProperties": false, "description": "Hyperlink container." }
Paging Links
URLs for redoing the current request and/or getting the next page of results if applicable.
{ "title": "Paging Links", "type": "object", "properties": { "self": { "$ref": "#/components/schemas/Link", "description": "Relative URL for redoing the current request." }, "next": { "$ref": "#/components/schemas/Link", "description": "Relative URL for getting the next page of results.", "nullable": true } }, "additionalProperties": false, "description": "URLs for redoing the current request and/or getting the next page of results if applicable." }
DetailedError
Contains error information and an array of more specific errors.
One of a server-defined set of error codes.
A human-readable representation of the error.
The target of the error.
{ "type": "object", "description": "Contains error information and an array of more specific errors.", "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "message": { "type": "string", "description": "A human-readable representation of the error." }, "target": { "type": "string", "description": "The target of the error.", "nullable": true }, "details": { "type": "array", "description": "Optional array of more specific errors.", "items": { "$ref": "#/components/schemas/Error" } } }, "required": [ "code", "message", "details" ], "additionalProperties": true }
Detailed Error Response
Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.
{ "type": "object", "title": "Detailed Error Response", "description": "Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.", "properties": { "error": { "description": "Error Detailed information.", "$ref": "#/components/schemas/DetailedError" } }, "required": [ "error" ], "additionalProperties": false }
Error
Contains error information.
One of a server-defined set of error codes.
A human-readable representation of the error.
The target of the error.
{ "type": "object", "description": "Contains error information.", "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "message": { "type": "string", "description": "A human-readable representation of the error." }, "target": { "type": "string", "description": "The target of the error.", "nullable": true } }, "required": [ "code", "message" ], "additionalProperties": true }
Error Response
Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.
{ "type": "object", "title": "Error Response", "description": "Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.", "properties": { "error": { "description": "Error information.", "$ref": "#/components/schemas/Error" } }, "required": [ "error" ], "additionalProperties": false }
Was this page helpful?