1{2 "_comment": "Tunable estimate-phase assumptions for the heroku-to-aws skill (the heuristic knobs an org adjusts, independent of the cost algorithm and the AWS rate table). AWS rates live in references/vendored/pricing/aws-infra-pricing.json; cost FORMULAS and tier/heuristic logic stay in estimate.md prose. Complexity-tier bands are NOT here (thresholds live in references/vendored/estimate/complexity-tiers.json; timelines are inline in estimate-cost-engine.md).",3 "log_volume_gb_per_service": {4 "_comment": "Per-service monthly CloudWatch log-volume heuristic, counted PER DESIGNED SERVICE (MSK is per broker). Used by the observability cost step. Heuristic because Heroku's logging model differs, so source billing doesn't apply.",5 "fargate_task": 3,6 "eb_environment": 3,7 "rds_or_aurora_instance": 1,
14 "_comment": "Estimated savings RANGES per post-migration optimization opportunity, shown beyond the Balanced on-demand baseline. Ranges only (the LLM emits the full optimization_opportunities[] entry, with descriptions/references, from estimate.md prose). target_services / timing gate which opportunities are relevant to the designed architecture and match the emitted entry field names.",
15 "compute_savings_plans": {
16 "savings_percent": "20-66%",
17 "target_services": [
18 "Fargate",
19 "Elastic Beanstalk"
20 ],
21 "timing": "Post-migration (after 30-90 day baseline)"
22 },
23 "database_savings_plans": {
24 "_comment": "target_services here is the FULL Database-SP-eligible list per references/vendored/estimate/ri-sp-eligibility.md. ElastiCache is included ONLY when the design's actual target engine is Valkey — Redis OSS/Memcached (heroku-to-aws's default Redis mapping) is Database-SP-ineligible and must fall through to elasticache_reserved_nodes below instead. DynamoDB provisioned is also RI-eligible (see dynamodb_reserved_capacity) and mutually exclusive with Database SP on the same capacity; DynamoDB on-demand is Database-SP-eligible only.",
25 "savings_percent": "up to 35% (serverless) / ~20% (provisioned)",
26 "target_services": [
27 "Aurora",
28 "RDS",
29 "DynamoDB",
30 "ElastiCache (Valkey only)"
31 ],
32 "timing": "Post-migration or after right-sizing"
43 "_comment": "DynamoDB reserved capacity is restricted to provisioned, Standard table class usage — explicitly NOT available for on-demand or Standard-IA tables (see ri-sp-eligibility.md). Mutually exclusive with Database Savings Plans on the same capacity.",
44 "savings_percent": "up to 54% (1-year) / up to 77% (3-year)",
45 "target_services": [
46 "DynamoDB (provisioned, Standard table class only)"
51 "_comment": "The commitment lever for ElastiCache when the target engine is Redis OSS or Memcached, which Database Savings Plans do not cover (Valkey-only). heroku-to-aws's default Heroku Redis mapping targets Redis OSS, so this is the applicable entry unless Design selected Valkey.",