What the ticket router costs
The router is a cheap system, but it has one cost the watcher in the last series didn’t: it reads every ticket with a model. That one small Bedrock Haiku 4.5 call per ticket is the only part of the bill that grows with volume. Everything else — the Lambdas, the queue, the rules lookup, the hand-off — is pennies. At typical SMB volume the bill is a few dollars a month, fixed cost essentially zero.
Key takeaways
- Around $3/month at typical SMB volume (around 1,500 tickets a month).
- Fixed AWS cost is essentially zero. No always-on compute, no NAT Gateway, no API Gateway.
- The dominant cost is one Haiku 4.5 read per ticket — a fraction of a cent each.
- The router decision, the queue, and the hand-off use no model — they’re pennies.
- At 6,000 tickets a month the bill is around $11. At 12,000 it’s around $20.
Cost at three volumes
Where the dollars actually go
Bedrock (the bulk). One Haiku 4.5 call per ticket reads the topic, urgency, and tone. The input is the ticket body plus a short prompt and a few labelled examples — a few thousand tokens; the output is a tiny JSON object — a few dozen tokens. That’s a fraction of a cent per ticket. At 1,500 tickets a month it’s a couple of dollars; at 12,000 it’s the bulk of a $20 bill. This is the one cost that grows directly with how many tickets you get, which is exactly the cost you want to be paying — it only happens when there’s real work to sort.
Lambda runtime. The intake, the read trigger, the router, the hand-off, and the correction handler are all small Lambdas that run for a few hundred milliseconds each. Even at 12,000 tickets a month, the Lambda total lands under a dollar. None of them run when there are no tickets.
DynamoDB on-demand. Three small tables: tr-routes, tr-corrections, tr-audit. A handful of writes per ticket and a few reads. Pennies a month at any of these volumes.
SQS. The queue that absorbs bursts. The first million requests a month are free, and an SMB doesn’t come close. Effectively free.
S3 + storage. The raw inbound mail and the mirrored rules. A few hundred KB at SMB volume. Effectively free.
SES. Inbound for the email lane: $0.10 per thousand received messages. Outbound for the email-fallback hand-offs: $0.10 per thousand sent. Both are a few cents at this scale.
What doesn’t cost money
- API Gateway. Replaced by Lambda Function URLs for the web-form and correct-routing endpoints.
- NAT Gateway. Nothing is in a VPC. No NAT, no $32/month minimum.
- Always-on compute. No EC2, no Fargate. Nothing runs between tickets.
- A Knowledge Base. The router reads each ticket fresh and looks teams up in a sheet — no vector search. No embeddings, no Knowledge Base, no S3 Vectors needed.
- A second model call. The routing decision, the queue, and the hand-off are plain Python. Bedrock fires exactly once per ticket, on the read.
How the cost scales
The bill tracks ticket volume almost one-for-one, because the per-ticket read is the dominant cost and everything else is small and flat. So the bill at 24,000 tickets a month is around $40, and at 50,000 it’s around $80. Past those volumes you’d look at whether a cheaper first pass — a quick keyword check that routes the obvious tickets without a model call, sending only the ambiguous ones to Haiku — is worth the added complexity. For an SMB it isn’t; reading every ticket is simpler and still cheap.
Set an AWS Budgets alarm at $15/month for a typical SMB so anything unusual — a spam flood, a runaway retry — pages you before the bill matters. At higher steady volume, raise the ceiling to match. The router’s normal bill stays well under whatever ceiling fits your volume.
Last post in the series: the engineering reference. Same system, drawn for engineers — service names, Lambda inventory, IAM scopes, DynamoDB schemas, the SES rule set, and the SQS queue config.
All posts