Part 6 of 7 · Gift card ledger series ~5 min read

What the gift card ledger costs

A ledger that holds other people’s money should not cost much to run, and this one does not. This post breaks the bill down line by line at a realistic small-business volume — around 300 cards issued and 800 redemptions a month — and shows where every cent of the roughly $2.10 monthly total goes. The headline is that the centrepiece, the atomic redemption, costs a fraction of a cent each; the bill is dominated by one Secrets Manager secret and keeping a continuous backup of the ledger. We finish with the bill at ten times the volume.

Key takeaways

  • About $2.10/month at a realistic volume of roughly 300 cards issued and 800 redemptions.
  • The centrepiece, the atomic redemption, is a single conditional write — a fraction of a cent each, a few cents for the whole month.
  • The bill is dominated by fixed costs: one Secrets Manager secret and a continuous backup of the ledger.
  • EventBridge Scheduler, SQS, and AWS Budgets all sit inside their free tiers and add nothing.
  • At ten times the volume the bill lands around $9/month, because most of it scales with writes and email, not with a server.

The volume we’re pricing

Costs only mean something against a volume, so here is the one we’re pricing: a small business that issues about 300 gift cards a month and takes about 800 redemptions against the live pool. The nightly expiry sweep runs once a day; the reconciliation report runs once a month. Receipts go out on issue and on redemption, so SES sends on the order of 1,100 emails a month plus the one report. Everything lives in a single region, eu-west-2, with no always-on compute anywhere.

The line-by-line bill

ServiceWhat it does hereMonthly
Secrets ManagerOne secret — the SES / config credentials$0.40
DynamoDB (on-demand)Writes & reads: ~300 issues, ~800 redemptions, sweep + report scans$0.45
DynamoDB backup (PITR)Continuous point-in-time recovery on the cards & ledger tables$0.30
CloudWatch LogsFunction logs at 7-day retention$0.25
SES~1,100 issue & redemption receipts + the monthly report$0.20
Data transfer & miscSmall request and egress overheads$0.20
S3 (versioned)Monthly reports, CSV exports, ledger snapshots$0.15
Lambda (Python 3.14, arm64)Issue, redeem, expiry, report invocations$0.10
Bedrock (Claude Haiku 4.5)One report-narrative call a month$0.05
EventBridge SchedulerNightly sweep + monthly report (free tier)$0.00
SQS + dead-letter queueReceipt / alert buffering (free tier)$0.00
AWS BudgetsTwo budgets and an alert (free tier)$0.00
Total$2.10

Where the money actually goes

The striking thing about this bill is that the part everyone worries about — getting redemptions right under load — is the cheapest line on it. Each redemption is one DynamoDB conditional write; 800 of them, plus the issues and the scheduled scans, come to well under half a dollar for the month. The expensive lines are fixed and have nothing to do with how busy the shop is: one Secrets Manager secret at $0.40, and continuous backup of the cards and ledger tables at $0.30. For a system holding other people’s money, paying $0.30 a month to be able to rewind the ledger to any second is the easiest line item to justify on the whole list.

Where the $2.10 monthly bill goes, as a stacked bar A single horizontal bar representing the $2.10 monthly total, divided into proportional segments from left to right: Secrets Manager $0.40, DynamoDB writes and reads $0.45, DynamoDB continuous backup $0.30, CloudWatch Logs $0.25, SES $0.20, data transfer and misc $0.20, S3 $0.15, Lambda $0.10, and Bedrock $0.05. The free-tier services — EventBridge Scheduler, SQS, and AWS Budgets — are listed beneath at $0.00. A caption note points out that the fixed costs (the secret and the backup) make up the largest combined share, while the atomic redemption itself sits inside the small DynamoDB writes segment. The $2.10 month, split by service Secrets $0.40 DynamoDB $0.45 Backup $0.30 Logs $0.25 SES $0.20 Misc $0.20 S3 + Lambda + Bedrock $0.30 800 atomic redemptions live in here — a few cents in total Free tier, $0.00: EventBridge Scheduler · SQS + DLQ · AWS Budgets. The two fixed lines — the secret and the backup — are the biggest combined share of the bill.
Fig 6. The $2.10 month split by service. The 800 atomic redemptions sit inside the small DynamoDB writes segment; the largest combined share is fixed cost — one secret and a continuous ledger backup — not anything that scales with the shop.

What ten times the volume costs

Now run the same shape at ten times the traffic: about 3,000 cards issued and 8,000 redemptions a month. The fixed lines do not move — the secret is still $0.40, the report still fires one Bedrock call — while the usage-based lines scale roughly with the work. DynamoDB writes and reads grow toward $3.50–$4.00, SES toward $1.50, logs and data transfer up in step, and continuous backup edges up with the ledger’s size. The total lands around $9 a month. Even at ten times the customers, there is no server to grow, no cluster to size, and no idle capacity billed overnight — the bill tracks the number of cards and emails, and almost nothing else.

Why the bill stays small

  • No always-on compute. Lambda bills per invocation; between sales the system costs nothing to run.
  • The atomic redemption — the hard part — is one conditional write, the cheapest line on the bill.
  • On-demand DynamoDB means you pay per request, not for provisioned throughput sitting idle.
  • The fixed floor is small and honest: one secret and a continuous ledger backup.
  • Scheduler, SQS, and Budgets stay inside the free tier at this volume and add nothing.
All posts