Self-hosted email marketing with full source code. Pay once, own forever. Get AcelleMail — $74 →

Pillar guide · 18 min read · Updated May 2026

Email marketing cost savings — the math, the calculator, the line items.

SaaS email-marketing platforms charge by contact count — a price model that compounds with list growth regardless of how often you send. Self-hosted decouples the cost: software is fixed (free or one-time), sends are billed by the recipient at the relay's published rate. This guide is the math: an interactive calculator at 1K → 500K subscribers, the line items behind the SaaS bill, the published rates on the major sending relays, and the costs both models hide. Every number has a citation.

In this guide

  1. Why SaaS and self-hosted prices diverge
  2. Interactive cost calculator
  3. SaaS line items — what you're actually paying for
  4. Published SaaS pricing — 7 vendors compared
  5. Sending-relay rates — SES, Mailgun, SendGrid, SparkPost, Postmark
  6. Hidden costs — both directions
  7. The break-even point
  8. Migration math — sunk cost + time + risk
  9. FAQ
  10. Where to go next

§1 · The pricing model

Why SaaS and self-hosted bills diverge from the first 1,000 subscribers.

The two models price two different things. SaaS prices the right to store contacts. Mailchimp, Brevo, ConvertKit, Klaviyo, MailerLite, Constant Contact, Campaign Monitor — every published tier escalates by contact count. Adding a subscriber raises your bill whether you send to them once a year or four times a week. Self-hosted prices the right to send a message. Amazon SES bills $0.10 per 1,000 sends. SparkPost's volume tier publishes at $0.20 per 1,000. Mailgun's Foundation tier resolves to roughly $0.80 per 1,000 in the entry plan. The bill scales with what you actually do — and storing a contact who never receives a campaign is free.

Two pricing axes — contact count and send count — produce different shapes. SaaS is a step function with the steps spaced at predefined contact thresholds (Mailchimp Standard publishes 18 tiers between 0 and 200K). Self-hosted is a roughly linear curve: cost per send is constant, so total cost is sends-per-month × rate, plus a small fixed application + hosting overhead. Across most realistic send cadences, the linear curve runs below the step function from very early on.

The mental model that makes the rest of this guide click: SaaS is a subscriber tax, self-hosted is metered usage. Pick the tax when you're tiny enough to fit the free tier or large enough that the engineering tax of operating self-hosted exceeds the subscriber tax of SaaS. Pick metered usage everywhere else. The interactive calculator below tells you which one you are at your current scale.

§2 · Calculator

Interactive cost calculator — your list, your cadence.

Move the sliders. The calculator computes monthly and three-year totals for Mailchimp Standard (the most common SaaS comparator) versus self-hosted (AcelleMail $74 one-time amortised over 36 months, plus a $15 average VPS, plus Amazon SES at the published $0.10 / 1,000 rate). All numbers update live. No tracking, no email gate — the math happens in your browser.

1K500K
1 (monthly)4 (weekly)20 (heavy lifecycle)

Mailchimp Standard

$135 / month

3-year total: $4,860

Self-hosted (AcelleMail + SES)

$21 / month

3-year total: $756

3-year saving

$4,104

~84% lower than Mailchimp Standard

Sources. Mailchimp Standard tiers per mailchimp.com/pricing/marketing (interpolated between 18 published steps from 500 to 200K). Amazon SES at $0.10 per 1,000 emails (aws.amazon.com/ses/pricing). VPS at $15/mo average. AcelleMail $74 Standard licence amortised across 36 months ($2.06/mo). Numbers above 200K extrapolate at the marginal SaaS rate; verify with the vendor for >200K real quotes. Calculator runs entirely in your browser — no analytics fired on slider changes.

Two patterns to notice. First: the saving as a percentage stays roughly constant from 5K to 200K — both curves grow, but the SaaS step function grows faster, so the gap widens in dollar terms even as the ratio holds. Second: cadence (sends per month per contact) barely affects the SaaS column at all — Mailchimp Standard's send caps are tied to the contact tier, not the actual send volume, so a list sending once a month and a list sending weekly land in the same Mailchimp bucket. On self-hosted, send count is the dominant variable. §5 covers what changes if you swap SES for SendGrid or SparkPost.

§3 · Line items

What's actually inside a SaaS email-marketing bill.

