I checked the billing information in CUR for users who activated their subscription mid-month in Kiro Enterprise

I checked the billing information in CUR for users who activated their subscription mid-month in Kiro Enterprise

Kiro Enterprise is billed monthly per IAM Identity Center user. The official documentation states that activation mid-month is prorated, while upgrades to a higher plan are charged at the full amount. We compared the CUR before and after the change to examine what happens when activation and a plan change occur in the same month.
2026.08.30

This page has been translated by machine translation. View original

Introduction

Kiro Enterprise is billed monthly per IAM Identity Center user. How mid-month subscription operations are billed is described in the official documentation.

https://kiro.dev/docs/enterprise/billing/

  • If you subscribe a user mid-month, you will be charged a pro-rated fee for that month. The user immediately gets access to the subscribed tier's full credit limits.
  • If you unsubscribe a user mid-month, you will pay for the last month in full. The cancellation takes effect at the beginning of the following month.
  • If you upgrade a subscription mid-month, you will be refunded for the lower-tier subscription, and you will be charged in full for the higher-tier subscription.
  • If you downgrade a subscription mid-month, you will pay in full for the higher-tier subscription, and you will be charged for the lower-tier subscription starting the following month.

A mid-month activation (subscribe) is pro-rated for the time the user was active, and an upgrade to a higher plan results in a refund for the lower plan and a full charge for the higher plan. So what happens when these two occur in the same month? We compared the CUR data from July and August before and after a plan change.

What We Verified

After confirming the structure of subscription line items, we tracked how mid-month activation and a plan change occurring in the same month as the activation are recorded.

Test Environment

To track subscription costs per user, an export that includes resource IDs is required. The Enterprise billing documentation mentioned at the beginning describes this prerequisite.

You can identify the cost of Kiro subscriptions for specific users with resource IDs through AWS Billing and Cost Management. To do so, in the Billing and Cost Management console, under Data Exports, create either a standard data export or a legacy CUR export with the Include resource IDs option selected.

All observations in this article depend on the line_item_resource_id (or lineItem/ResourceId in legacy CUR) output with this setting.

The CUR for the current month is updated multiple times per day. In our case, the report definition created a separate directory for each delivery, so we extracted the last delivery for each day and compared files from adjacent days.

Format Example Column Names
Legacy CUR identity/LineItemId, bill/PayerAccountId, lineItem/UsageType, product/ProductName
CUR 2.0 bill_payer_account_id, line_item_usage_type, product

Slash-separated camelCase indicates legacy CUR, while snake_case indicates CUR 2.0. The column names differ, but the arrangement and amounts of FlatRateSubscription rows are consistent. CUR 2.0 is used for presenting row structure, and legacy CUR exports are used for daily comparisons. The observation scope is one payer account, in the US East (N. Virginia) region.

CUR Row Structure

Subscription rows appear in the CUR in one-hour increments from the start of billing through the end of the month. The CUR used this time was obtained on August 30, 2026, but it includes rows through 8/31. Since rows through the end of the month are recorded in advance for flat-rate charges, you can read the monthly total from a mid-month file as long as no plan changes occur after obtaining the CUR. Even in a snapshot taken on 8/5, the final row was 2026-08-31T23:00:00Z.

Here is the first row for a user who was on Pro throughout August.

line_item_line_item_type,FlatRateSubscription
line_item_usage_type,USE1-KiroEnterprise-Pro
line_item_resource_id,arn:aws:identitystore:::user/example-user-5
line_item_usage_start_date,2026-08-01 00:00:00
line_item_usage_end_date,2026-08-01 01:00:00
line_item_usage_amount,0.00134409
line_item_unblended_rate,20.0000000000
line_item_unblended_cost,0.0268818
line_item_line_item_description,Kiro Enterprise Pro plan
line_item_operation,monthly-subscription
line_item_product_code,Kiro
identity_time_interval,2026-08-01T00:00:00Z/2026-08-01T01:00:00Z

Rows corresponding to subscription billing are those where line_item_line_item_type is FlatRateSubscription. The line_item_product_code for these rows is Kiro, and line_item_operation is monthly-subscription. The line_item_resource_id contains an ARN in the format arn:aws:identitystore:::user/<UserId> pointing to the Identity Store user. The line_item_unblended_rate is the monthly rate; the observed rates were Pro at 20, Pro+ at 40, Pro Max at 100, and Power at 200 USD.

Below are the first two rows and last two rows from the same user's 744 rows.

line_item_usage_start_date  line_item_usage_amount  line_item_unblended_cost
       2026-08-01 00:00:00                0.001344                  0.026882
       2026-08-01 01:00:00                0.001344                  0.026882
       2026-08-31 22:00:00                0.001344                  0.026882
       2026-08-31 23:00:00                0.001341                  0.026823

Each row represents one hour. The line_item_usage_amount of 0.001344 corresponds to 1/744 of August's 744 hours, and the cost is the monthly rate divided by 744, which is $0.026882. The same amount continues through the 22:00 row on the last day of the month, and only the final row drops slightly to 0.001341 so that the total comes out to exactly the monthly rate. In August's CUR, a user on Pro from the beginning to the end of the month had 744 rows totaling exactly $20.00. In subsequent sections, we use these 744 rows as the baseline for a full month's charge.

Pro-Rated Billing for Mid-Month Activated Users

Here are one example per plan from users whose subscriptions were activated mid-month in August. The row count is the number of subscription rows for that user in August's CUR.

User Plan Billing Start Row Count August Charge
example-user-9 Pro 2026-08-03T03:00:00Z 693 $18.62
example-user-13 Pro+ 2026-08-06T01:00:00Z 623 $33.48
example-user-24 Pro Max 2026-08-26T16:00:00Z 128 $17.15

