What the price monitor costs
The monitor is one of the cheapest systems in this whole series. Each check fetches a page, reads one number, writes a row to DynamoDB, and only sometimes posts a message to Slack. It calls no models on the routine check. Bedrock fires only when a page layout changes and the saved rule stops finding the price, and once a month for the summary. At typical SMB volume, the bill is a couple of dollars a month, fixed cost essentially zero.
Key takeaways
- Around $2.40/month at typical SMB volume (around 200 watched pages).
- Fixed AWS cost is essentially zero. No always-on compute, no NAT Gateway, no API Gateway.
- The routine check costs pennies — no model calls.
- Bedrock fires only when a page layout changes (a few times a month) and on the monthly summary.
- At 500 watched pages the bill is around $5. At 1,000 pages it’s around $9.
Cost at three volumes
Where the dollars actually go
Lambda runtime (the bulk). The checker runs on each page’s schedule — once or twice a day for most pages. Each run fetches the page, reads one number with the saved rule, and writes a reading. At 200 pages checked twice a day, that’s a few hundred short invocations a day, each a fraction of a second. Either way it’s pennies a month. Add the watcher deciding moves, the dispatch Lambda firing for each alert (a handful a day at most), the Function URL Lambda for note/mute/stop, the catalog-sync Lambda running hourly, and the drive-sync Lambda every fifteen minutes — the Lambda total still lands a dollar or two at all three volumes.
DynamoDB on-demand. Four small tables: pm-readings, pm-alerts, pm-mute, pm-audit. Writes are dominant — one reading per page per check. Reads happen on the watcher’s compare step and on the weekly digest. Pennies a month at any of these volumes.
S3 + Storage. The mirrored watch-list CSV plus saved page snapshots kept for the re-read lane. A few MB at SMB volume. Effectively free.
EventBridge Scheduler. The staggered check rules plus deferred dispatch rules from the quiet-hours gate. A few hundred invocations a day. Pennies.
Page fetches. The outbound requests themselves cost nothing in AWS fees beyond the tiny Lambda time and data transfer to fetch a page (a few KB to a couple hundred KB each). At a few hundred fetches a day, transfer is cents a month. The real constraint on fetches is politeness, not cost — the gentle rate is a courtesy to the sites, and it happens to keep the bill down too.
Bedrock (only when something fires it). The routine check uses no Bedrock. The re-read lane fires Haiku 4.5 only when a page layout changes and the saved rule stops finding the price: a few thousand input tokens (the page text) and a few hundred output tokens (the new rule), so a fraction of a cent per re-read. Across a watch list, layouts change a handful of times a month, so Bedrock costs cents. The monthly summary is one larger call: write a short narrative of the month’s moves; a couple of cents.
SES. Outbound for the email-fallback alerts and the monthly summary: $0.10 per thousand sent. Negligible at this scale.
What doesn’t cost money
- API Gateway. Replaced by a Lambda Function URL for the note/mute/stop endpoint.
- NAT Gateway. Nothing is in a VPC. No NAT, no $32/month minimum.
- Always-on compute. No EC2, no Fargate. The checker sleeps between scheduled runs.
- A headless browser farm. Most product pages give the price up in their markup, so a plain fetch and parse is enough. No fleet of full browsers rendering pages, which is where most price-scraping bills explode.
- Models on the check. The routine decision is plain Python. Bedrock fires only on page re-reads and the monthly summary.
How the cost scales
Lambda runtime grows roughly linearly with page count, because every page is fetched and checked on its schedule. DynamoDB grows linearly too. Bedrock is mostly uncorrelated with page count — it only fires when a layout breaks a saved rule or it’s the first of the month. So the bill at 3,000 watched pages is around $25; at 5,000 it’s around $40. Past those volumes you’d batch fetches more aggressively and lengthen the check interval on slow-moving pages, but those are tuning knobs, not redesigns.
Set an AWS Budgets alarm at $15/month so anything unusual pages you before the bill matters. The monitor’s normal-volume bill stays well under that ceiling.
Last post in the series: the engineering reference. Same system, drawn for engineers — service names, Lambda inventory, IAM scopes, DynamoDB schemas, the polite-fetch policy, and EventBridge Scheduler config.
All posts