Stripe Billing cost vs self-hosted Lago

Stripe Billing charges a share of billing volume on top of processing fees, while self-hosted Lago replaces that with infrastructure, implementation and operations costs. The trade depends on your volume, usage complexity and internal skills.

On this page

Stripe Billing cost vs self-hosted Lago: where the trade starts to matter

The percentage-of-volume fee that Stripe Billing charges on top of processing is the line that self-hosting Lago removes, but it is not the only line that changes. Card processing fees stay with your payment processor whichever billing engine you choose, because Lago calculates what to charge and when, then hands the charge to a gateway such as Stripe, Adyen or GoCardless. Self-hosting also adds recurring infrastructure and operations work for PostgreSQL, Redis, the API and worker services, and Gotenberg for PDF generation, plus upgrade and security patching that someone on your team owns. A fair comparison therefore nets out what you stop paying against what you keep paying and what you start paying.

The comparison becomes decisive only at your own billing volume. Because the Stripe Billing fee scales with the value you bill, the saving grows with volume, while the hosting and staffing cost of Lago is mostly fixed and steps up as the platform grows. A small subscription book may not justify the move, and a large usage-based book may justify it quickly. Lago's own FAQ describes a forever-free open-source edition and Enterprise plans with premium features, so ask whether the features you need sit in the free edition or the paid tier before you build the model. Neither Lago's nor Stripe's prices are reproduced here, so take the percentage, the processing fees and any add-on charges from your current Stripe invoices and your Lago quote.

Before you decide, run the model on twelve months of actual invoices. Separate the Stripe Billing fee from processing fees, list every Stripe add-on you use, and estimate the volume at which the fee exceeds the fixed cost of running Lago with your own engineers, cloud accounts and support. Ask any Lago partner or hosting provider for a written scope that lists hosting, upgrades, backups, monitoring and on-call responsibilities, because those recurring items decide whether the saving holds. Plan for the one-time migration cost as well, which is covered in the migration section of this page.

Which cost components move when billing leaves Stripe

This table compares each cost component on the Stripe Billing side with the same component under self-hosted Lago, marking each as one-time or recurring. Card processing fees stay with the payment processor in both cases, so read the rows for billing logic, infrastructure and people as the part that changes.

Cost componentStripe BillingSelf-hosted Lago
Billing platform feeShare of billing volume, charged on top of processing fees and recurring with volumeLago open-source edition has no licence fee under AGPLv3; Enterprise plans add a recurring subscription for premium features
Card processing feesPaid to the payment processor, recurring per transaction; stays with Stripe or another gatewaySame processor fees, recurring per transaction; Lago does not replace them and needs a separate gateway
InfrastructureNone to run; included in the serviceRecurring hosting for PostgreSQL, Redis, API, API worker, clock worker and Gotenberg; cost rises with volume and redundancy
High-volume event storageIncluded in the Meters API within Stripe's limitsOptional ClickHouse is off by default; recurring cost only if event volume justifies it
ImplementationConfiguration of plans and products in the Stripe dashboard and APIOne-time: deploy, configure plans and meters, integrate the payment gateway and accounting systems; quote from written scope
MigrationNot applicable while billing stays in StripeOne-time: move subscriptions, customer links and invoice generation without double charges; effort depends on catalog size and history
Operations, upgrades and skillsVendor-run; internal effort limited to configurationRecurring: pin tagged versions, patch, back up, monitor workers, and staff engineers who know billing logic; can be retained as a support contract

What moves the Lago versus Stripe Billing comparison

Stripe Billing's cost scales with the volume you bill, while Lago's cost scales with infrastructure, operations and the edition you choose. The cards below are the drivers that move the comparison, and each one is a question to answer with your own numbers before you compare totals.

Billing volume and the fee base

Stripe Billing charges a share of the billing volume it processes, on top of card processing fees, so the fee grows with every dollar you invoice through it. Lago does not take a share of billing volume, but you still pay a payment processor, so the saving is the Stripe Billing fee alone. Ask Stripe for the current rate that applies to your account, and model it against your annual billed volume to see the amount you would stop paying.

Event volume and ClickHouse

Lago's Docker Compose deployment stores application data in PostgreSQL and runs without ClickHouse, which is an optional external store for high-volume events and is disabled by default. Whether you need it depends on your event count and query load, not on your invoice count. Load test your expected event rate before you size the database, and budget for ClickHouse operations only if the test shows PostgreSQL cannot keep up.

