Part 6 of 7 · Stock count reconciler series ~6 min read

What the stock count reconciler costs

This is the post with the numbers. The stock count reconciler costs about $2.20 a month to run at typical small-business volume — around 2,000 SKUs counted each month, of which only a few percent come back as variances worth a model call. Here is exactly where those dollars go, why the reconciliation itself is essentially free, what scales with volume and what stays flat, and what the bill looks like at ten times the count size. The short version: the arithmetic costs nothing, the cause suggestion is a fraction of a cent per gap, and the biggest single line is a Secrets Manager secret.

Key takeaways

  • About $2.20/month at typical SMB volume — around 2,000 SKUs counted, of which a few percent are variances.
  • The single biggest line is one Secrets Manager secret at $0.40/month. The reconciliation itself is free.
  • Bedrock costs track variances, not SKUs — only material gaps get a cause call.
  • No always-on compute, no NAT Gateway, no API Gateway. Fixed cost is essentially the one secret.
  • At ten times the volume — around 20,000 SKUs a month — the bill lands around $13.

The bill at SMB volume

Take a realistic small business: around 2,000 SKUs counted across the month, in a handful of sessions. Say 6% of counted lines come back as variances and clear the materiality tolerance — about 120 material gaps that each earn one Bedrock call. Here’s where the $2.20 goes.

ComponentWhat it does at this volume~ Monthly
Secrets ManagerOne secret (the system-of-record sync credential)$0.40
Bedrock (Haiku 4.5)~120 cause calls + one monthly summary$0.85
Lambdacapture, variance, cause, approve, sweeps — all short, arm64$0.25
DynamoDB (on-demand)stkr-inventory, stkr-counts, stkr-adjustments$0.15
SESManager notifications + monthly summary email$0.05
S3Uploaded count sheets and scanner exports$0.05
SQS + DLQ, EventBridge, CloudWatch, BudgetsQueue, events + Scheduler, 7-day logs, the budget alarm$0.45
Total~$2.20
Monthly cost at three count volumes, broken out by component A vertical stacked-bar chart of monthly cost in US dollars at three count volumes. The leftmost bar is 2,000 SKUs counted and totals around $2.20, made of a fixed Secrets Manager slice, a Bedrock slice for the cause calls, and a small everything-else slice. The middle bar is 10,000 SKUs and totals around $7, with the Bedrock slice now the largest because cause calls grow with the number of variances while the fixed secret stays flat. The rightmost bar is 20,000 SKUs and totals around $13, with Bedrock dominating and the fixed slice unchanged. A legend below explains three sections: Secrets Manager (fixed, one secret), Bedrock (one cause call per material variance plus the monthly summary), and everything else (Lambda, DynamoDB, S3, SES, SQS, EventBridge, CloudWatch). A note reads: the variance arithmetic is free — the cost rises with the number of variances, not the number of SKUs. $0 $5 $10 $15 2,000 SKUs ~$2.20 10,000 SKUs ~$7 20,000 SKUs ~$13 Secrets Manager (fixed, one secret) Bedrock (one cause call per variance + summary) Everything else (Lambda, DDB, S3, SES, SQS, EventBridge, CloudWatch) The variance arithmetic is free — cost rises with the number of variances, not the number of SKUs.
Fig 6. Monthly cost at three count volumes. The fixed Secrets Manager slice never moves; Bedrock grows because cause calls track the number of material variances. The reconciliation itself adds essentially nothing: it’s plain Python.

Where the dollars actually go

Secrets Manager (the biggest fixed line). One secret holds the credential the sync uses to read your system of record. At $0.40 a month it is, oddly, the largest single item on the bill at SMB volume — which tells you how little everything else costs.

Bedrock (the variable line). One Haiku 4.5 call per material variance turns a small evidence bundle into a likely cause: a few hundred input tokens, a sentence out, a fraction of a cent each. At ~120 variances that’s well under a dollar. The monthly summary adds one larger call — a narrative of what was caught and the split of causes — for a couple of cents. Crucially, this line tracks variances, not SKUs: count 2,000 clean lines and the model never fires.

Lambda. The capture, variance, cause, approve, and sweep functions are all short and arm64. The variance engine — the one that does the actual reconciling — is the cheapest of the lot: it reads a few rows, does arithmetic, writes an outcome. Well under a dollar at this volume.

DynamoDB on-demand. Three small tables. A read per counted line, a write per variance, a write per adjustment, plus the audit rows. Pennies a month.

S3, SES, and the plumbing. Count sheets and scanner exports are tiny; a few hundred MB is effectively free. SES is $0.10 per thousand messages, so the manager notifications cost cents. SQS with its dead-letter queue, EventBridge events and Scheduler, 7-day CloudWatch Logs, and the AWS Budgets alarm round out the last bucket — all negligible at this scale.

What doesn’t cost money

  • API Gateway. Replaced by Lambda Function URLs for the approve/reject buttons.
  • NAT Gateway. Nothing is in a VPC. No NAT, no $32/month minimum.
  • Always-on compute. No EC2, no Fargate. Everything is event- or schedule-driven.
  • A Knowledge Base. Inventory and counts are structured rows — deterministic lookup beats vector search here. No embeddings, no Knowledge Base.
  • Models on the maths. The variance arithmetic is plain Python. Bedrock fires only to suggest a cause and to write the monthly summary.

How the cost scales

The only line that really grows is Bedrock, and it grows with variances rather than SKUs. Count ten times as much — 20,000 SKUs — and if the variance rate holds you get ~1,200 cause calls, which is why the bill lands around $13 rather than at twenty-some dollars: the fixed secret, the Lambdas, and the storage barely move. A business with a high variance rate pays a little more (more gaps to explain); one with tidy stock and a sensible tolerance pays less. Either way the reconciliation itself never becomes the cost.

Set an AWS Budgets alarm at $20/month so anything unusual pages you before the bill matters. The reconciler’s normal-volume cost stays well under that ceiling — and a single piece of shrinkage caught and dated, instead of written off six months later, usually pays for a year of running it.

All posts