# Pricing Model

Choose the right AWS Marketplace pricing model before you build your listing.

---

## Overview

Your pricing model determines how AWS bills your buyers, how revenue is recognized, and what flexibility buyers have after purchasing. It's also one of the few decisions that can't be easily changed later.

AWS Marketplace supports several SaaS pricing models, plus different options for Professional Services, AMI, and container products. You can choose only one pricing model for each of your SaaS [product listing](/aws-marketplace/list-product).

:::warning

- You can't change your pricing model after publishing your listing to Limited. If you later decide you chose the wrong model, you'll need to create a new listing and migrate future transactions to it. Take the time to choose carefully before submitting your listing.
  :::

## SaaS Pricing Models

AWS supports four pricing models for SaaS products:

| Pricing model               | Best for                    | Buyer commitment                     |
| :-------------------------- | :-------------------------- | :----------------------------------- |
| Subscription                | Usage-based products        | None                                 |
| Contract                    | Seat-based or tiered products | Fixed-term commitment              |
| Contract with subscription  | Commitment plus overages    | Fixed commitment plus metered usage  |
| Free                        | Freemium or open-source products | None                            |

### Subscription (Pay-As-You-Go)

Buyers pay for what they use each month, with no commitment and no upfront cost. You, as the ISV/Seller, are billed based on the metering records you send to AWS Marketplace. All charges must be measured and reported every hour from the software deployed in the buyer's account. Usage is calculated and billed monthly, using the same mechanism as AMI-based AWS Marketplace offerings.

You define what you're charging for using pricing dimensions, such as GB of data processed, API calls, active users, or compute hours. Your application reports usage to AWS so AWS can calculate charges.

For example, imagine you sell a log monitoring platform and charge $0.10 per GB of logs ingested. A customer who ingests 500 GB in January is billed $50; if they ingest 1,200 GB in February, they're billed $120. The bill changes based on actual consumption.

An example of a Subscription pricing model is shown below:

| Dimension API Name | Dimension Description                | Price per Dimension |
| :----------------- | :----------------------------------- | :------------------ |
| compute_service    | 2 CPU, 8GB RAM per hour as one unit  | $0.1                |
| storage_service    | 1GB per hour as one unit             | $0.04               |
| network_volume     | 1GB as one unit                      | $0.2                |

:::info

- **Good fit if** your product's value scales with usage, and buyers prefer flexibility over cost predictability.
  :::

:::danger

- A buyer can cancel their subscription to your SaaS subscription product at any time, with no commitment or cancellation restriction. The moment they cancel, you have exactly one hour to report their final usage. After that, AWS stops accepting records for that customer and billing ends.
- If a buyer indicates that they want to cancel through your product, direct the buyer to AWS Marketplace. To guarantee there will be no future charges, buyers should confirm the cancellation with AWS Marketplace.
  :::

_To learn more, see [Pricing for SaaS subscriptions](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-subscriptions.html)._

### Contract (Upfront Commitment)

Buyers commit to a fixed quantity for a set period (1, 2, or 3 years) and pay upfront or in installments. The buyer initiates a purchase of your software and enters into an agreement with you, which entitles them to a specified quantity of use of your SaaS product. There is no usage metering — AWS validates that the customer has an active entitlement, and your application grants access accordingly.

AWS Marketplace bills your buyers upfront or by the payment schedule that you define, based on the contract between you and your buyers. You may define several plans with multiple billing terms, and buyers select one during procurement. Buyers can also change plans within the contract term.

For example, imagine you sell a project management platform with three plans: `Basic` (up to 25 users) for $2,000/year, `Professional` (up to 100 users) for $6,000/year, and `Enterprise` (unlimited users) for $15,000/year. A buyer who selects `Professional` commits to a one-year agreement worth $6,000. Depending on how the offer is structured, AWS can collect the full amount upfront or through scheduled payments.

An example of a Contract pricing model is shown below:

| Contract API Name    | Dimension Description                            | Billing Term | Price per Contract Term |
| :------------------- | :---------------------------------------------- | :----------- | :---------------------- |
| data_service         | process & storage streaming data                | 1 Month      | $2,000                  |
| premium_data_service | Premium plan to process & storage streaming data | 1 Month     | $4,000                  |
| data_service         | process & storage streaming data                | 6 Months     | $10,000                 |
| data_service         | process & storage streaming data                | 12 Months    | $18,000                 |

Buyers on a Contract can:

