Skip to content

aws.ce.get_usage_forecast

Example SQL Queries

SELECT * FROM
aws.ce.get_usage_forecast
WHERE
"time_period" = 'VALUE'
AND "metric" = 'VALUE'
AND "granularity" = 'VALUE';

Description

Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage.

Table Definition

Column NameColumn Data Type
granularity Required Input Column

How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 12 months of MONTHLY forecasts.

The GetUsageForecast operation supports only DAILY and MONTHLY granularities.

VARCHAR
metric Required Input Column

Which metric Cost Explorer uses to create your forecast.

Valid values for a GetUsageForecast call are the following:

  • USAGE_QUANTITY

  • NORMALIZED_USAGE_AMOUNT

VARCHAR
time_period Required Input Column

The start and end dates of the period that you want to retrieve usage forecast for. The start date is included in the period, but the end date isn't included in the period. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. The start date must be equal to or later than the current date to avoid a validation error.

STRUCT(
"start" VARCHAR,
"end" VARCHAR
)
Show child fields
time_period.end

The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01.

time_period.start

The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.

filter Input Column

The filters that you want to use to filter your forecast. The GetUsageForecast API supports filtering by the following dimensions:

  • AZ

  • INSTANCE_TYPE

  • LINKED_ACCOUNT

  • LINKED_ACCOUNT_NAME

  • OPERATION

  • PURCHASE_TYPE

  • REGION

  • SERVICE

  • USAGE_TYPE

  • USAGE_TYPE_GROUP

  • RECORD_TYPE

  • OPERATING_SYSTEM

  • TENANCY

  • SCOPE

  • PLATFORM

  • SUBSCRIPTION_ID

  • LEGAL_ENTITY_NAME

  • DEPLOYMENT_OPTION

  • DATABASE_ENGINE

  • INSTANCE_TYPE_FAMILY

  • BILLING_ENTITY

  • RESERVATION_ID

  • SAVINGS_PLAN_ARN

STRUCT(
"dimensions" STRUCT(
"key" VARCHAR,
"values" VARCHAR[],
"match_options" VARCHAR[]
),
"tags" STRUCT(
"key" VARCHAR,
"values" VARCHAR[],
"match_options" VARCHAR[]
),
"cost_categories" STRUCT(
"key" VARCHAR,
"values" VARCHAR[],
"match_options" VARCHAR[]
)
)
Show child fields
filter.cost_categories

The filter that's based on CostCategory values.

Show child fields
filter.cost_categories.key

The unique name of the Cost Category.

filter.cost_categories.match_options[]
filter.cost_categories.values[]
filter.dimensions

The specific Dimension to use for Expression.

Show child fields
filter.dimensions.key

The names of the metadata types that you can use to filter and group your results. For example, AZ returns a list of Availability Zones.

Not all dimensions are supported in each API. Refer to the documentation for each specific API to see what is supported.

LINK_ACCOUNT_NAME and SERVICE_CODE can only be used in CostCategoryRule.

ANOMALY_TOTAL_IMPACT_ABSOLUTE and ANOMALY_TOTAL_IMPACT_PERCENTAGE can only be used in AnomalySubscriptions.

filter.dimensions.match_options[]
filter.dimensions.values[]
filter.tags

The specific Tag to use for Expression.

Show child fields
filter.tags.key

The key for the tag.

filter.tags.match_options[]
filter.tags.values[]
prediction_interval_level Input Column

Amazon Web Services Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

BIGINT
_aws_profile Input Column

The AWS profile defines the AWS identity used. It can be defined via credentials or by assuming a IAM role.

STRUCT(
"type" VARCHAR,
"name" VARCHAR,
"account_id" VARCHAR,
"via_profile_name" VARCHAR,
"assumed_role_arn" VARCHAR,
"organization" STRUCT(
"account_name" VARCHAR,
"id" VARCHAR,
"tags" STRUCT(
"key" VARCHAR,
"value" VARCHAR
)[],
"master_account" STRUCT(
"id" VARCHAR,
"email" VARCHAR
),
"parents" STRUCT(
"type" VARCHAR,
"id" VARCHAR,
"name" VARCHAR,
"tags" STRUCT(
"key" VARCHAR,
"value" VARCHAR
)[]
)[]
)
)
Show child fields
_aws_profile.account_id

The AWS account id

_aws_profile.assumed_role_arn

The ARN of the assumed role

_aws_profile.name

The unique name of the profile.

_aws_profile.organization

Information about this profile's membership in the AWS organization.

Show child fields
_aws_profile.organization.account_name

The name of account speciifed by the organization

_aws_profile.organization.id

The organization id

_aws_profile.organization.master_account
Show child fields
_aws_profile.organization.master_account.email

The organization master account email address

_aws_profile.organization.master_account.id

The organization master account id

_aws_profile.organization.parents[]
Show child fields
_aws_profile.organization.parents[].id

The id of the parent

_aws_profile.organization.parents[].name

The name of the parent

_aws_profile.organization.parents[].tags[]
Show child fields
_aws_profile.organization.parents[].tags[].key
_aws_profile.organization.parents[].tags[].value
_aws_profile.organization.parents[].type

The type of parent can be an organization unit or a root

_aws_profile.organization.tags[]
Show child fields
_aws_profile.organization.tags[].key
_aws_profile.organization.tags[].value
_aws_profile.type

The type of profile, either 'credentials' or 'assumed_role'

_aws_profile.via_profile_name

This IAM role for this profile is assumed by first utilizing another profile with this name to obtain credentials.

forecast_results_by_time

The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts, this is a list of months.

STRUCT(
"time_period" STRUCT(
"start" VARCHAR,
"end" VARCHAR
),
"mean_value" VARCHAR,
"prediction_interval_lower_bound" VARCHAR,
"prediction_interval_upper_bound" VARCHAR
)[]
Show child fields
forecast_results_by_time[]
Show child fields
forecast_results_by_time[].mean_value

The mean value of the forecast.

forecast_results_by_time[].prediction_interval_lower_bound

The lower limit for the prediction interval.

forecast_results_by_time[].prediction_interval_upper_bound

The upper limit for the prediction interval.

forecast_results_by_time[].time_period

The period of time that the forecast covers.

Show child fields
forecast_results_by_time[].time_period.end

The end of the time period. The end date is exclusive. For example, if end is 2017-05-01, Amazon Web Services retrieves cost and usage data from the start date up to, but not including, 2017-05-01.

forecast_results_by_time[].time_period.start

The beginning of the time period. The start date is inclusive. For example, if start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting at 2017-01-01 up to the end date. The start date must be equal to or no later than the current date to avoid a validation error.

total

How much you're forecasted to use over the forecast period.

STRUCT(
"amount" VARCHAR,
"unit" VARCHAR
)
Show child fields
total.amount

The actual number that represents the metric.

total.unit

The unit that the metric is given in.