Plan and invoice complexity

Simple flat subscriptions cost little to run in any billing system, but multi-currency pricing, tiered and committed usage, proration rules, credit notes and tax handling add configuration, testing and reconciliation work. Count your plans, metered components and invoice exceptions, and ask the Lago implementation partner to estimate the setup and test effort for that exact set. Complexity is the main reason migration hours vary between teams.

Edition needs and feature gaps

Lago's open-source edition includes fundamental billing features, and its Enterprise plans add premium features. List the capabilities your finance and revenue teams rely on today, then confirm with Lago which of them sit in each edition. The Enterprise license fee is a recurring line item that should appear in your comparison alongside infrastructure, so ask for it in writing before you decide.

Availability and on-call duties

Stripe Billing runs as a hosted service, so your team does not carry its uptime. A self-hosted Lago puts the API, workers, scheduled clock jobs and invoice PDF generation on your on-call rota, and a failed clock worker can delay invoicing. Decide the availability target, the recovery procedure and who answers alerts at night, then price that staffing time as a recurring cost.

Existing PostgreSQL, Redis and Kubernetes skills

Lago depends on PostgreSQL for application data, Redis as the job queue, and Gotenberg for PDF generation, and larger deployments move to Helm charts and dedicated workers. Teams that already run these services in production carry less new cost than teams that would learn them from scratch. Inventory the people who can operate each component, and treat any gap as a training or contractor cost in the quote.

How to build the comparison with your own numbers

This sequence turns the comparison into a annual total built from your own Stripe invoices, your own infrastructure costs and a written implementation quote, so the payback volume reflects your business rather than a generic estimate. Every figure in the final comparison should trace back to a document you hold.

  1. Export twelve months of Stripe Billing fee lines

    Finance or the billing owner exports twelve months of Stripe invoices, balance transactions and Billing-related line items from the Stripe Dashboard or API. Record the billing fee charged as a share of billing volume separately from the card and payment processing fees that Stripe charges on each transaction. Keep the export as the source file for every later figure. The step is done when each month has a billing fee total and a processing fee total that reconcile to the Stripe reports.

  2. Measure invoice and billing volume by month

    Using the same twelve-month window, the billing owner records the billing volume that the Stripe Billing fee applies to, along with invoice counts, active subscriptions and metered event volumes where you use usage pricing. Note any months with unusual peaks, because they change the annual total and the payback point. The step is done when you can state the volume for each month and show which report it came from.

  3. Separate billing fees from processing fees

    The finance lead confirms which costs would remain after a move to self-hosted Lago. Lago calculates charges and produces invoices, but it sends payment collection to a payment gateway, so card processing fees from Stripe or another processor stay in the comparison as a fixed baseline. Only the billing fee and any other Stripe Billing add-ons are candidates for removal. The step is done when you have a short list of costs that disappear and a list of costs that do not.

  4. List every Lago component and its hosting cost

    The platform team lists each component of a Lago deployment in your own cloud account, as described in the self-hosting documentation: the front end, the API, the API worker, the clock worker, PostgreSQL, Redis, and Gotenberg for PDF generation. Add ClickHouse only if you expect high event volumes and plan to enable it. For each component, record compute, storage, backups, monitoring and network costs from your cloud bill or a sized estimate. Confirm the edition you need, because the open-source edition and Enterprise plans differ in premium features, and ask the vendor which features you require. The step is done when every component has a monthly hosting figure traceable to a pricing page or invoice.

  5. Price the implementation and migration from a written scope

    Write a scope covering the Stripe data to move, the plans and meters to recreate, the integrations to keep (such as your ERP or accounting system), the testing approach and the cutover plan. Ask one or more implementation partners, including DeployOpen where it fits, to quote against that written scope. Ask each quote to separate one-time migration work, hardening, documentation and training from recurring support or retainers. Store the signed quotes with the comparison. The step is done when each option has a fixed one-time figure and any recurring fee shown on its own line.

  6. Add internal operations hours

    The engineering and finance leads estimate the recurring operations work their own team will carry: upgrades to a pinned version, database backups and restore tests, monitoring, on-call coverage, invoice template changes and reconciliation between Lago and the payment gateway. Use the hourly cost your organization already applies to these roles. Record the assumptions in writing, because this is the line most likely to change over time. The step is done when recurring hours and their cost are written down with the assumptions behind them.

  7. Compare annual totals and find the payback volume

    Build two annual totals: one for staying on Stripe Billing, made of the billing fee at your measured volume, and one for self-hosting, made of hosting, amortized one-time migration cost, recurring support and internal operations hours. Then test the comparison at several volume levels to find the monthly billing volume where self-hosting costs less. Label any what-if volumes as illustrative. The step is done when the payback volume is stated with the inputs that produced it, and the finance lead has signed off that each input traces to a source document.

  8. Confirm assumptions before deciding

    Before a decision, the CFO or head of platform reviews the model against risks the numbers do not capture: security and compliance evidence you must produce, data residency, staff capacity during migration, and the vendor roadmap for the edition you choose. Confirm any unresolved item with Lago, the implementation partner or your compliance team rather than assuming it. The step is done when the open questions are listed with owners and the decision record states which assumptions were confirmed.