- ✅ Upgrade to a larger commitment during the term
- ✅ Purchase additional capacity
- ❌ Cancel or downgrade mid-term
- ✅ Renew or change plans at the end of the contract

:::info

- **Good fit if** your buyers want budget certainty and your product has clear tiers or seat-based pricing.
  :::

_To learn more, see [Pricing for SaaS contracts on AWS](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-contracts.html)._

### Contract with Subscription (Combined)

Based on the SaaS contract pricing model, for each pricing dimension in your contract you can let customers pay as they go for additional usage above their contract. You can also add dimensions without contract prices that customers only consume by paying as they go. Buyers commit to a baseline amount, then pay for usage beyond that commitment.

For example, imagine you sell a data pipeline tool. A buyer commits to a contract that covers 1 TB of data processed per month — that's their prepaid commitment, and they pay for it upfront. In a month where they process 1.4 TB, the extra 0.4 TB is billed at a metered per-GB rate on top of their contract. Suger tracks usage against the committed amount automatically: it consumes the prepaid commitment first, then only reports the true overage to AWS for billing, so the buyer is only charged extra when they actually exceed their commitment.

:::info

- **Good fit if** your buyers want a predictable baseline cost but their usage genuinely varies month to month.
  :::

:::danger

- For Contract or Combined pricing, buyers can upgrade a contract to one of a higher value (for example, higher quantities or higher-value entitlements) except for longer durations. Buyers are given a prorated credit for their existing contract. Buyers can't decrease the size of their existing contract — they can only decrease the size at renewal, or cancel their renewal.
  :::

_To learn more, see [Pricing for SaaS contracts on AWS](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-contracts.html)._

### Free

Buyers use your product at no cost. Your product is listed in AWS Marketplace and buyers can subscribe normally, but all pricing dimensions are set to $0.00. AWS tracks subscriptions and entitlements, but no revenue is collected through the marketplace.

:::info

- **Good fit if** you're listing a freemium tier, open-source tool, or developer product where you want marketplace distribution without charging through AWS.
  :::

_To learn more, see [SaaS product pricing in AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-pricing-models.html)._

## Professional Services Pricing

Professional Services products use a different pricing structure than software listings. Instead of usage dimensions, you create **service packages**, such as:

- 50-hour implementation package
- Security assessment engagement
- Premium onboarding package
- Gold support package

Professional Services transactions are completed through private offers. You can also configure **variable payment schedules**, allowing buyers to agree on a total contract value upfront and pay against project milestones over time. This works particularly well for consulting, implementation, migration, and advisory services.

To learn more, see [Professional services products on AWS](https://docs.aws.amazon.com/marketplace/latest/userguide/proserv-variable-payments.html).

## AMI and Container Pricing Models

AMI and container products use a different set of pricing options, since buyers run the software themselves inside their own AWS accounts.

To learn more, see:

- [AMI product pricing on AWS](https://docs.aws.amazon.com/marketplace/latest/userguide/pricing-ami-products.html)
- [Container products pricing on AWS](https://docs.aws.amazon.com/marketplace/latest/userguide/pricing-container-products.html)

## Pricing Best Practices

Before publishing your SaaS listing, think about how you'll sell your product over time, not just today.

### If You Only Plan to Sell Through Private Offers

You still need to configure public pricing. AWS requires every SaaS listing to include at least one pricing dimension priced above **$0.00**, and buyers must be able to subscribe using your public listing. Pricing dimensions can't be limited to private offers only.

If you don't want buyers purchasing at your public rate, a common seller practice is to set a high placeholder price (for example, **$100,000/year**) and include your contact information in the product description so buyers know to request a private offer instead. When a buyer accepts a private offer, AWS bills them using the negotiated private offer price, not the public price.

### Add Placeholder Usage Dimensions Before Publishing

If you're creating a Contract or Contract with subscription listing, add any usage dimensions you might need later before publishing, even if you initially price them at **$0.01**.

AWS locks your pricing dimensions after the listing is published. Adding placeholder dimensions now gives you the flexibility to bill for future overages, custom usage, or one-off charges through private offers without creating a new listing. For example, if you publish a usage dimension at **$0.01**, you can later charge any amount by adjusting the quantity reported to AWS. Without that placeholder dimension, you'd need to publish an entirely new listing to introduce that billing option.

## What's Next

Once you've chosen your pricing model, you're ready to prepare your product listing. See [Create and publish an AWS Marketplace listing](/aws-marketplace/list-product).