A Mailchimp invoice is a single number, but the price covers six categorical line items. Self-hosted unbundles them — you pay for the ones you use, you don't pay for the ones you don't. Read this section side-by-side with your own SaaS bill.

Software (the application)

SaaS: recurring per-contact fee, includes the dashboard, builder, automation, segmentation.

Self-hosted: $0 (Listmonk, Mautic) or $74 one-time (AcelleMail Standard) — see /pricing.

Sending infrastructure

SaaS: bundled — your tier covers some send volume, overages billed separately.

Self-hosted: Amazon SES $0.10/1,000, Mailgun ~$0.80/1,000, SendGrid $0.30–$0.85/1,000 — see §5.

Storage + database

SaaS: per-contact charge implicitly funds row storage, behavioural-event log, click/open log retention.

Self-hosted: a $15 VPS comes with 50–80 GB SSD — enough for a 200K-contact list with 12 months of click logs. Outgrow it on disk, not on tier.

Transactional email

SaaS: usually a separate add-on (Mailchimp Transactional, Postmark, SendGrid). Often $20–$80/mo on top of the marketing plan.

Self-hosted: folds into the same SES bill at the same rate. AcelleMail's REST API at /api sends transactional emails through the same drivers.

Automation + workflows

SaaS: tier-gated. Mailchimp Free has none; Essentials is limited; full multi-step lifecycle requires Standard or Premium.

Self-hosted: ships in the box for AcelleMail and Mautic. No feature paywall — see /automation.

Engineering + ops

SaaS: $0 — vendor handles patches, scaling, certs, deliverability.

Self-hosted: 8–16h initial setup, 1–2h/month ongoing — see §6 for the engineering line.

§4 · SaaS pricing

Published SaaS tiers — 7 vendors at 10K, 50K, 200K subscribers.

Comparable middle-tier published rates. Each vendor names its tiers differently — we use the tier that includes basic automation and customer support, which is "Standard" (Mailchimp), "Business" (Brevo), "Creator" (ConvertKit), "Email" (Klaviyo, list-only), "Standard" (MailerLite), "Standard" (Constant Contact), "Lite" (Campaign Monitor). Prices are the published rates as of May 2026 — verify with the vendor at quote time.

Vendor Tier 10K / mo 50K / mo 200K / mo
MailchimpStandard$135$385$1,310
BrevoBusiness~$65~$169~$549
ConvertKitCreator$79$316~$929
KlaviyoEmail$175$720~$2,070
MailerLiteStandard$73$289$915
Constant ContactStandard$110$430~$1,150
Campaign MonitorLite$89$369~$929
Self-hosted (AcelleMail + SES)$74 one-time~$21~$39~$104

"~" prefix indicates interpolated between published step pricing — vendors typically post rates at 5K/10K/25K/50K/100K/200K but skip intermediate. SaaS columns include the platform's bundled send allowance; most plans cap monthly sends at 10–12× the contact count, beyond which overage rates apply. Self-hosted column = 4.3 sends × subscribers × $0.0001 + $15 VPS + $2.06 amortised licence. "Self-hosted" assumes Amazon SES; substitutions in §5.

What this table doesn't show

The published rates assume monthly billing. Annual prepay typically cuts 10–20% off — Mailchimp's annual billing reduces Standard 10K from $135 to ~$120/mo equivalent. Almost every vendor publishes a free tier with sub-1K contacts and feature lockouts; that tier is rational for 0–500 subscribers and breaks down quickly above that. None of the vendors above price their free tier as a long-term home for a real list.

