Checking Billing Information in the CUR for Users Who Activated a Subscription Mid-Month in Kiro Enterprise

Checking Billing Information in the CUR for Users Who Activated a Subscription Mid-Month in Kiro Enterprise

Kiro Enterprise bills monthly per IAM Identity Center user. Docs say mid-month activation is prorated and upgrades are charged in full. I compared CUR before and after to see what happens when both occur in one 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 enrolled, and an upgrade to a higher plan means a refund of the lower plan and a full charge for the higher plan. So what happens when these two occur in the same month? I compared the CUR for July and August before and after a plan change.

What I Verified

After confirming the structure of the subscription rows, I trace how a mid-month activation, and a plan change in the same month as the activation, are recorded.

Verification Environment

To track subscription costs per user, you need an export that includes resource IDs. 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 this time depend on the line_item_resource_id (lineItem/ResourceId in the legacy CUR) output by this setting.

The CUR for the current month is updated multiple times a day. In this case, the report definition created a separate directory for each delivery, so I extracted the last delivery of each day and compared the files of 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

If the names are slash-separated camel case, it is the legacy CUR; if they are snake case, it is CUR 2.0. The column names differ, but the arrangement of FlatRateSubscription rows and the amounts match. I used CUR 2.0 to show the row structure, and legacy CUR exports for the daily comparisons. The observation scope is a single payer account in the US East (N. Virginia) region.

CUR Row Structure

Subscription rows are listed in the CUR hourly from the billing start time through the end of the month. The CUR used here was obtained on August 30, 2026, but it contains rows through 8/31. For flat-rate charges, the rows through the end of the month are recorded in advance, so as long as there is no plan change after the CUR is obtained, you can read the month's total even from a mid-month file. Even in the snapshot from 8/5, the last row was 2026-08-31T23:00:00Z.

Here are the first rows for a user who was enrolled 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

The rows that represent subscription charges are those where line_item_line_item_type is FlatRateSubscription. For these rows, line_item_product_code is Kiro and line_item_operation is monthly-subscription. line_item_resource_id contains an ARN in the form arn:aws:identitystore:::user/<UserId> pointing to the Identity Store user. line_item_unblended_rate is the monthly fee, and the observed rates were 20 USD for Pro, 40 for Pro+, 100 for Pro Max, and 200 for Power.

Here are the first two 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 is 1/744 of August's 744 hours, and the cost is the monthly fee divided by 744, $0.026882. The same amount continues through the 22:00 row at the end of the month, and only the last row drops to 0.001341, so that the total comes out exactly to the monthly fee.

In the August CUR, a user billed on Pro from the start to the end of the month has 744 rows, and the total was $20.00, exactly the monthly fee. In the following sections, I use these 744 rows as the full-amount baseline for comparison.

Pro-rating for Users Activated Mid-Month

I picked one user for each plan who activated a subscription partway through August. The number of rows is the number of that user's subscription rows in the August CUR.

User Plan Billing start Rows 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 every case, the last row was 2026-08-31T23:00:00Z, and the number of rows matched the number of hours from the billing start to the end of the month. The starting point of the pro-rating is the time of activation. The starting point for example-user-24 is 16:00 on 8/26, and it is not rounded to the day.

For example-user-9 in the first row of the table, here are the first two and last two rows. The plan is Pro, the same as in the full-amount 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 in the billing start row, line_item_usage_amount is 0.000836, which is 62.2% of the normal one-hour amount of 0.001344. The fractional part, calculated in minutes from the activation time, is carried in the first hourly row. From the second row onward, the same $0.026882 as the full amount continues. Only the last row is slightly smaller, due to the same fractional adjustment as in the full-amount example. The total was $18.62 over 693 rows. The $1.38 difference from the full amount of $20.00 is the sum of the 51 rows missing relative to 744 and the fraction in the first row.

For the Pro+ and Pro Max users in the table, I tracked all snapshots from 8/1 to 8/28. In the CUR for days before the billing start, there were no rows for Pro, the lower plan. Both users were billed on their respective plans from the time of activation.

Upgrading Users Enrolled Since the Start of the Month

First, the case of upgrading a user who has been enrolled since the start of the month to a higher plan. Using the daily snapshots for July, I compared the day before and the day after the change.

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

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

The 744 rows for the pre-change plan disappeared, and 744 rows for the post-change plan were listed over the same 7/1–7/31 period. The entire period was rewritten; it is not a form where the difference from the change date onward is added. There were five changes of this type in July, and in all of them the billing start time remained 2026-07-01T00:00:00Z, with only the amounts changing.

Upgrading Users Activated Mid-Month

Next, the case where a user who activated a subscription mid-month is upgraded to a higher plan in the same month. I lined up the same user's rows in the daily snapshots from 7/25 to 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 began being billed on Pro from 2026-07-25T11:00:00Z. Before the change, it was a pro-rated charge of 157 rows totaling $4.22. This pro-rating continued through the 7/30 CUR, and in the 7/31 CUR the 157 Pro rows disappeared and 744 Pro Max rows were listed from 2026-07-01T00:00:00Z. After the change, the billing start went back from the time the subscription was activated to the start of the month. The original Pro was a pro-rated charge for 157 hours, but the July charge became the full Pro Max monthly fee of $100.00.

Even though it became the full amount, the total July bill was lower than if the user had stayed on Pro. This user consumed 5,283 credits in July. The credits included in each plan are 1,000 for Pro and 5,000 for Pro Max, and overage is $0.04 per credit. The final July figure was $111.32: the Pro Max flat fee of $100.00 plus $11.32 in overage. Had the user stayed on Pro, the overage would have been for 4,283 credits, and together with the pro-rated $4.22 it would have come to $175.54. The flat fee increases by $95.78, but the overage charge decreases by $160.00.

Downgrades and Cancellations

I also confirmed downgrades and cancellations with daily snapshots.

example-user-4
  7月最終    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
  7月最終    Pro Max  2026-07-01T00:00:00Z 〜 2026-07-31T23:00:00Z rows=744 $100.00
  8月        行なし(8/1〜8/28の全スナップショット)

example-user-4 was billed at the full Pro+ amount in July. The lower plan, Pro, was billed from 2026-08-01T00:00:00Z. A downgrade does not reduce the current month's bill and is applied from the following month.

example-user-1 is the user from the previous section who activated a subscription mid-month and changed to Pro Max. The user then canceled. The July charge stayed at the full Pro Max amount, and no rows existed in the August CUR. The cancellation procedure is covered in a separate article.

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

Summary

I confirmed that, for both the individual Kiro Pro and Kiro Enterprise, the first month's subscription fee is pro-rated according to the hours from the activation time to the end of the month.

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

I also confirmed that an upgrade to a higher plan does not add the difference from the change date onward; instead, the entire month is recalculated retroactively to the start of the month at the post-change plan's price.

A user who activated a Kiro subscription mid-month and was using it at a pro-rated fee will be charged the full amount of the post-change plan after a plan change. However, if the user is consuming credits beyond the break-even point introduced in a previous article, cost optimization can still be expected even at the full amount. For this user as well, the decrease in overage charges exceeded the increase in the flat fee.

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

For users expected to use far more than the credits included in Pro in the same month, consider also trying the approach of choosing Pro+ or a higher plan at the time you activate the subscription.

Share this article

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