What you still pay after leaving Stripe Billing

Moving billing logic to Lago does not remove payment processing from your cost base. Lago calculates how much to charge and when, then hands the charge to a payment gateway, and the Lago FAQ and README name Stripe, Adyen and GoCardless as supported providers. If Stripe remains the processor, the per-transaction processing fees you pay today continue at the same rate, and they are billed on the same card and bank transactions whether invoices are generated by Stripe Billing or by Lago. The processing fee and the Stripe Billing fee are two separate lines, and only the second one is removed by the move.

The savings case should be built from those two lines separately. The Stripe Billing line is the percentage of billing volume you stop paying once subscriptions, meters and invoices run in Lago. The processing line is unchanged unless you also change processor, negotiate new rates, or move card routing elsewhere. Do not subtract the full Stripe invoice from the forecast and do not assume that card or bank collection costs fall to zero. Ask finance to split last year's Stripe statement into billing charges, processing fees, and any dispute, payout or Radar-type add-on charges, and confirm which of those each contract actually covers before you model the new state.

Also check the costs that appear only after the move. Lago's self-hosted infrastructure, your engineers' operating time, and any Enterprise plan fees for features you need are new recurring items, and a payment processor contract may need repricing if your volume profile changes. Confirm with your processor whether a new integration path, a new webhook setup or a different statement format affects your rates. Build the model with a clear list of one-time migration work and recurring run costs, and document the assumption for each line so the comparison can be reviewed when the processor renews.

Costs teams forget on each side

Stripe Billing's fee is only the visible line item. Running Lago yourself adds operations, testing and cutover work that a quote for the software does not show. The cards below list the costs that most often surface after a decision is made, so they can be priced before the trade is judged.

Version pinning and upgrade testing

Lago's self-hosting guidance recommends pinning the last tagged version rather than the latest image tag. That choice moves cost onto your team: someone must track releases, test each upgrade against your own plans, meters and invoice templates, and schedule the rollout. Ask any implementation partner how upgrades are tested and who owns the regression suite. Recent tagged releases, such as v1.54.0 and v1.55.0, show the pace of change you will be tracking.

Workers and Helm for scale

The Docker Compose setup suits smaller deployments. Larger volumes call for Lago's Helm charts and dedicated workers, which means a Kubernetes cluster, sizing for the API, API worker and clock worker, and on-call coverage for each. Ask what node count and database tier your expected invoice run and event volume require. Those figures drive the recurring cloud bill more than the software itself.

PDF generation with Gotenberg

Invoices are rendered to PDF through Gotenberg, a service you must run, patch and monitor alongside Redis and PostgreSQL. Its failures show up as invoices that never reach customers, so it needs alerting and a capacity plan for invoice runs. Ask the vendor or partner whether invoice templates have been tested against your tax lines, currencies and languages before go-live.

Invoice reconciliation and tax during migration

Historical invoices, credit notes, proration and tax lines in Stripe must map to Lago objects with matching totals. Each mismatch becomes a manual finance task, and tax calculation usually needs a separate service or manual rules that your tax team must approve. Plan a reconciliation sprint that compares open balances, deferred revenue and tax totals from both systems before you switch the source of truth.

Dual running to avoid double charges

During cutover, Stripe and Lago can both hold active subscriptions for the same customer. Without a deliberate switch, the same customer can be charged twice or not at all. Keeping both systems running for a period raises the cost of licenses or fees, engineering time and staff review. Agree a per-customer cutover order and a freeze window for changes in both systems before the first Lago invoice run.