The other thing the table hides: how much of your contact count is dead weight. A typical SaaS list has 10–25% inactive subscribers (haven't opened in 6 months). On SaaS you pay for them every month. On self-hosted, dead weight costs nothing — you can let inactive contacts sit in the database for analytics without paying a per-row fee. Re-engagement campaigns cost a few dollars in send fees instead of a tier upgrade.

§5 · Sending relays

Sending-relay rates — what self-hosted actually pays per send.

Self-hosted shifts the cost from "contact storage" to "messages delivered." The relay is the part you actually pay-per-use. AcelleMail ships built-in drivers for eight providers — see app/SendingServers/Drivers/Vendors/ in the source: Amazon SES, SendGrid, Mailgun, SparkPost, Elastic Email, Blastengine, Gmail, plus a Generic SMTP driver for Postmark or any other vendor. The pattern is documented at /developers/sending-drivers.

Relay Pricing model $ per 1,000 sends Best for
Amazon SESPay-as-you-go, no minimum$0.10Default for most lists. Cheapest published rate at any volume.
SparkPostVolume tier, monthly minimum~$0.20Better webhooks + dashboards than SES; Premier accounts get dedicated IPs.
PostmarkVolume tier~$1.25 entry, $0.30 at volBest-in-class transactional inboxing; price reflects it. Uses the Generic SMTP driver.
SendGridSubscription with bundled volume$0.30–$0.85Mature dashboards, good if you also use their Marketing Campaigns sub-product.
MailgunFoundation / Growth / Scale tiers~$0.80 entry, $0.40 at volEU + US regions; clean webhook payloads; popular with Rails / Node teams.
Elastic EmailSubscription + per-send~$0.10Cost-competitive with SES, less mature inboxing on cold lists.
Self-hosted Postal MTAServer cost only~$0.01–$0.05High volume (>5M/mo) where you can amortise an IP-warmup engineer.

Rates are headline published rates as of May 2026. SES = aws.amazon.com/ses/pricing. SparkPost / Postmark / SendGrid / Mailgun pricing pages publish the volume bands; rates above interpolate between them.

Pick SES unless you have a reason not to. It's the cheapest published rate, the inboxing is competent across major providers when you bring authenticated domains and clean lists, the API is rock-solid, the bounce/complaint webhooks are well-documented, and AcelleMail's Amazon driver in app/SendingServers/Drivers/Vendors/Amazon/ covers both the API and SMTP variants. The 24-hour AWS sandbox-mode escalation is the only friction in onboarding; once approved, your sending caps scale on request.

Reasons to pick something else: SparkPost or Mailgun if you want better dashboards out of the box; Postmark if you've measured your transactional inboxing as a revenue lever and the premium pays for itself; self-hosted Postal if you're above 5M sends/month and have an engineer who has warmed an IP before.

§6 · Hidden costs

Hidden costs — both directions.

Sticker prices don't tell the full story for either model. The hidden line items below are the recurring debates in finance reviews — name them up front so the comparison is fair.

Hidden in the SaaS bill

  • Send-cap overage. Most plans cap monthly sends at 10–12× contact count. A 10K list on Standard sending three campaigns a week (~120K sends) hits the cap — the overage tier kicks in.
  • Transactional add-on. Password resets and receipt emails belong to a sister product (Mailchimp Transactional, Postmark) at $20–$80/mo on top.
  • Feature paywall jumps. Multi-step automation, A/B testing, advanced segmentation, custom branding — moving from Essentials to Standard or Standard to Premium adds $50–$300/mo.
  • List inflation. Inactive subscribers paid for monthly. On a typical 50K list, ~10K (20%) haven't opened in 6 months — that's $80/mo billed for storage of dead addresses.
  • Vendor lock-in friction. Migrating off requires a parallel-run window, automation rebuild, deliverability re-warmup if you change sending IPs. The cost isn't a dollar amount, it's a quarter of engineering time.
  • Annual prepay penalty. Locking the annual rate is 10–20% cheaper but ties you to the vendor for 12 months — worth modelling if you might migrate.

Hidden in the self-hosted bill

  • Initial engineering time. 8–16 hours to install, configure DNS (SPF, DKIM, DMARC), wire up the sending relay, run a test send. At $100/hr internal that's $800–$1,600 — a one-time cost.
  • Ongoing maintenance. 1–2 hours/month for OS patches, TLS renewal, queue worker monitoring, bounce-list curation. ~$150–$200/mo at the same rate.
  • On-call risk. If the queue worker dies at 2am during a campaign send, somebody on your team owns it. Tooling like Uptime Kuma plus a paging service mitigates this for ~$10/mo.
  • Disaster recovery. Database backups, off-site copy, restore-test cadence. A $5/mo Backblaze bucket plus a cron-driven mysqldump covers this — but somebody has to set it up.
  • Deliverability tuning curve. First six months on a fresh sending domain are slower. Target rates < 2% bounce, < 0.1% complaint. AcelleMail's SendingServerWarmupLog tracks per-day sends to support a structured warmup — see /guide/self-hosted-email-marketing §8.
  • Compliance ownership. GDPR, CAN-SPAM, CASL responsibilities sit with you, not a vendor's legal team. Self-hosted simplifies the data-residency angle but you still need a published privacy policy, opt-out flow, and DPA on file.

§7 · Break-even

The break-even point — when each model wins on cost.

Including the engineering line, the cost curves cross at three predictable break points.

Below ~1,000 contacts

SaaS free tier wins

Most SaaS vendors have a free tier covering 0–500 contacts and limited sending. Self-hosted at this scale is the same dollar cost ($15 VPS minimum) plus the engineering tax. Use the SaaS free tier; revisit at 1K.

1,000–5,000 contacts

Toss-up

SaaS Essentials runs $30–$60/mo. Self-hosted runs $20–$25/mo cash plus ~$200/mo engineering tax. Net: SaaS slightly cheaper if you bill engineering time, slightly costlier if you don't. Pick on feature fit, not price.

5,000–50,000 contacts

Self-hosted wins clearly

SaaS bills $100–$400/mo. Self-hosted bills $20–$30/mo cash + $200 engineering. The engineering line stops growing while the SaaS line keeps climbing. Three-year savings of $3K–$13K — material at agency or SaaS-billing scale.

Above 50,000 contacts

Self-hosted wins decisively

SaaS climbs to $400+/mo through $1,300+/mo at 200K. Self-hosted holds $40–$100/mo cash plus the same engineering line. The engineering line is now < 25% of total cost; the SaaS column is 4–13× larger. Three-year savings of $13K–$44K.

A more cynical-but-accurate framing: the SaaS pricing model is engineered so that lists between 5K and 200K subscribers carry the bulk of platform revenue. That's the band where the subscriber-count tax is highest absolute dollars, and where teams are too busy to migrate. Self-hosted is the move that breaks that band.

§8 · Migration math

What it costs to switch — sunk cost, time, deliverability risk.

The migration cost is a one-time spike that, for any list above 5K subscribers, pays back in < 6 months at the savings rates above. The line items:

  1. Data export. 30 minutes — the SaaS vendor's CSV export covers contacts, merge fields, tags. Mailchimp's Audience export, Brevo's contact export, ConvertKit's subscriber export are all standard CSV.
  2. Self-hosted install. 4–6 hours — VPS provisioning, AcelleMail/Listmonk install, MySQL/Postgres setup, queue worker configuration. Documented step-by-step in /guide/self-hosted-email-marketing §7.
  3. DNS setup. 30 minutes plus 0–48 hours propagation — SPF, DKIM, DMARC TXT records on your sending domain. AcelleMail's SendingDomain model auto-generates the DKIM keypair (1024-bit RSA, see generateDkimKeys()) and shows you the exact records to publish.
  4. SES sandbox escalation. 30 minutes filling out the AWS form, then 24 hours waiting. Production-mode quotas start at 50K/24h and scale on request.
  5. Contact import. 1–3 hours — CSV upload, merge-field mapping, tag preservation. AcelleMail's importer accepts the export format from any of the major SaaS vendors.
  6. Automation rebuild. 4–8 hours per flow — visual flow builder rebuild for trigger-based campaigns. Most teams have 3–6 flows; budget two days.
  7. Parallel-run window. One week — send through both providers to a small cohort, compare deliverability metrics, validate the new pipeline. Free in dollars, costs a sprint of attention.
  8. Cutover. 1 hour — point sign-up forms at the new platform, suspend SaaS billing on the next cycle, archive the old account. Don't delete the SaaS account immediately — keep it cold for 30 days as a fallback.

The deliverability re-warmup line

The non-trivial migration cost: if you're switching sending IPs, mailbox providers see a new origin and you need to re-establish reputation. Two paths:

  • Stay on SaaS-managed shared IPs. Amazon SES uses shared IPs by default — they're already warm. You inherit the reputation. This is the recommended path for lists below 1M sends/month. Migration friction near zero on this axis.
  • Move to a fresh dedicated IP. Required only above ~5M sends/month or for compliance reasons. Plan a 4–6 week warmup: 50 sends day one, doubling every 2–3 days. Send through SaaS in parallel during the warmup. AcelleMail's SendingServerWarmupLog tracks the per-day count automatically.

Total migration cost for a 50K-list team using SES shared IPs: roughly 25 hours of engineering time at $100/hr = $2,500. Three-year savings at the same scale: $13,000. Payback inside three months.

§9 · FAQ

Cost-savings FAQ.

How accurate is the calculator at very large lists?

Within ±10% up to 500K subscribers. Above 200K, SaaS vendors typically move you to a custom-quote conversation with a sales team — the published step pricing is a ceiling, real quotes are 10–25% lower for serious volume. Self-hosted scales linearly through millions; the SES rate is identical at 10K/mo and 10M/mo.

Are these figures specific to Amazon SES, or do other relays match?

SES is the cheapest published rate. SparkPost adds ~$0.10/1,000; Mailgun adds $0.30–$0.70/1,000; Postmark adds $0.20–$1.15/1,000 (premium for transactional inboxing). Even on Mailgun the self-hosted path runs 60–80% lower than SaaS at 50K subscribers — the relay choice changes the savings, not the direction.

Does the calculator include automation, A/B testing, advanced segmentation?

The SaaS column reflects the Standard tier which includes those features. Mailchimp Essentials and ConvertKit's lower tiers strip them out — if you're comparing against a feature-equivalent self-hosted setup, Standard is the right column. AcelleMail ships automation (/automation), A/B testing, and segmentation at the $74 one-time price; no feature paywall.

What about transactional email — password resets, order confirmations?

SaaS marketing plans usually exclude transactional. Mailchimp Transactional, Postmark, or SendGrid run $20–$80/mo on top. Self-hosted folds transactional into the same SES bill at the same rate — AcelleMail's REST API at /api sends transactional through the same drivers. The savings on transactional are typically 70–95% by themselves.

If self-hosted is so much cheaper, why does anyone stay on SaaS?

Three valid reasons. (1) Below 1K subscribers, the SaaS free tier costs $0 and self-hosted is comparable cost once engineering overhead is included. (2) Teams without an engineer who is comfortable with SSH, DNS, and a Linux server. The abstraction tax is real and SaaS is paying for someone else's on-call. (3) Specific feature dependencies — Klaviyo's Shopify integration, Mailchimp's e-commerce data — that aren't yet replicated in open-source platforms.

How do I model this for my finance team?

Six rows: SaaS subscription (current), SaaS subscription (projected 12-mo growth), SaaS overage, SaaS transactional add-on, self-hosted total cash, self-hosted engineering line. Sum the SaaS rows; sum the self-hosted rows; multiply by 36 for three-year. The migration cost is a separate one-time row, paid from the budget that funded the first quarter of the new model.

What's the cheapest viable self-hosted setup?

A $5/mo Hetzner CX22 or DigitalOcean basic droplet plus Listmonk (free) plus Amazon SES at $0.10/1,000. At 5,000 subscribers sending weekly, that totals $7/mo cash. AcelleMail Standard adds $2/mo amortised licence and gives you multi-tenant billing, plugin SDK, automation, and a documented REST API — see /pricing.

Does pricing change if I'm in the EU vs US?

SES pricing is identical across regions ($0.10/1,000 in eu-west-1 and us-east-1). VPS pricing is identical across most regions. SaaS pricing is mostly identical, but VAT is added in EU billing — adds 19–25% depending on your country. Net: self-hosted's pricing advantage is slightly larger in the EU.

Is the calculator open-source?

The math is in the page source — view source and you'll see the JavaScript. Two functions: saasMonthlyMailchimp(subs) interpolates between published Mailchimp Standard tiers, and selfHostedMonthly(subs, sendsPerSubPerMonth) = subs × cadence × $0.0001 + $15 VPS + $2.06 amortised licence. Tweak the constants for your numbers.

What if I need a guarantee on the cost — not an estimate?

SES bills monthly per actual sends — your bill will be ±5% of the calculator estimate at any given subscriber/cadence. The variability is mostly from VPS pricing changes and bounce/retry overhead (small). For a hard ceiling, set a monthly SES sending limit in your AWS console — it caps the bill at exactly what you authorize. SaaS bills are predictable but step up at tier thresholds you may not see until you cross them.

Stop paying a subscriber tax. Start paying for sends.

AcelleMail is a self-hosted email-marketing platform with multi-tenant billing, a documented plugin SDK, and built-in drivers for Amazon SES, Mailgun, SendGrid, SparkPost, and any generic SMTP. Standard licence $74 one-time. Lifetime updates.

Get AcelleMail — $74 Try Live Demo