list-aws-recommendations
dci list-aws-recommendations <managementAccountId>
Returns commitment purchase recommendations for the AWS organization, keyed by commitment type (compute, database). A commitment type is present only when it is onboarded and a recommendation is available.
managementAccountId— 12-digit AWS management (payer) account ID (the account that owns the AWS Organization) that scopes the request.
The response is keyed by commitment type (compute, database); a type is present only
when it is onboarded and a recommendation exists. For the eligible-spend time series
behind one recommendation, use get-aws-recommendation <management-account-id> <service-id>.
Examples
# Current and recommended hourly commitment per onboarded commitment type, with the estimated additional savings.
dci list-aws-recommendations <management-account-id>
# The recommendations as JSON, for scripts.
dci list-aws-recommendations <management-account-id> --output json
# Only the compute recommendation.
dci list-aws-recommendations <management-account-id> --fields compute --output json
Output
List with recommendations for each onboarded commitment type. A commitment type property is present only when that commitment type is onboarded and a recommendation is available.
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
compute | object | Recommendation for the Compute commitment type. |
compute.policy | string | Coverage target policy this recommendation was generated for (built-in or customer-defined). |
compute.currentCommitment | number (double) | Active hourly commitment ($/h) currently applied to this AWS organization and commitment type, including commitments already purchased. |
compute.recommendedCommitment | number (double) | Recommended total hourly commitment ($/h) based on usage patterns and your commitment policy. Designed to increase savings while managing underutilization risk. |
compute.potentialAdditionalSavings | number (double) | Estimated additional monthly savings ($/month) from applying the recommended commitment relative to currentCommitment. |
compute.estimatedAverageCoverage | number (double) | Estimated average coverage of eligible spend if the recommended commitment were in place, as a fraction from 0 to 1 (for example, 0.5517 is 55.17%). Same scale as esr and the inventory utilization and coverage fields. |
compute.estimatedEquivalentRecommendedCommitment | number (double) | Shelf-price hourly equivalent ($/h) of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by estimatedAverageCoverage. Use this to compare the recommendation line to eligible usage on charts. |
database | object | Recommendation for the Database commitment type. |
database.policy | string | Coverage target policy this recommendation was generated for (built-in or customer-defined). |
database.currentCommitment | number (double) | Active hourly commitment ($/h) currently applied to this AWS organization and commitment type, including commitments already purchased. |
database.recommendedCommitment | number (double) | Recommended total hourly commitment ($/h) based on usage patterns and your commitment policy. Designed to increase savings while managing underutilization risk. |
database.potentialAdditionalSavings | number (double) | Estimated additional monthly savings ($/month) from applying the recommended commitment relative to currentCommitment. |
database.estimatedAverageCoverage | number (double) | Estimated average coverage of eligible spend if the recommended commitment were in place, as a fraction from 0 to 1 (for example, 0.5517 is 55.17%). Same scale as esr and the inventory utilization and coverage fields. |
database.estimatedEquivalentRecommendedCommitment | number (double) | Shelf-price hourly equivalent ($/h) of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by estimatedAverageCoverage. Use this to compare the recommendation line to eligible usage on charts. |
Raw JSON schema
{
"type": "object",
"properties": {
"compute": {
"allOf": [
{
"type": "object",
"description": "Recommended commitment levels and savings estimates for one PerfectScale for Commitments commitment type on an AWS organization.",
"properties": {
"policy": {
"allOf": [
{
"type": "string",
"description": "ID of a commitment policy: either one of the built-in policies — `conservative` (lower\ncoverage target, ~65%), `balanced` (moderate, ~80%), `max_savings` (aggressive, ~90%) — or the\nID of a policy the customer defined in the DoiT Console. One catalog is shared by AWS and GCP,\nand the same policy may be assigned to any AWS organization or GCP billing account product\nline. Custom policies make this an open list, so it is not an enum; treat the value as an\nopaque identifier and use the commitment-policies endpoint to resolve it.",
"example": "balanced"
}
],
"description": "Coverage target policy this recommendation was generated for (built-in or customer-defined)."
},
"currentCommitment": {
"type": "number",
"format": "double",
"description": "Active hourly commitment ($/h) currently applied to this AWS organization and commitment type, including commitments already purchased."
},
"recommendedCommitment": {
"type": "number",
"format": "double",
"description": "Recommended total hourly commitment ($/h) based on usage patterns and your commitment policy. Designed to increase savings while managing underutilization risk."
},
"potentialAdditionalSavings": {
"type": "number",
"format": "double",
"description": "Estimated additional monthly savings ($/month) from applying the recommended commitment relative to `currentCommitment`."
},
"estimatedAverageCoverage": {
"type": "number",
"format": "double",
"minimum": 0,
"maximum": 1,
"description": "Estimated average coverage of eligible spend if the recommended commitment were in place, as a fraction from 0 to 1 (for example, `0.5517` is 55.17%). Same scale as `esr` and the inventory utilization and coverage fields."
},
"estimatedEquivalentRecommendedCommitment": {
"type": "number",
"format": "double",
"description": "Shelf-price hourly equivalent ($/h) of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by `estimatedAverageCoverage`. Use this to compare the recommendation line to eligible usage on charts."
}
}
}
],
"description": "Recommendation for the Compute commitment type."
},
"database": {
"allOf": [
{
"type": "object",
"description": "Recommended commitment levels and savings estimates for one PerfectScale for Commitments commitment type on an AWS organization.",
"properties": {
"policy": {
"allOf": [
{
"type": "string",
"description": "ID of a commitment policy: either one of the built-in policies — `conservative` (lower\ncoverage target, ~65%), `balanced` (moderate, ~80%), `max_savings` (aggressive, ~90%) — or the\nID of a policy the customer defined in the DoiT Console. One catalog is shared by AWS and GCP,\nand the same policy may be assigned to any AWS organization or GCP billing account product\nline. Custom policies make this an open list, so it is not an enum; treat the value as an\nopaque identifier and use the commitment-policies endpoint to resolve it.",
"example": "balanced"
}
],
"description": "Coverage target policy this recommendation was generated for (built-in or customer-defined)."
},
"currentCommitment": {
"type": "number",
"format": "double",
"description": "Active hourly commitment ($/h) currently applied to this AWS organization and commitment type, including commitments already purchased."
},
"recommendedCommitment": {
"type": "number",
"format": "double",
"description": "Recommended total hourly commitment ($/h) based on usage patterns and your commitment policy. Designed to increase savings while managing underutilization risk."
},
"potentialAdditionalSavings": {
"type": "number",
"format": "double",
"description": "Estimated additional monthly savings ($/month) from applying the recommended commitment relative to `currentCommitment`."
},
"estimatedAverageCoverage": {
"type": "number",
"format": "double",
"minimum": 0,
"maximum": 1,
"description": "Estimated average coverage of eligible spend if the recommended commitment were in place, as a fraction from 0 to 1 (for example, `0.5517` is 55.17%). Same scale as `esr` and the inventory utilization and coverage fields."
},
"estimatedEquivalentRecommendedCommitment": {
"type": "number",
"format": "double",
"description": "Shelf-price hourly equivalent ($/h) of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by `estimatedAverageCoverage`. Use this to compare the recommendation line to eligible usage on charts."
}
}
}
],
"description": "Recommendation for the Database commitment type."
}
}
}
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
HTTP status to exit code mapping
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 404 | 20 | RESOURCE_NOT_FOUND | The requested resource does not exist. Check the identifier argument. |
| 500, 503 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Related
- get-aws-recommendation — Get an AWS recommendation
- list-aws-planned-purchases — List AWS planned purchases
- list-aws-organizations — List AWS organizations
- list-aws-savings-plans — List AWS Savings Plans
- API reference: GET /ps4commitments/v1/aws/organizations/{managementAccountId}/recommendations
Aliases: listawsrecommendations