Working with deal sizing insights
What is Deal Sizing?
Deal Sizing is a capability within the APN Customer Engagements (ACE) Opportunities in AWS Partner Central that uses AI to provide automated deal size estimates and AWS service recommendations when Partners create or update opportunities.
AI forecasted MRR estimates
Deal sizing insights provide the median of the forecasted monthly recurring revenue (MRR) ranges based on Partners' historical AWS opportunities, use cases, and business descriptions. Partners should review and update the total MRR as Partners gather more information about the deal and progress through the sales cycle.
AI-Recommended AWS Products
AI-recommended products are identified based on customer business problem descriptions and opportunity details. The AI recommends relevant AWS products aligned with technical requirements and use cases. Partners should review these suggestions and customize the product selection to match the customer's specific needs.
Enhanced Insights with Pricing Calculator URLs
Partners can also import AWS Pricing Calculator URLs to automatically populate service selections and receive enhanced insights including Migration Acceleration Program (MAP) eligibility indicators, optimization recommendations, and potential cost savings analysis.
Understanding Source-Separated Data
Deal Sizing provides insights from two separate sources to give you comprehensive visibility into opportunity value:
-
AWS Source: AI-recommended products based on patterns from similar historical opportunities
-
Partner Source: Your own estimates imported from AWS Pricing Calculator
Handling Variance Between Sources
When partner-provided estimates differ significantly from AWS recommendations, Partners should:
-
Review opportunity details to ensure all relevant information is captured
-
Verify Pricing Calculator URL configurations match actual requirements
-
Consider AWS recommendations as data points informed by similar historical opportunities
-
Make informed decisions based on specific customer context and requirements
Accessing Deal Sizing Insights
Partners access Deal Sizing data through the GetAwsOpportunitySummary API action, which returns an extended AwsOpportunitySummary object containing deal sizing forecasts, product recommendations, and optimization insights.
When Deal Sizing Data Becomes Available
Deal Sizing insights become available after an opportunity is created with sufficient customer and project details. The system analyzes the opportunity attributes and generates:
-
AI forecasted MRR: Automatically calculated based on opportunity characteristics
-
AWS product recommendations: Services relevant to the customer's business problem and technical requirements
-
Enhanced insights (when Pricing Calculator URL provided): MAP eligibility, optimization recommendations, and cost savings analysis
Note
Deal Sizing insights are not available for all opportunities. Eligibility depends on factors such as partner history and the completeness of opportunity details provided.
Providing Deal Sizing Inputs
Partners provide inputs for Deal Sizing through the CreateOpportunity and UpdateOpportunity API actions. The system uses opportunity attributes to generate recommendations.
Providing Manual MRR Estimates
Partners can manually enter MRR estimates using the Project.ExpectedCustomerSpend[].Amount field:
{ "Project": { "ExpectedCustomerSpend": [ { "Amount": "25000.00", "CurrencyCode": "USD", "Frequency": "Monthly", "TargetCompany": "AWS" } ] } }
This field is available to all Partners and can be used to accept AI forecasts by setting the same value or to override with Partner-provided values.
Providing Pricing Calculator URLs
Partners can optionally provide AWS Pricing Calculator URLs via the Project.ExpectedCustomerSpend[].EstimationUrl field to automatically import service configurations and receive enhanced insights including MAP eligibility indicators, optimization recommendations, and cost savings analysis.
{ "Project": { "ExpectedCustomerSpend": [ { "Amount": null, "CurrencyCode": "USD", "EstimationUrl": "https://calculator.aws/#/estimate?id=abc123", "Frequency": "Monthly", "TargetCompany": "AWS" } ] } }
When a valid Pricing Calculator URL is provided, the system automatically calculates the MRR amount from the calculator configuration and populates both the Amount field and detailed product-level spend data in the Partner source of AwsProductsSpendInsightsBySource. Partners should set Amount to null when supplying an EstimationUrl - the system will calculate it automatically.
URLs in invalid formats and URLs that cannot be resolved will be rejected with a ValidationException.
How Amount and EstimationUrl Work Together
You have flexibility in how you provide monthly recurring revenue (MRR) estimates for opportunities. The API intelligently handles various combinations of manual amounts and AWS Pricing Calculator URLs to ensure that your opportunities can always be created successfully.
Using only a manual amount
When you provide only the Amount field, the API saves your manual estimate and sets EstimationUrl to null. This approach is useful when you have a specific MRR estimate from customer conversations or your own calculations.
Example request:
{ "Project": { "ExpectedCustomerSpend": [{ "Amount": "25000.00", "CurrencyCode": "USD", "Frequency": "Monthly", "TargetCompany": "AWS" }] } }
Using only an AWS Pricing Calculator URL
When you provide only the EstimationUrl field:
-
Valid URL – The API calculates the MRR amount from your calculator configuration and saves both the URL and calculated amount.
-
Invalid URL – The API returns a ValidationException with details about why the URL is invalid.
Example request:
{ "Project": { "ExpectedCustomerSpend": [{ "EstimationUrl": "https://calculator.aws/#/estimate?id=abc123", "CurrencyCode": "USD", "Frequency": "Monthly", "TargetCompany": "AWS" }] } }
Example error response (invalid URL):
{ "ErrorList": [{ "Code": "INVALID_VALUE", "FieldName": "project.expectedCustomerSpend.estimationUrl", "Message": "Invalid Estimation URL: https://calculator.aws/#/estimate?id=invalid" }], "Message": "The provided Estimation URL is invalid", "Reason": "INVALID_VALUE" }
Providing both Amount and EstimationUrl
When you provide both fields, the API prioritizes ensuring that your opportunity is created successfully:
-
If both values are unchanged – no update is performed on these fields
-
URL is invalid – The API saves your provided Amount and sets EstimationUrl to null, allowing your opportunity creation to proceed.
-
URL is valid and calculated amount matches your provided Amount – Both values are saved.
-
URL is valid but calculated amount doesn't match your provided Amount – The API saves your provided Amount and sets EstimationUrl to null without returning an error.
Note
When both values don't match existing ones, the API first attempts to calculate the amount from the URL. Your manually provided Amount always takes precedence when there's a mismatch or validation issue.
Key benefit: Invalid URLs never block opportunity creation
This approach ensures that invalid or inaccessible AWS Pricing Calculator URLs never prevent you from creating or updating opportunities. Your manually provided Amount always takes precedence when there's a conflict or validation issue, giving you full control over your opportunity data.
Understanding the Extended AwsOpportunitySummary Data Model
This section describes the response structure returned by the GetAwsOpportunitySummary API action.
Note
AI-forecasted MRR is returned in Project.ExpectedCustomerSpend[].Amount
The GetAwsOpportunitySummary API action returns deal sizing insights through the new Insights.AwsProductsSpendInsightsBySource structure that provides comprehensive spend analysis with source attribution.
Source Separation: AWS vs Partner Data
Deal Sizing separates insights by source to provide transparency and prevent double-counting:
-
AWS Source: AI product recommendations from AWS
-
Partner Source: Spend data and product details imported from partner-provided Pricing Calculator URLs
This separation enables Partners to:
-
Compare their estimates against AWS recommendations
-
Validate their sizing assumptions
-
Avoid inflating totals by accidentally combining both sources
-
Maintain visibility into data provenance
Structure Overview
{ "Insights": { "AwsProductsSpendInsightsBySource": { "<AWS | Partner>": { "CurrencyCode": "string", "Frequency": "string", "TotalAmount": "string", "TotalOptimizedAmount": "string", "TotalPotentialSavingsAmount": "string", "TotalAmountByCategory": { }, "AwsProducts": [ ] } } }, "Project": { "ExpectedCustomerSpend": [ ] }, "RelatedEntityIds": { "AwsProducts": [ ] } }
Field Reference
AwsProductsSpendInsightsBySource Map
Source-separated spend insights that provide independent analysis for AWS recommendations and partner estimates.
The Insights.AwsProductsSpendInsightsBySource field is a map containing up to two keys:
| Key | Type | Description |
|---|---|---|
| AWS | AwsProductsSpendInsights | AI-generated insights including recommended products from AWS |
| Partner | AwsProductsSpendInsights | Partner-sourced insights derived from Pricing Calculator URLs including detailed service costs and optimizations |
Note
Only sources with available data are included in the response. New opportunities typically start with only the AWS source populated.
AwsProductInsights Object
Comprehensive spend analysis for a single source (AWS or Partner) including total amounts, optimization savings, program category breakdowns, and detailed product-level insights.
Each source object contains the following fields:
| Field | Type | Description |
|---|---|---|
| CurrencyCode | string | ISO 4217 currency code. Currently only "USD" is supported |
| Frequency | string | Indicates how frequently the customer is expected to spend the projected amount. Only the value Monthly is allowed for the Frequency field, representing recurring monthly spend. |
| TotalAmount | string | Total estimated spend for this source before optimizations |
| TotalOptimizedAmount | string | Total estimated spend after applying recommended optimizations |
| TotalPotentialSavingsAmount | string | Quantified savings achievable through implementing optimizations |
| TotalAmountByCategory | object | Spend amounts mapped to AWS programs and modernization pathways |
| AwsProducts | array | Product-level details including costs and optimization recommendations |
Current State Limitation: For the AWS source, TotalAmount, TotalOptimizedAmount, and TotalPotentialSavingsAmount may be omitted when per-product spend recommendations are not available. Partners should reference Project.ExpectedCustomerSpend[].Amount for the total AWS MRR estimate in these cases.
TotalAmountByCategory Object
Maps spend amounts to AWS programs and strategic initiatives:
| Category Key | Description |
|---|---|
| MAP Eligible | Spend on services eligible for Migration Acceleration Program funding |
| CAT Eligible | Services supporting cost allocation and tracking |
| Pathway - Move to Cloud Native | Services aligned with cloud-native modernization |
| Pathway - Move to Managed Services | Services supporting managed service adoption |
| Pathway - Move to Open Source | Open source service alternatives |
| Pathway - Move to Containers | Container-based service options |
| Pathway - Move to Serverless | Serverless computing services |
| Pathway - Move to Databases | Database modernization services |
| Pathway - Move to Analytics | Analytics and data processing services |
Note
Total category amounts may exceed TotalAmount because individual products can belong to multiple categories.
AwsProducts Array
List of AWS services with program eligibility indicators (MAP, modernization pathways), cost estimates, and optimization recommendations.
Each product object contains:
| Field | Type | Required | Description |
|---|---|---|---|
| ProductCode | string | Yes | AWS Partner Central product identifier used for opportunity association |
| ServiceCode | string | No | Pricing Calculator service code (links to original calculator URL) |
| Categories | array | Yes | List of program and pathway categories this product is eligible for |
| Amount | string | No | Baseline service cost before optimizations (may be null for AWS-sourced recommendations) |
| OptimizedAmount | string | No | Service cost after applying optimizations (may be null for AWS-sourced recommendations) |
| PotentialSavingsAmount | string | No | Service-specific cost reduction through optimizations (may be null for AWS-sourced recommendations) |
| Optimizations | array | No | List of specific optimization recommendations for this product |
Null Handling: For AWS-sourced products, Amount, OptimizedAmount, and PotentialSavingsAmount fields may be null when per-product spend recommendations are not available. The system provides total MRR via Project.ExpectedCustomerSpend[0].Amount instead.
Optimization Object
Each optimization recommendation contains:
| Field | Type | Description |
|---|---|---|
| Description | string | Human-readable explanation of the optimization strategy |
| SavingsAmount | string | Quantified cost savings achievable by implementing this optimization |
Examples
Example 1: AWS recommendations Only (Current State)
This example shows the typical response when only AI recommendations are available and per-product spend amounts cannot yet be recommended.
{ "Catalog": "AWS", "Insights": { "AwsProductsSpendInsightsBySource": { "AWS": { "CurrencyCode": "USD", "Frequency": "Monthly", "AwsProducts": [ { "ProductCode": "AmazonEC2", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] }, { "ProductCode": "AWSLambda", "Categories": ["Cost Allocation Tagging", "Pathway - Move to Cloud Native"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] }, { "ProductCode": "AmazonRDS", "Categories": ["MAP Eligible", "Cost Allocation Tagging", "Pathway - Move to Managed Services"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] } ] } } }, "Project": { "ExpectedCustomerSpend": [ { "Amount": "28000.00", "CurrencyCode": "USD", "EstimationUrl": null, "Frequency": "Monthly", "TargetCompany": "AWS" } ] }, "RelatedEntityIds": { "AwsProducts": [ "AmazonEC2", "AWSLambda", "AmazonRDS" ] } }
Key Points: AWS source shows recommended products with categories but no per-product amounts. Total MRR estimate available via Project.ExpectedCustomerSpend[].Amount.
Example 2: Partner Pricing Calculator Import
This example shows enhanced insights when a partner has provided a valid Pricing Calculator URL.
{ "Catalog": "AWS", "Insights": { "AwsProductsSpendInsightsBySource": { "Partner": { "CurrencyCode": "USD", "Frequency": "Monthly", "TotalAmount": "32500.00", "TotalOptimizedAmount": "30000.00", "TotalPotentialSavingsAmount": "2500.00", "TotalAmountByCategory": { "MAP Eligible": "22500.00", "Cost Allocation Tagging": "32500.00", "Pathway - Move to Cloud Native": "5000.00", "Pathway - Move to Managed Services": "7500.00" }, "AwsProducts": [ { "ServiceCode": "ec2", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": "15000.00", "OptimizedAmount": "13500.00", "PotentialSavingsAmount": "1500.00", "Optimizations": [ { "Description": "Convert to 3-year reserved instances", "SavingsAmount": "1000.00" }, { "Description": "Migrate to Graviton-based instances", "SavingsAmount": "500.00" } ] }, { "ServiceCode": "lambda", "Categories": ["Cost Allocation Tagging", "Pathway - Move to Cloud Native"], "Amount": "5000.00", "OptimizedAmount": "5000.00", "PotentialSavingsAmount": "0.00", "Optimizations": [] }, { "ServiceCode": "AmazonRDS", "Categories": ["MAP Eligible", "Cost Allocation Tagging", "Pathway - Move to Managed Services"], "Amount": "7500.00", "OptimizedAmount": "6500.00", "PotentialSavingsAmount": "1000.00", "Optimizations": [ { "Description": "Optimize Multi-AZ for dev/test environments", "SavingsAmount": "1000.00" } ] }, { "ServiceCode": "AmazonS3", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": "5000.00", "OptimizedAmount": "5000.00", "PotentialSavingsAmount": "0.00", "Optimizations": [] } ] } } }, "Project": { "ExpectedCustomerSpend": [ { "Amount": "32500.00", "CurrencyCode": "USD", "EstimationUrl": "https://calculator.aws/#/estimate?id=abc123", "Frequency": "Monthly", "TargetCompany": "AWS" } ] }, "RelatedEntityIds": { "AwsProducts": [] } }
Key Points: Partner source contains complete spend details with per-product amounts. Optimization recommendations provide actionable cost reduction strategies. Category breakdowns show MAP eligibility ($22,500 of $32,500 total). Products include ServiceCode linking back to Pricing Calculator configuration.
Example 3: Both Sources Present (Comparison Scenario)
This example demonstrates how both AWS recommendations and partner estimates appear together, enabling comparison.
{ "Catalog": "AWS", "Insights": { "AwsProductsSpendInsightsBySource": { "AWS": { "CurrencyCode": "USD", "Frequency": "Monthly", "AwsProducts": [ { "ProductCode": "AmazonEC2", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] }, { "ProductCode": "AWSLambda", "Categories": ["Cost Allocation Tagging", "Pathway - Move to Cloud Native"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] }, { "ProductCode": "EBS", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] }, { "ProductCode": "RDS", "Categories": ["MAP Eligible", "Cost Allocation Tagging", "Pathway - Move to Managed Services"], "Amount": null, "OptimizedAmount": null, "PotentialSavingsAmount": null, "Optimizations": [] } ] }, "Partner": { "CurrencyCode": "USD", "Frequency": "Monthly", "TotalAmount": "32500.00", "TotalOptimizedAmount": "30000.00", "TotalPotentialSavingsAmount": "2500.00", "TotalAmountByCategory": { "MAP Eligible": "22500.00", "Cost Allocation Tagging": "32500.00", "Pathway - Move to Cloud Native": "5000.00", "Pathway - Move to Managed Services": "7500.00" }, "AwsProducts": [ { "ServiceCode": "ec2", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": "15000.00", "OptimizedAmount": "13500.00", "PotentialSavingsAmount": "1500.00", "Optimizations": [ { "Description": "Convert to 3-year reserved instances", "SavingsAmount": "1000.00" } ] }, { "ServiceCode": "lambda", "Categories": ["Cost Allocation Tagging", "Pathway - Move to Cloud Native"], "Amount": "5000.00", "OptimizedAmount": "5000.00", "PotentialSavingsAmount": "0.00", "Optimizations": [] }, { "ServiceCode": "amazonRDS", "Categories": ["MAP Eligible", "Cost Allocation Tagging", "Pathway - Move to Managed Services"], "Amount": "7500.00", "OptimizedAmount": "6500.00", "PotentialSavingsAmount": "1000.00", "Optimizations": [ { "Description": "Optimize Multi-AZ for dev/test environments", "SavingsAmount": "1000.00" } ] }, { "ServiceCode": "amazonS3", "Categories": ["MAP Eligible", "Cost Allocation Tagging"], "Amount": "5000.00", "OptimizedAmount": "5000.00", "PotentialSavingsAmount": "0.00", "Optimizations": [] } ] } } }, "Project": { "ExpectedCustomerSpend": [ { "Amount": "28000.00", "CurrencyCode": "USD", "EstimationUrl": "https://calculator.aws/#/estimate?id=abc123", "Frequency": "Monthly", "TargetCompany": "AWS" } ] }, "RelatedEntityIds": { "AwsProducts": [ "AmazonEC2", "AWSLambda", "EBS", "RDS" ] } }
Key Points: Both sources present: AWS recommendations ($28K total) and Partner calculator ($32.5K total). AWS recommendations show 4 products; Partner calculator shows 4 products (3 overlapping). Partners can compare AWS recommendations against their detailed estimates. AWS total available via Project.ExpectedCustomerSpend[].Amount.
Best Practices
Handling Null Values
-
EstimationUrl Field: Expect EstimationUrl to be null for most Partners. This is standard behavior and should not be treated as an error. Display manual MRR entry options as the primary path.
-
Missing Categories: If TotalAmountByCategory is not present for the AWS source, this indicates per-product recommendations are not available. Category breakdowns are available for Partner-sourced data when Pricing Calculator URLs are provided.
Optimization Recommendations
-
Display Actionable Insights: Show optimization descriptions and savings amounts prominently to help Partners understand cost reduction opportunities.
-
Aggregate Savings: Sum PotentialSavingsAmount across products to show total optimization potential.
-
Prioritize by Impact: Sort optimizations by SavingsAmount to help Partners focus on highest-impact recommendations.
Monitoring for Updates
-
Poll Periodically: Poll
GetAwsOpportunitySummaryperiodically (recommended: every 5 minutes) during opportunity creation workflows. -
Handle Async Generation: Deal Sizing insights may not be immediately available after opportunity creation. Implement appropriate loading states and retry logic.
API Integration Patterns
-
Leverage Existing Integrations: Partners already calling
GetAwsOpportunitySummaryonly need to consume additional fields in the response—no new API calls required. -
Graceful Degradation: Design UIs to handle scenarios where Deal Sizing data is not yet available or incomplete.
Data Quality and Accuracy
-
Validate Pricing Calculator URLs: Ensure URLs are valid before submission to avoid null EstimationUrl responses.
-
Provide Rich Opportunity Details: More complete opportunity information (customer details, project description, technical requirements) yields more accurate AI recommendations.
-
Review Variance: When partner estimates differ significantly from AWS recommendations, review opportunity details to ensure all relevant context is captured.