In all cases, the final row was 2026-08-31T23:00:00Z, and the row count matched the number of hours from the billing start to the end of the month. The pro-ration starts at the time of activation. For example-user-24, the start time is 16:00 on 8/26, with no rounding to the day level.

Below are the first two rows and last two rows for example-user-9, the first entry in the table. The plan is Pro, the same as the full-month example.

line_item_usage_start_date  line_item_usage_amount  line_item_unblended_cost
       2026-08-03 03:00:00                0.000836                  0.016711
       2026-08-03 04:00:00                0.001344                  0.026882
       2026-08-31 22:00:00                0.001344                  0.026882
       2026-08-31 23:00:00                0.001341                  0.026827

Only the first billing row has a line_item_usage_amount of 0.000836, which is 62.2% of the standard one-hour amount of 0.001344. The fractional minutes from the activation time are reflected in the first one-hour row. From the second row onward, the full $0.026882 continues. The slight reduction in the final row is the same fractional adjustment seen in the full-month example. The total across 693 rows came to $18.62. The difference from the full amount of $20.00—which is $1.38—accounts for the 51 missing rows compared to 744 rows, plus the partial amount in the first row.

For the Pro+ and Pro Max users in the table, we tracked all daily snapshots from 8/1 through 8/28. No Pro rows (the lower plan) appeared in the CUR for days before each user's billing start date. Both users were billed under their respective plans from the moment of activation.

Upgrading a User Who Was Active from the Beginning of the Month

First, let's look at upgrading a user who has been active since the beginning of the month to a higher plan. We compared the day before and the day after the change using daily snapshots from July.

20260717 -> 20260718  example-user-3
   Before  Pro+     2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $40.00
   After   Pro Max  2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $100.00

20260722 -> 20260723  example-user-4
   Before  Pro      2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $20.00
   After   Pro+     2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $40.00

The 744 rows for the previous plan disappeared, and 744 rows for the new plan appeared spanning the same 7/1–7/31 period. The entire period was rewritten rather than adding a differential charge from the change date onward. There were 5 changes of this type in July, and in all cases the billing start time remained 2026-07-01T00:00:00Z unchanged, with only the amount changing.

Upgrading a Mid-Month Activated User Within the Same Month

Next, let's look at upgrading a user whose subscription was activated mid-month to a higher plan within the same month. We aligned the rows for the same user across daily snapshots from 7/25 through 7/31.

20260725  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260726  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260727  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260728  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260729  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260730  Pro      2026-07-25T11:00:00Z 〜 2026-07-31T23:00:00Z  rows= 157  $4.22
20260731  Pro Max  2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z  rows= 744  $100.00

example-user-1's billing started with Pro from 2026-07-25T11:00:00Z. Before the change, there were 157 rows totaling a pro-rated $4.22. This pro-rated amount continued through the 7/30 CUR, and in the 7/31 CUR, the 157 Pro rows disappeared and 744 Pro Max rows appeared starting from 2026-07-01T00:00:00Z. After the change, the billing start was retroactively moved from the subscription activation time back to the beginning of the month. What had originally been a pro-rated charge for 157 hours became the full monthly rate of $100.00 for Pro Max for all of July.

Even though the charge became the full monthly rate, the total July billing was lower than it would have been if the user had remained on Pro. This user consumed 5,283 credits in July. The credits included per plan are 1,000 for Pro and 5,000 for Pro Max, with overage charged at $0.04 per credit. The finalized July amount was $100.00 for the Pro Max flat rate plus $11.32 in overage charges, totaling $111.32. If the user had stayed on Pro, overage would have been 4,283 credits, and combined with the pro-rated $4.22, the total would have been $175.54. While the flat rate increased by $95.78, the overage charges would have decreased by $160.00.

Downgrades and Cancellations

We also confirmed downgrades to a lower plan and cancellations using daily snapshots.

example-user-4
  Final July    Pro+     2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $40.00
  20260802      Pro      2026-08-01T00:00:00Z 〜 2026-08-31T23:00:00Z rows=744 $20.00

example-user-1
  Final July    Pro Max  2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $100.00
  August        No rows (all snapshots from 8/1 to 8/28)

example-user-4 was billed the full Pro+ amount in July. The lower plan, Pro, started billing from 2026-08-01T00:00:00Z. A downgrade does not reduce the current month's charges; it takes effect starting the following month.

example-user-1 is the user from the previous section who activated a subscription mid-month and upgraded to Pro Max. That user subsequently cancelled. The July charge remained the full Pro Max amount, and no rows existed in August's CUR. The cancellation procedure is covered in a separate article.

https://dev.classmethod.jp/articles/kiro-enterprise-user-subscription-cancel/

Summary

We confirmed that for both the individual Kiro Pro and Kiro Enterprise, the first month's subscription fee is pro-rated based on the number of hours from the activation time through the end of the month.

https://dev.classmethod.jp/articles/kiro-pro-builder-id-upgrade/

We confirmed that upgrading to a higher plan does not add a differential charge from the change date onward; instead, the entire month is recalculated retroactively from the beginning of the month at the new plan's rate.

A user who activated a Kiro subscription mid-month and was being billed at a pro-rated rate will be charged the full monthly rate for the new plan upon upgrading. However, if the user has consumed credits beyond the break-even point introduced in a previous article, cost optimization can still be expected even at the full rate. In this user's case as well, the reduction in overage charges exceeded the increase in the flat rate.

https://dev.classmethod.jp/articles/kiro-pro-max-breakeven-update/

For users who are expected to consume significantly more credits than what Pro includes within the same month, consider an operational approach of selecting a plan of Pro+ or higher at the time of subscription activation.

Share this article

AWSのお困り事はクラスメソッドへ

Related articles