AWS Billing GetCostForecast

AWS Billing GetCostForecast

Certified

Forecast AWS spend with Cost Explorer

Calls the Cost Explorer GetCostForecast API for a future time period and returns the forecasted total and the forecast for each period. The start date must be today or later. This is a single paid request ($0.01).

yaml
type: io.kestra.plugin.aws.billing.GetCostForecast

Forecast the unblended cost until the end of the current month.

yaml
id: aws_cost_forecast
namespace: company.finops

tasks:
  - id: forecast
    type: io.kestra.plugin.aws.billing.GetCostForecast
    region: us-east-1
    accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
    secretKeyId: "{{ secret('AWS_SECRET_ACCESS_KEY') }}"
    startDate: "{{ now() | date('yyyy-MM-dd') }}"
    endDate: "{{ now() | dateAdd(1, 'MONTHS') | date('yyyy-MM-01') }}"
    granularity: MONTHLY
    metric: UNBLENDED_COST
    predictionIntervalLevel: 80

  - id: log_forecast
    type: io.kestra.plugin.core.log.Log
    message: "Forecast for the rest of the month: {{ outputs.forecast.totalAmount }} {{ outputs.forecast.unit }}"
Properties

End date

End of the time period, as yyyy-MM-dd. Exclusive for GetCostAndUsage and GetCostForecast, like in the Cost Explorer API (the whole month of January is 2026-01-01 to 2026-02-01); inclusive for GetAnomalies (2026-01-01 to 2026-01-31).

Possible Values
DAILYMONTHLYHOURLYUNKNOWN_TO_SDK_VERSION

Granularity

DAILY or MONTHLY.

Possible Values
BLENDED_COSTUNBLENDED_COSTAMORTIZED_COSTNET_UNBLENDED_COSTNET_AMORTIZED_COSTUSAGE_QUANTITYNORMALIZED_USAGE_AMOUNTUNKNOWN_TO_SDK_VERSION

Metric

The cost metric to forecast, for example UNBLENDED_COST, AMORTIZED_COST, NET_UNBLENDED_COST or BLENDED_COST.

Start date

Start of the time period, inclusive, as yyyy-MM-dd.

Access Key Id in order to connect to AWS

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

The endpoint with which the SDK should communicate

This property allows you to use a different S3 compatible storage backend.

Prediction interval level

Confidence level of the prediction interval, between 51 and 99. When set, each forecast entry also has lowerBound and upperBound.

AWS region with which the SDK should communicate

Secret Key Id in order to connect to AWS

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

AWS session token, retrieved from an AWS token service, used for authenticating that this user has received temporary permissions to access a given resource

If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

The AWS STS endpoint with which the SDKClient should communicate

AWS STS Role

The Amazon Resource Name (ARN) of the role to assume. If set the task will use the StsAssumeRoleCredentialsProvider. If no credentials are defined, we will use the default credentials provider chain to fetch credentials.

AWS STS External Id

A unique identifier that might be required when you assume a role in another account. This property is only used when an stsRoleArn is defined.

DefaultPT15M

AWS STS Session duration

The duration of the role session (default: 15 minutes, i.e., PT15M). This property is only used when an stsRoleArn is defined.

AWS STS Session name

This property is only used when an stsRoleArn is defined.

SubTypeobject

Forecast by period

One entry per period with start, end, meanValue, and lowerBound / upperBound when predictionIntervalLevel is set.

Forecasted total

Total forecasted amount for the whole time period.

Cost unit

Currency of the forecast, usually USD.

Unitrequests

Number of paid Cost Explorer requests made.