> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloud KMS costs

> Compare Cloud KMS backend choices using explicit service-adapter planning assumptions.

Tensor9 BYOC planning comparisons for `google::1.0.0::kms`, with backend choices shown together. Read [how Tensor9 estimates service-adapter costs](/byoc/costs/overview.md) for price scope and capacity qualification, or return to [additional services](/byoc/costs/additional-services.md).

## Google Cloud KMS → KMS Keys

Origin API: `google::1.0.0::kms`. Target backend: `aws::1.0.0::kms`.

**Designed mapping.** This cost model describes an intended adapter. Its estimated price does not establish a delivered or selectable backend.

### Google Cloud KMS · Native crypto operations

Estimated monthly service charges by Native crypto operations. Adapter hosting and Tensor9 fees are excluded. Source: us-central1; target: us-east-1; currency: USD.

![Google Cloud KMS · Native crypto operations: monthly service charges by Native crypto operations. Exact values are in the following table.](/images/diagrams/service-cost/e26e172c830c99718494569ae80cc1244589a55b9b711831c56a8e5dd255f920-light.svg)

![Google Cloud KMS · Native crypto operations: monthly service charges by Native crypto operations. Exact values are in the following table.](/images/diagrams/service-cost/7922e49c898bd9c3df1398cd7d8731c958ed5c8ec2cee0bf9212501fa5e173ca-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Native crypto operations (operations/s) | Cloud KMS | Target scenario | KMS Keys | Difference |
| -: | -: | - | -: | -: |
| 0 | 12 | KMS Keys (one staging copy) | 218.178 | 206.178 |
| 0 | 12 | KMS Keys (two staging copies) | 336.356 | 324.356 |
| 1 | 19.884 | KMS Keys (one staging copy) | 226.4562 | 206.5722 |
| 1 | 19.884 | KMS Keys (two staging copies) | 344.6342 | 324.7502 |
| 10 | 90.84 | KMS Keys (one staging copy) | 300.96 | 210.12 |
| 10 | 90.84 | KMS Keys (two staging copies) | 419.138 | 328.298 |
| 100 | 800.4 | KMS Keys (one staging copy) | 1045.998 | 245.598 |
| 100 | 800.4 | KMS Keys (two staging copies) | 1164.176 | 363.776 |
| 1000 | 7896 | KMS Keys (one staging copy) | 8496.378 | 600.378 |
| 1000 | 7896 | KMS Keys (two staging copies) | 8614.556 | 718.556 |
| 10000 | 78852 | KMS Keys (one staging copy) | 84517.848 | 5665.848 |
| 10000 | 78852 | KMS Keys (two staging copies) | 86153.696 | 7301.696 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 1 / 2 | 0.001904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 1 / 2 | 0.001904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 10 / 20 | 0.01904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 10 / 20 | 0.01904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 100 / 200 | 0.1904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 100 / 200 | 0.1904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 1000 / 2000 | 1.904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 1000 / 2000 | 1.904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / KMS Keys (one staging copy) | PlanningAssumption | 10000 / 20000 | 19.04761904761904761904761904761905 | 32 | 128 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / KMS Keys (two staging copies) | PlanningAssumption | 10000 / 20000 | 19.04761904761904761904761904761905 | 32 | 128 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| KMS Keys (one staging copy) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| KMS Keys (one staging copy) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| KMS Keys (one staging copy) | Target key versions per logical key | 2 | versions/key |
| KMS Keys (one staging copy) | Native crypto retry multiplier | 1.05 | multiplier |
| KMS Keys (one staging copy) | Durable key metadata and aliases | 16384 | bytes/key |
| KMS Keys (one staging copy) | Source billable versions per logical key | 2 | versions/key |
| KMS Keys (one staging copy) | Target price guess · read | 0 | USD/read |
| KMS Keys (one staging copy) | Target price guess · write | 0 | USD/write |
| KMS Keys (one staging copy) | Target list price · provider operation | 0.000003 | USD/provider operation |
| KMS Keys (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| KMS Keys (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| KMS Keys (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| KMS Keys (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| KMS Keys (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| KMS Keys (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| KMS Keys (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| KMS Keys (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| KMS Keys (one staging copy) | Target list price · resource-month | 1 | USD/resource-month |
| KMS Keys (one staging copy) | Target price guess · input token | 0 | USD/input token |
| KMS Keys (one staging copy) | Target price guess · output token | 0 | USD/output token |
| KMS Keys (one staging copy) | Target monthly base charge | 0 | USD/month |
| KMS Keys (one staging copy) | Approximate target service minimum | 0 | USD/month |
| KMS Keys (one staging copy) | Minimum primary CPU | 2 | vCPU |
| KMS Keys (one staging copy) | Minimum primary RAM | 8 | GiB |
| KMS Keys (one staging copy) | Minimum primary disk | 100 | GiB |
| KMS Keys (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| KMS Keys (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| KMS Keys (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| KMS Keys (one staging copy) | Planning peak / mean work | 2 | multiplier |
| KMS Keys (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| KMS Keys (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| KMS Keys (one staging copy) | Planning disk utilization | 0.8 | fraction |
| KMS Keys (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| KMS Keys (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| KMS Keys (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| KMS Keys (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| KMS Keys (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| KMS Keys (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| KMS Keys (two staging copies) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| KMS Keys (two staging copies) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| KMS Keys (two staging copies) | Target key versions per logical key | 2 | versions/key |
| KMS Keys (two staging copies) | Native crypto retry multiplier | 1.05 | multiplier |
| KMS Keys (two staging copies) | Durable key metadata and aliases | 16384 | bytes/key |
| KMS Keys (two staging copies) | Source billable versions per logical key | 2 | versions/key |
| KMS Keys (two staging copies) | Target price guess · read | 0 | USD/read |
| KMS Keys (two staging copies) | Target price guess · write | 0 | USD/write |
| KMS Keys (two staging copies) | Target list price · provider operation | 0.000003 | USD/provider operation |
| KMS Keys (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| KMS Keys (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| KMS Keys (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| KMS Keys (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| KMS Keys (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| KMS Keys (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| KMS Keys (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| KMS Keys (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| KMS Keys (two staging copies) | Target list price · resource-month | 1 | USD/resource-month |
| KMS Keys (two staging copies) | Target price guess · input token | 0 | USD/input token |
| KMS Keys (two staging copies) | Target price guess · output token | 0 | USD/output token |
| KMS Keys (two staging copies) | Target monthly base charge | 0 | USD/month |
| KMS Keys (two staging copies) | Approximate target service minimum | 0 | USD/month |
| KMS Keys (two staging copies) | Minimum primary CPU | 2 | vCPU |
| KMS Keys (two staging copies) | Minimum primary RAM | 8 | GiB |
| KMS Keys (two staging copies) | Minimum primary disk | 100 | GiB |
| KMS Keys (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| KMS Keys (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| KMS Keys (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| KMS Keys (two staging copies) | Planning peak / mean work | 2 | multiplier |
| KMS Keys (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| KMS Keys (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| KMS Keys (two staging copies) | Planning disk utilization | 0.8 | fraction |
| KMS Keys (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| KMS Keys (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| KMS Keys (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| KMS Keys (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| KMS Keys (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| KMS Keys (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Monthly operation quantity varies with this steady average rate; stored inventory and other meters retain their defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. us-central1 → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices. Retention, amplification, and capacity coefficients are authored planning guesses; they are editable, not measured capacity.
* Reverse-cloud KMS adapters are declared designs. One target crypto call per source crypto operation is an editable planning assumption, not delivery evidence.
* Do not apply AWS ReEncrypt amplification to an already-native Google Encrypt/Decrypt operation quantity.
* The monthly tariff is per customer managed key version. Normalize provider-version inventory by providerVersionsPerLogicalKey before pricing; AWS also bills each retained rotated version, which this logical-key normalization does not count. Retries and ReEncrypt work remain separate. The 20,000-request monthly free tier is not applied.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cloud KMS pricing: [https://cloud.google.com/kms/pricing](https://cloud.google.com/kms/pricing)
* AWS KMS price list (AWS Price List API): [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Free allowances, committed discounts, credits, taxes and negotiated rates.
* Commercial Tensor9 fees and operations labor unless entered separately.
* HSM, asymmetric signatures, EKM, custom key stores and premium key-custody arrangements.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-05b945f8fba1ae63639a0ea8f4ff9a8756c317f8` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [Cloud KMS pricing](https://cloud.google.com/kms/pricing), [AWS KMS price list (AWS Price List API)](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json).

### Google Cloud KMS · Billable source key versions

Estimated monthly service charges by Billable source key versions. Adapter hosting and Tensor9 fees are excluded. Source: us-central1; target: us-east-1; currency: USD.

![Google Cloud KMS · Billable source key versions: monthly service charges by Billable source key versions. Exact values are in the following table.](/images/diagrams/service-cost/6fcefb155f3bc987830f13514fe2820c820ba6fe0de83eb9e5c73a227770a695-light.svg)

![Google Cloud KMS · Billable source key versions: monthly service charges by Billable source key versions. Exact values are in the following table.](/images/diagrams/service-cost/fd8a7f3512b26446343b61e27b3c96f73e170c5a2e4fe27eb875f82a645a034f-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Billable source key versions (versions) | Cloud KMS | Target scenario | KMS Keys | Difference |
| -: | -: | - | -: | -: |
| 0 | 3 | KMS Keys (one staging copy) | 121.328 | 118.328 |
| 0 | 3 | KMS Keys (two staging copies) | 239.506 | 236.506 |
| 10 | 3.6 | KMS Keys (one staging copy) | 126.328 | 122.728 |
| 10 | 3.6 | KMS Keys (two staging copies) | 244.506 | 240.906 |
| 100 | 9 | KMS Keys (one staging copy) | 171.328 | 162.328 |
| 100 | 9 | KMS Keys (two staging copies) | 289.506 | 280.506 |
| 1000 | 63 | KMS Keys (one staging copy) | 621.328 | 558.328 |
| 1000 | 63 | KMS Keys (two staging copies) | 739.506 | 676.506 |
| 10000 | 603 | KMS Keys (one staging copy) | 5121.328 | 4518.328 |
| 10000 | 603 | KMS Keys (two staging copies) | 5239.506 | 4636.506 |
| 100000 | 6003 | KMS Keys (one staging copy) | 50121.328 | 44118.328 |
| 100000 | 6003 | KMS Keys (two staging copies) | 50239.506 | 44236.506 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.00762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.00762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 versions / KMS Keys (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 versions / KMS Keys (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| KMS Keys (one staging copy) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| KMS Keys (one staging copy) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| KMS Keys (one staging copy) | Target key versions per logical key | 2 | versions/key |
| KMS Keys (one staging copy) | Native crypto retry multiplier | 1.05 | multiplier |
| KMS Keys (one staging copy) | Durable key metadata and aliases | 16384 | bytes/key |
| KMS Keys (one staging copy) | Source billable versions per logical key | 2 | versions/key |
| KMS Keys (one staging copy) | Target price guess · read | 0 | USD/read |
| KMS Keys (one staging copy) | Target price guess · write | 0 | USD/write |
| KMS Keys (one staging copy) | Target list price · provider operation | 0.000003 | USD/provider operation |
| KMS Keys (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| KMS Keys (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| KMS Keys (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| KMS Keys (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| KMS Keys (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| KMS Keys (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| KMS Keys (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| KMS Keys (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| KMS Keys (one staging copy) | Target list price · resource-month | 1 | USD/resource-month |
| KMS Keys (one staging copy) | Target price guess · input token | 0 | USD/input token |
| KMS Keys (one staging copy) | Target price guess · output token | 0 | USD/output token |
| KMS Keys (one staging copy) | Target monthly base charge | 0 | USD/month |
| KMS Keys (one staging copy) | Approximate target service minimum | 0 | USD/month |
| KMS Keys (one staging copy) | Minimum primary CPU | 2 | vCPU |
| KMS Keys (one staging copy) | Minimum primary RAM | 8 | GiB |
| KMS Keys (one staging copy) | Minimum primary disk | 100 | GiB |
| KMS Keys (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| KMS Keys (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| KMS Keys (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| KMS Keys (one staging copy) | Planning peak / mean work | 2 | multiplier |
| KMS Keys (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| KMS Keys (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| KMS Keys (one staging copy) | Planning disk utilization | 0.8 | fraction |
| KMS Keys (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| KMS Keys (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| KMS Keys (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| KMS Keys (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| KMS Keys (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| KMS Keys (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| KMS Keys (two staging copies) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| KMS Keys (two staging copies) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| KMS Keys (two staging copies) | Target key versions per logical key | 2 | versions/key |
| KMS Keys (two staging copies) | Native crypto retry multiplier | 1.05 | multiplier |
| KMS Keys (two staging copies) | Durable key metadata and aliases | 16384 | bytes/key |
| KMS Keys (two staging copies) | Source billable versions per logical key | 2 | versions/key |
| KMS Keys (two staging copies) | Target price guess · read | 0 | USD/read |
| KMS Keys (two staging copies) | Target price guess · write | 0 | USD/write |
| KMS Keys (two staging copies) | Target list price · provider operation | 0.000003 | USD/provider operation |
| KMS Keys (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| KMS Keys (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| KMS Keys (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| KMS Keys (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| KMS Keys (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| KMS Keys (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| KMS Keys (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| KMS Keys (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| KMS Keys (two staging copies) | Target list price · resource-month | 1 | USD/resource-month |
| KMS Keys (two staging copies) | Target price guess · input token | 0 | USD/input token |
| KMS Keys (two staging copies) | Target price guess · output token | 0 | USD/output token |
| KMS Keys (two staging copies) | Target monthly base charge | 0 | USD/month |
| KMS Keys (two staging copies) | Approximate target service minimum | 0 | USD/month |
| KMS Keys (two staging copies) | Minimum primary CPU | 2 | vCPU |
| KMS Keys (two staging copies) | Minimum primary RAM | 8 | GiB |
| KMS Keys (two staging copies) | Minimum primary disk | 100 | GiB |
| KMS Keys (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| KMS Keys (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| KMS Keys (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| KMS Keys (two staging copies) | Planning peak / mean work | 2 | multiplier |
| KMS Keys (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| KMS Keys (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| KMS Keys (two staging copies) | Planning disk utilization | 0.8 | fraction |
| KMS Keys (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| KMS Keys (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| KMS Keys (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| KMS Keys (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| KMS Keys (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| KMS Keys (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Inventory varies independently of monthly reads and mutations. Retention remains an explicit planning assumption. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. us-central1 → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices. Retention, amplification, and capacity coefficients are authored planning guesses; they are editable, not measured capacity.
* Reverse-cloud KMS adapters are declared designs. One target crypto call per source crypto operation is an editable planning assumption, not delivery evidence.
* Do not apply AWS ReEncrypt amplification to an already-native Google Encrypt/Decrypt operation quantity.
* The monthly tariff is per customer managed key version. Normalize provider-version inventory by providerVersionsPerLogicalKey before pricing; AWS also bills each retained rotated version, which this logical-key normalization does not count. Retries and ReEncrypt work remain separate. The 20,000-request monthly free tier is not applied.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cloud KMS pricing: [https://cloud.google.com/kms/pricing](https://cloud.google.com/kms/pricing)
* AWS KMS price list (AWS Price List API): [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Free allowances, committed discounts, credits, taxes and negotiated rates.
* Commercial Tensor9 fees and operations labor unless entered separately.
* HSM, asymmetric signatures, EKM, custom key stores and premium key-custody arrangements.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-05b945f8fba1ae63639a0ea8f4ff9a8756c317f8` / `2026-10-22.planning.2`. Curve: `workload-2`.

Sources: [Cloud KMS pricing](https://cloud.google.com/kms/pricing), [AWS KMS price list (AWS Price List API)](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/awskms/current/us-east-1/index.json).

## Google Cloud KMS → Key Vault

Origin API: `google::1.0.0::kms`. Target backend: `azure::1.0.0::keyvault`.

**Designed mapping.** This cost model describes an intended adapter. Its estimated price does not establish a delivered or selectable backend.

### Google Cloud KMS · Native crypto operations

Estimated monthly service charges by Native crypto operations. Adapter hosting and Tensor9 fees are excluded. Source: us-central1; target: eastus; currency: USD.

![Google Cloud KMS · Native crypto operations: monthly service charges by Native crypto operations. Exact values are in the following table.](/images/diagrams/service-cost/6d9446b9f710c5e31bb1250fb9c7b4a8ac6dd295a0ef6f382671a3abc4372a78-light.svg)

![Google Cloud KMS · Native crypto operations: monthly service charges by Native crypto operations. Exact values are in the following table.](/images/diagrams/service-cost/a6ee6248fd0feadbbe045c22a6befed2ee4bc77d9b9a584df5dc9a1e277e638c-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Native crypto operations (operations/s) | Cloud KMS | Target scenario | Key Vault | Difference |
| -: | -: | - | -: | -: |
| 0 | 12 | Key Vault (one staging copy) | 118.178 | 106.178 |
| 0 | 12 | Key Vault (two staging copies) | 236.356 | 224.356 |
| 1 | 19.884 | Key Vault (one staging copy) | 126.4562 | 106.5722 |
| 1 | 19.884 | Key Vault (two staging copies) | 244.6342 | 224.7502 |
| 10 | 90.84 | Key Vault (one staging copy) | 200.96 | 110.12 |
| 10 | 90.84 | Key Vault (two staging copies) | 319.138 | 228.298 |
| 100 | 800.4 | Key Vault (one staging copy) | 945.998 | 145.598 |
| 100 | 800.4 | Key Vault (two staging copies) | 1064.176 | 263.776 |
| 1000 | 7896 | Key Vault (one staging copy) | 8396.378 | 500.378 |
| 1000 | 7896 | Key Vault (two staging copies) | 8514.556 | 618.556 |
| 10000 | 78852 | Key Vault (one staging copy) | 84417.848 | 5565.848 |
| 10000 | 78852 | Key Vault (two staging copies) | 86053.696 | 7201.696 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / Key Vault (one staging copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / Key Vault (two staging copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 operations/s / Key Vault (one staging copy) | PlanningAssumption | 1 / 2 | 0.001904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 operations/s / Key Vault (two staging copies) | PlanningAssumption | 1 / 2 | 0.001904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 operations/s / Key Vault (one staging copy) | PlanningAssumption | 10 / 20 | 0.01904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 operations/s / Key Vault (two staging copies) | PlanningAssumption | 10 / 20 | 0.01904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Key Vault (one staging copy) | PlanningAssumption | 100 / 200 | 0.1904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Key Vault (two staging copies) | PlanningAssumption | 100 / 200 | 0.1904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Key Vault (one staging copy) | PlanningAssumption | 1000 / 2000 | 1.904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Key Vault (two staging copies) | PlanningAssumption | 1000 / 2000 | 1.904761904761904761904761904761905 | 2 | 8 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Key Vault (one staging copy) | PlanningAssumption | 10000 / 20000 | 19.04761904761904761904761904761905 | 32 | 128 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Key Vault (two staging copies) | PlanningAssumption | 10000 / 20000 | 19.04761904761904761904761904761905 | 32 | 128 | 100 | 0.00152587890625 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Key Vault (one staging copy) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| Key Vault (one staging copy) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| Key Vault (one staging copy) | Target key versions per logical key | 2 | versions/key |
| Key Vault (one staging copy) | Native crypto retry multiplier | 1.05 | multiplier |
| Key Vault (one staging copy) | Durable key metadata and aliases | 16384 | bytes/key |
| Key Vault (one staging copy) | Source billable versions per logical key | 2 | versions/key |
| Key Vault (one staging copy) | Target price guess · read | 0 | USD/read |
| Key Vault (one staging copy) | Target price guess · write | 0 | USD/write |
| Key Vault (one staging copy) | Target list price · provider operation | 0.000003 | USD/provider operation |
| Key Vault (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Key Vault (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Key Vault (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Key Vault (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| Key Vault (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Key Vault (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Key Vault (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Key Vault (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Key Vault (one staging copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Key Vault (one staging copy) | Target price guess · input token | 0 | USD/input token |
| Key Vault (one staging copy) | Target price guess · output token | 0 | USD/output token |
| Key Vault (one staging copy) | Target monthly base charge | 0 | USD/month |
| Key Vault (one staging copy) | Approximate target service minimum | 0 | USD/month |
| Key Vault (one staging copy) | Minimum primary CPU | 2 | vCPU |
| Key Vault (one staging copy) | Minimum primary RAM | 8 | GiB |
| Key Vault (one staging copy) | Minimum primary disk | 100 | GiB |
| Key Vault (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Key Vault (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| Key Vault (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Key Vault (one staging copy) | Planning peak / mean work | 2 | multiplier |
| Key Vault (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| Key Vault (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| Key Vault (one staging copy) | Planning disk utilization | 0.8 | fraction |
| Key Vault (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| Key Vault (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Key Vault (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Key Vault (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Key Vault (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Key Vault (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Key Vault (two staging copies) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| Key Vault (two staging copies) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| Key Vault (two staging copies) | Target key versions per logical key | 2 | versions/key |
| Key Vault (two staging copies) | Native crypto retry multiplier | 1.05 | multiplier |
| Key Vault (two staging copies) | Durable key metadata and aliases | 16384 | bytes/key |
| Key Vault (two staging copies) | Source billable versions per logical key | 2 | versions/key |
| Key Vault (two staging copies) | Target price guess · read | 0 | USD/read |
| Key Vault (two staging copies) | Target price guess · write | 0 | USD/write |
| Key Vault (two staging copies) | Target list price · provider operation | 0.000003 | USD/provider operation |
| Key Vault (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Key Vault (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Key Vault (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Key Vault (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| Key Vault (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Key Vault (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Key Vault (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Key Vault (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Key Vault (two staging copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Key Vault (two staging copies) | Target price guess · input token | 0 | USD/input token |
| Key Vault (two staging copies) | Target price guess · output token | 0 | USD/output token |
| Key Vault (two staging copies) | Target monthly base charge | 0 | USD/month |
| Key Vault (two staging copies) | Approximate target service minimum | 0 | USD/month |
| Key Vault (two staging copies) | Minimum primary CPU | 2 | vCPU |
| Key Vault (two staging copies) | Minimum primary RAM | 8 | GiB |
| Key Vault (two staging copies) | Minimum primary disk | 100 | GiB |
| Key Vault (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Key Vault (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| Key Vault (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Key Vault (two staging copies) | Planning peak / mean work | 2 | multiplier |
| Key Vault (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| Key Vault (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| Key Vault (two staging copies) | Planning disk utilization | 0.8 | fraction |
| Key Vault (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| Key Vault (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Key Vault (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Key Vault (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Key Vault (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Key Vault (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Monthly operation quantity varies with this steady average rate; stored inventory and other meters retain their defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. us-central1 → eastus, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices. Retention, amplification, and capacity coefficients are authored planning guesses; they are editable, not measured capacity.
* Reverse-cloud KMS adapters are declared designs. One target crypto call per source crypto operation is an editable planning assumption, not delivery evidence.
* Do not apply AWS ReEncrypt amplification to an already-native Google Encrypt/Decrypt operation quantity.
* Key Vault crypto calls price managedOperations. Standard software-protected keys have no per-version storage meter; Premium HSM-protected keys list USD 1 per key-month and automated rotation 1 per rotation, neither selected.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cloud KMS pricing: [https://cloud.google.com/kms/pricing](https://cloud.google.com/kms/pricing)
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Free allowances, committed discounts, credits, taxes and negotiated rates.
* Commercial Tensor9 fees and operations labor unless entered separately.
* HSM, asymmetric signatures, EKM, custom key stores and premium key-custody arrangements.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6c772743bfd58d17017ae23a142e8485e4955715` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [Cloud KMS pricing](https://cloud.google.com/kms/pricing), [Azure Retail Prices API](https://prices.azure.com/api/retail/prices).

### Google Cloud KMS · Billable source key versions

Estimated monthly service charges by Billable source key versions. Adapter hosting and Tensor9 fees are excluded. Source: us-central1; target: eastus; currency: USD.

![Google Cloud KMS · Billable source key versions: monthly service charges by Billable source key versions. Exact values are in the following table.](/images/diagrams/service-cost/19e92214cda18eb933141d9e6cd79c775b3f748e292b63ce3fc0fe6403143232-light.svg)

![Google Cloud KMS · Billable source key versions: monthly service charges by Billable source key versions. Exact values are in the following table.](/images/diagrams/service-cost/9ed8883dde38bf6f9abf3f0f09359be48055507144759dcacbaee24e1d55c98d-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Billable source key versions (versions) | Cloud KMS | Target scenario | Key Vault | Difference |
| -: | -: | - | -: | -: |
| 0 | 3 | Key Vault (one staging copy) | 121.328 | 118.328 |
| 0 | 3 | Key Vault (two staging copies) | 239.506 | 236.506 |
| 10 | 3.6 | Key Vault (one staging copy) | 121.328 | 117.728 |
| 10 | 3.6 | Key Vault (two staging copies) | 239.506 | 235.906 |
| 100 | 9 | Key Vault (one staging copy) | 121.328 | 112.328 |
| 100 | 9 | Key Vault (two staging copies) | 239.506 | 230.506 |
| 1000 | 63 | Key Vault (one staging copy) | 121.328 | 58.328 |
| 1000 | 63 | Key Vault (two staging copies) | 239.506 | 176.506 |
| 10000 | 603 | Key Vault (one staging copy) | 121.328 | -481.672 |
| 10000 | 603 | Key Vault (two staging copies) | 239.506 | -363.494 |
| 100000 | 6003 | Key Vault (one staging copy) | 121.328 | -5881.672 |
| 100000 | 6003 | Key Vault (two staging copies) | 239.506 | -5763.494 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.000762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.00762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.00762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.0762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 versions / Key Vault (one staging copy) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 versions / Key Vault (two staging copies) | PlanningAssumption | 0.3805175038051750380517503805175038 / 0.7610350076103500761035007610350076 | 0.0007247952453431905486700007247952453 | 2 | 8 | 100 | 0.762939453125 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Key Vault (one staging copy) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| Key Vault (one staging copy) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| Key Vault (one staging copy) | Target key versions per logical key | 2 | versions/key |
| Key Vault (one staging copy) | Native crypto retry multiplier | 1.05 | multiplier |
| Key Vault (one staging copy) | Durable key metadata and aliases | 16384 | bytes/key |
| Key Vault (one staging copy) | Source billable versions per logical key | 2 | versions/key |
| Key Vault (one staging copy) | Target price guess · read | 0 | USD/read |
| Key Vault (one staging copy) | Target price guess · write | 0 | USD/write |
| Key Vault (one staging copy) | Target list price · provider operation | 0.000003 | USD/provider operation |
| Key Vault (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Key Vault (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Key Vault (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Key Vault (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| Key Vault (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Key Vault (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Key Vault (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Key Vault (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Key Vault (one staging copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Key Vault (one staging copy) | Target price guess · input token | 0 | USD/input token |
| Key Vault (one staging copy) | Target price guess · output token | 0 | USD/output token |
| Key Vault (one staging copy) | Target monthly base charge | 0 | USD/month |
| Key Vault (one staging copy) | Approximate target service minimum | 0 | USD/month |
| Key Vault (one staging copy) | Minimum primary CPU | 2 | vCPU |
| Key Vault (one staging copy) | Minimum primary RAM | 8 | GiB |
| Key Vault (one staging copy) | Minimum primary disk | 100 | GiB |
| Key Vault (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Key Vault (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| Key Vault (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Key Vault (one staging copy) | Planning peak / mean work | 2 | multiplier |
| Key Vault (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| Key Vault (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| Key Vault (one staging copy) | Planning disk utilization | 0.8 | fraction |
| Key Vault (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| Key Vault (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Key Vault (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Key Vault (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Key Vault (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Key Vault (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Key Vault (two staging copies) | Origin list price · Source billable key versions | 0.06 | USD/key-version-month |
| Key Vault (two staging copies) | Origin list price · Native symmetric crypto operations | 0.000003 | USD/operations |
| Key Vault (two staging copies) | Target key versions per logical key | 2 | versions/key |
| Key Vault (two staging copies) | Native crypto retry multiplier | 1.05 | multiplier |
| Key Vault (two staging copies) | Durable key metadata and aliases | 16384 | bytes/key |
| Key Vault (two staging copies) | Source billable versions per logical key | 2 | versions/key |
| Key Vault (two staging copies) | Target price guess · read | 0 | USD/read |
| Key Vault (two staging copies) | Target price guess · write | 0 | USD/write |
| Key Vault (two staging copies) | Target list price · provider operation | 0.000003 | USD/provider operation |
| Key Vault (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Key Vault (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Key Vault (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Key Vault (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| Key Vault (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Key Vault (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Key Vault (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Key Vault (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Key Vault (two staging copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Key Vault (two staging copies) | Target price guess · input token | 0 | USD/input token |
| Key Vault (two staging copies) | Target price guess · output token | 0 | USD/output token |
| Key Vault (two staging copies) | Target monthly base charge | 0 | USD/month |
| Key Vault (two staging copies) | Approximate target service minimum | 0 | USD/month |
| Key Vault (two staging copies) | Minimum primary CPU | 2 | vCPU |
| Key Vault (two staging copies) | Minimum primary RAM | 8 | GiB |
| Key Vault (two staging copies) | Minimum primary disk | 100 | GiB |
| Key Vault (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Key Vault (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| Key Vault (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Key Vault (two staging copies) | Planning peak / mean work | 2 | multiplier |
| Key Vault (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| Key Vault (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| Key Vault (two staging copies) | Planning disk utilization | 0.8 | fraction |
| Key Vault (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| Key Vault (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Key Vault (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Key Vault (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Key Vault (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Key Vault (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Inventory varies independently of monthly reads and mutations. Retention remains an explicit planning assumption. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. us-central1 → eastus, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices. Retention, amplification, and capacity coefficients are authored planning guesses; they are editable, not measured capacity.
* Reverse-cloud KMS adapters are declared designs. One target crypto call per source crypto operation is an editable planning assumption, not delivery evidence.
* Do not apply AWS ReEncrypt amplification to an already-native Google Encrypt/Decrypt operation quantity.
* Key Vault crypto calls price managedOperations. Standard software-protected keys have no per-version storage meter; Premium HSM-protected keys list USD 1 per key-month and automated rotation 1 per rotation, neither selected.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cloud KMS pricing: [https://cloud.google.com/kms/pricing](https://cloud.google.com/kms/pricing)
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Free allowances, committed discounts, credits, taxes and negotiated rates.
* Commercial Tensor9 fees and operations labor unless entered separately.
* HSM, asymmetric signatures, EKM, custom key stores and premium key-custody arrangements.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6c772743bfd58d17017ae23a142e8485e4955715` / `2026-10-22.planning.2`. Curve: `workload-2`.

Sources: [Cloud KMS pricing](https://cloud.google.com/kms/pricing), [Azure Retail Prices API](https://prices.azure.com/api/retail/prices).

See the [service catalog](/byoc/service-adapters/catalog.md) for operation coverage, supported directions and backend limitations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.