Table of contents
Schedules
Download API definition:
This API is a Technical Preview and is available for testing purposes only. Do not use in production.
GET https://dev-api.bentley.com/schedules/{scheduleId}/quality/dcma/violations[?$top][&$continuationToken][&types]

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

Name
Required?
Description
scheduleId
Yes

The unique identifier of the Schedule.

$top
No

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.

$continuationToken
No

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.

types
No

Filter violations by type. Returns only violations of the specified types. Values should be comma-separated without spaces.

Request headers

Name
Required?
Description
Authorization
Yes

OAuth access token with itwin-platform scope

Accept
Yes

Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.

Response 200 OK

OK

json
{
    "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

Name
Description
Continuation-Token

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)

json
{
    "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.

json
{
    "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.

json
{
    "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.

json
{
    "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.

json
{
    "error": {
        "code": "RateLimitExceeded",
        "message": "The client sent more requests than allowed by this API for the current tier of the client."
    }
}

Response headers

Name
Description
retry-after

Number of seconds to wait until client is allowed to make more requests.

DCMA Violation

A DCMA violation.

Name
Type
Description
id
String

The unique identifier of the Task or Link that has the violation.

type

The type of the DCMA violation.

DCMA Violation Type

Name
Type
Description
MissingLogic
String
Leads
String
Lags
String
RelationshipTypes
String
HardConstraints
String
HighDuration
String
InvalidDates
String
MissingResources
String
Unknown
String

DCMA Violations Response

List of DCMA Violations.

Name
Type
Description
violations

A list of DCMA Violations.

_links

Contains the hyperlinks to the current and next pages of results.

Link

Hyperlink container.

Name
Type
Description
href
String

Hyperlink to the specific entity.

Paging Links

URLs for redoing the current request and/or getting the next page of results if applicable.

Name
Type
Description
self

Relative URL for redoing the current request.

next
Link, null

Relative URL for getting the next page of results.

DetailedError

Contains error information and an array of more specific errors.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

details

Optional array of more specific errors.

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.

Name
Type
Description
error

Error Detailed information.

Error

Contains error information.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

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.

Name
Type
Description
error

Error information.

Was this page helpful?