Stripe-native features that cannot move

Stripe-specific features, such as Link credentials, do not transfer to Lago or any other billing system. Customers who rely on Link must re-enter payment details or accept a different checkout flow, which can lower payment success. Inventory which Stripe features your customers use and confirm with your payment processor what carries over before you commit to a timeline.

What the migration adds to the one-time cost

The one-time cost of moving billing logic is driven less by the Lago software and more by the amount of Stripe Billing history you have to carry across. The work includes pulling active subscriptions and past invoices through the Stripe API, recreating each plan and price as a Lago plan with its charges, defining billable metrics for any usage that Stripe meters today, and linking every existing Stripe customer to a Lago customer record so that balances, payment methods and invoice numbering stay intact. Each of these steps is a data mapping exercise, and the number of distinct plans, add-ons, proration rules and metered events in your catalog sets how long it takes.

The cutover is where most of the risk and effort sits. Lago calculates what to charge and when, then hands the charge to a payment gateway, so during the switch you must decide which system generates the next invoice for each subscription and disable the other side's schedule before the first Lago run. Confirm with your engineers how billing anchor dates, trial periods and pending invoice items will be carried over, and test the cutover against a copy of production data. Without that test, double charges and missed renewals are the usual failure modes. Also scope the integrations you need: the Lago README lists NetSuite, Xero, Salesforce and HubSpot, and each connector you use to push invoices or customer records into your ledger or CRM adds configuration, field mapping and reconciliation work that recurs whenever those systems change.

Ask every vendor or implementation partner for a fixed-scope written quote that lists the number of active subscriptions, years of invoice history to migrate, plan and metric count, which integrations are in scope, the test environment and cutover rehearsal, and the handover documentation. Ask whether historical invoices are imported as records or only referenced, and who owns reconciliation for the first full billing cycle after cutover. Those answers, not a generic estimate, determine the one-time figure you should compare against your Stripe Billing spend.

Questions buyers ask before comparing Stripe Billing with Lago

How much does Lago cost compared with Stripe Billing?

The open-source edition of Lago carries no licence fee, according to Lago's FAQ, which describes a forever-free edition with fundamental billing features. Enterprise plans add premium features and must be quoted by Lago. Stripe Billing is priced as a share of billing volume on top of processing fees, and that figure must come from your Stripe contract, not from this page. A fair comparison puts your actual Stripe billing charges next to the infrastructure, migration and operations cost of running Lago, plus any Enterprise fee you would need. Ask for each component in writing so the two sides are measured on the same basis.

Do Stripe processing fees disappear if we move to Lago?

No. Lago calculates what to charge and when, then sends the charge to a payment gateway. Its FAQ states that businesses need a separate payment processor, and its README names Stripe, Adyen and GoCardless as supported providers. In the model this page describes, Stripe stays as the processor, so card processing fees continue. What you stop paying is the percentage-of-volume billing charge, and only that part. Confirm with your Stripe account team which fee lines would change if Stripe Billing is switched off but payments continue.

How long does a migration from Stripe Billing to Lago take?

The duration depends on scope, so no fixed number applies. The main drivers are the number of plans and meters to recreate, how many active subscriptions must be linked to existing Stripe customers, how much invoice history you need to carry over, and how many downstream systems such as the ERP or CRM consume billing data. Parallel running to avoid double charges adds time. Lago's integrations with NetSuite, Xero, Salesforce and HubSpot may shorten some of this work. Any engagement should start from a written scope with deliverables and a timeline agreed in advance.

Can an internal team run self-hosted Lago without outside help?

A capable platform team can run it, but the work is broader than installing a container stack. Operating Lago in Docker Compose involves a front end, an API, an API worker, a clock worker, PostgreSQL, Redis as the job queue and Gotenberg for PDF generation. Your team needs skills in container operations, database backup and restore, upgrades and monitoring, plus someone who understands billing rules such as proration, tax and dunning. Lago's self-hosting docs recommend pinning the last tagged version instead of the latest image, which means someone must own upgrade testing. Assess these skills honestly before deciding who runs it.

When does ClickHouse become necessary for Lago?

ClickHouse is an optional external store for high-volume events and is disabled by default, according to Lago's self-hosting documentation. Most subscription billing does not need it. Consider it when your usage events are numerous enough that metering queries in PostgreSQL become slow, which you can only judge by load-testing your own event volume. Adding ClickHouse brings a second data store to back up, secure, patch and monitor, so the decision has an operating cost as well as a performance benefit. Test with a realistic event profile before committing to it.

What does a DeployOpen fixed-scope engagement cover for Lago?

DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure, including cloud accounts, data centers or air-gapped networks. For a Lago engagement, that can cover deployment, plan and meter setup, integration with your ledger or ERP, migration planning, and runbooks for operations. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. DeployOpen does not publish a price list, so a quote follows from the written scope. Ongoing support and upgrades are available as retainers. DeployOpen prepares evidence for compliance assessments but does not issue audit reports or certifications.

What should we ask a vendor quote to compare fairly?

Ask every bidder to itemize the same components so the totals can be compared. For the commercial side, request the billing-volume charge and processing fees separately, and the terms that apply above and below your current volume. For Lago, request the Enterprise fee if you need premium features, hosting costs in your own cloud account, and the migration and operations effort in writing. Also ask who pays for upgrades, incident response and backup testing, and whether any of that recurs. A quote that omits recurring operations work usually understates the true cost of self-hosting.

When self-hosting Lago makes financial sense

The decision point is a comparison of two annual figures: what Stripe Billing costs you on your billing volume, and what Lago costs to run each year plus the migration cost spread over the years you expect to keep the system. Stripe Billing's share of billing volume sits on top of the processing fees you already pay for card payments, so the saving you can capture is only the billing-layer share. Lago itself is free to self-host under the AGPLv3 license, so the recurring costs are the infrastructure for PostgreSQL, Redis and the API and worker containers, the engineering time to patch and upgrade, and any Enterprise plan you need for premium features. Ask Lago which features in your plan sit behind the Enterprise edition before you model the run cost, and ask your Stripe account team to confirm the billing-volume fee that applies to your contract. Neither figure is a fixed threshold, so run the comparison on your own invoice data.

The crossover depends on volume and on complexity, not on a single number. A high volume of usage events, many plan variants, multiple currencies or tax rules, and frequent price changes all raise the cost of staying with a per-volume fee and also raise the effort of running the migration. A small book of simple monthly subscriptions may never recover the one-time cost of rebuilding plans, linking existing customers and running a cutover without double charges. Remember that Lago calculates what to charge and when, but a payment gateway such as Stripe still collects the money, so the fees you stop paying are only the billing-layer share. Model the case where you keep Stripe for payments and the case where you also move collection, because the second changes both the saving and the risk.

Regulated buyers may choose self-hosting for control even where the cost difference is small. Owning the billing ledger, the invoice archive and the access logs can simplify audit requests, data residency commitments and vendor concentration reviews, and it lets you set your own upgrade timing. Those benefits are real only if your team can operate the platform well, so plan for patching, backups, monitoring and a documented upgrade routine, and pin the last tagged release as Lago's self-hosting guidance recommends. If control is the main driver, write that down as a requirement with its own acceptance criteria, and let the cost model show what it adds rather than using it to justify the move on its own.

How DeployOpen scopes a fixed-price Lago implementation

DeployOpen plans, implements and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Stripe Billing cost vs self-hosted Lago, we start with a written scope that separates the billing logic moving to Lago from the payment processing that stays with your current gateway.

How we scope

  • Inventory current Stripe Billing plans, metering, invoices and dunning rules that Lago must reproduce.
  • Confirm which payment gateway stays live, such as Stripe, Adyen or GoCardless, and document the handoff points.
  • Agree deliverables, timelines and responsibilities in writing before any work starts, as engagements are fixed-scope.

How we build

  • Deploy Lago in your environment using a pinned tagged release, not the latest image tag.
  • Configure PostgreSQL, Redis, the workers and Gotenberg for PDF generation, with ClickHouse considered only if event volume requires it.
  • Test invoice generation, proration and payment collection in a staging environment before any production cutover.

How we hand over

  • Provide runbooks for deployment, upgrades, backups and restoring the Lago database and workers.
  • Document the integrations to your accounting, CRM and payment systems, and the controls and evidence your compliance team needs.
  • Walk your platform and finance teams through operations so they can run Lago without depending on us daily.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover.
  • Plan version upgrades against the Lago release notes, testing each one in staging first.
  • Confirm the support scope, response expectations and retainer terms with us in writing before go-live.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.