Comparison · Custom Software

Custom BI Dashboard vs Metabase: An Honest Build-or-Buy Guide

The short answer

Honest verdict: if you have fewer than roughly 150 internal viewers and standard reporting needs, buy Metabase, it pays for itself the week you switch it on. Build custom only when analytics go customer-facing or per-seat costs cross about 40,000 to 60,000 dollars a year, at which point a focused dashboard runs 50,000 to 130,000 dollars over 10 to 16 weeks and hands you the code.

Custom BI (Business Intelligence) dashboard or Metabase: the real question

The question is not which tool is better in the abstract. Metabase is genuinely good software, and a custom dashboard built well is genuinely good software too. The real question is financial and strategic: at what point does the recurring cost, the per-seat pricing, and the workflow shape of an off-the-shelf tool stop fitting your business, and when does owning the code start paying for itself. I have shipped both. I have stood up Metabase for a team in an afternoon, and I have replaced Metabase with a custom platform for a company that outgrew it. Neither move was a mistake at the time.

Metabase fits a specific and common profile: a team that needs internal reporting quickly, has at least one person comfortable with SQL, serves a moderate number of internal viewers, and has reporting needs that look like most reporting needs. If that is you, buying is almost always the right first move. A custom dashboard fits a different profile: analytics your customers see and pay for, viewer counts that make per-seat pricing painful, dashboards that need to write data back or drive a workflow, or a permission model that has to match your product exactly. If that is you, building is not vanity, it is arithmetic.

Where Metabase wins

Speed to first value is the headline. You connect a database, Metabase reads the schema, and you have browsable tables and a working question builder the same day. Non-technical staff can filter, group, and chart without writing SQL, and the people who do write SQL get a clean editor with a variable system. For internal reporting, you can be live before a custom project would finish its kickoff call.

Price at small scale is hard to beat. The open source edition is free to self-host, and the published Cloud pricing starts around 85 dollars a month for a small team on the Starter plan. For a five person analytics group that needs dashboards and scheduled email reports, that is a rounding error against a single salary line. You are renting a mature product with years of edge cases already handled.

Maintenance is somebody else's job on Metabase Cloud. Upgrades, security patches, uptime, database driver updates, and the query engine are all handled for you. Self-hosting the open source edition shifts that work back to you, but even then you are patching a known system rather than maintaining bespoke code. The ecosystem is real too: embedding options, an API, a large community, and documentation for the common problems you will hit.

Put plainly, if your dashboards are internal, your viewer count is measured in dozens, and your needs are standard, Metabase does the job for a fraction of what a custom build costs, and it does it this week. Recommending anything else in that situation would be selling you work you do not need.

Where custom wins

The case for building turns on a few specific thresholds, not on a general preference.

  • Per-seat pricing at scale. The published Pro plan runs around 500 dollars a month for up to ten users, then about 10 dollars per additional user per month. That is fine at 30 seats. At 300 internal seats it is roughly 3,400 dollars a month, and the meter never stops. For customer-facing analytics with thousands of external viewers, per-seat economics stop working entirely.
  • Customer-facing and embedded analytics. When the dashboard is part of the product your customers pay for, you need your brand, your login, your permission model, and your look. Metabase can embed, but you end up fitting your product around its embedding model rather than building the experience you want. A custom dashboard is just part of your app.
  • Workflow rigidity. Metabase is built to query and visualize. When you need a user to click a row, edit a value, trigger an action, approve something, or run a process from inside the dashboard, you are past what a reporting tool is meant to do. Custom lets the dashboard do work, not just show numbers.
  • Integrations and custom logic. A bespoke data source, a permission rule tied to your application's roles, a visualization Metabase cannot render, or a heavy query that needs its own caching strategy: each of these is a workaround in Metabase and a first-class feature in a custom build.
  • Data and definition ownership. In Metabase, your saved questions, dashboards, and metric definitions live inside Metabase's own application database. Your raw data stays in your warehouse, but the logic layer is tied to the tool. Owning that logic in your own version-controlled code matters when analytics become strategic.

None of these apply to a simple internal reporting setup. All of them start to apply the moment analytics become part of your product or your seat count climbs.

The honest cost comparison

Here is the money, with Metabase figures drawn from its published pricing and custom figures from our own delivery experience.

Metabase, published pricing: the open source edition is free to self-host, though you pay for hosting and the engineering time to run it. Cloud Starter begins around 85 dollars a month for up to five users, with roughly 5 dollars per additional user per month. Cloud Pro begins around 500 dollars a month for up to ten users, with roughly 10 dollars per additional user per month. Enterprise pricing is custom and quoted by their sales team, typically starting in the low tens of thousands per year. Prices change, so confirm on their pricing page before you budget.

Custom, our delivery experience: a focused dashboard that replaces the specific reporting you rely on runs 50,000 to 130,000 dollars and ships in 10 to 16 weeks. A full analytics platform with embedding, custom permissions, and product-grade interactivity runs 150,000 to 350,000 dollars. Budget ongoing maintenance at 15 to 20 percent of the build cost per year for hosting, updates, and enhancements.

The crossover is easier to see with a number. Suppose you grow to 300 internal viewers on Metabase Pro. That is roughly 3,400 dollars a month, or about 41,000 dollars a year, forever, and rising as you add people. A focused custom build at 90,000 dollars with 18,000 dollars a year of maintenance costs more in year one, breaks even against the subscription somewhere in year three, and then costs far less every year after while you own the asset. For customer-facing analytics with thousands of viewers, the crossover arrives much sooner, sometimes in the first year, because per-seat pricing was never designed for that.

ScenarioMetabase, published pricingCustom build
Small internal team, 5 to 20 viewersAbout 85 to 200 dollars a monthOverkill, do not build yet
Mid internal, around 300 viewersRoughly 41,000 dollars a year and climbing50,000 to 130,000 once, then 15 to 20 percent a year
Customer-facing, thousands of viewersPer-seat economics break down150,000 to 350,000, owned outright

Migrating off Metabase without the pain

The good news is that the hard asset, your data, never lived inside Metabase. It sits in your warehouse or database, and it stays exactly where it is. What you are actually migrating is the logic layer and the viewing experience, and both are more portable than they feel.

Your SQL comes with you. Every saved question in Metabase is backed by a query, and those queries are the real intellectual property. They export cleanly and translate directly into a custom backend. Metabase also offers serialization and an API that let you pull dashboard and question definitions in bulk rather than rebuilding by hand. Your metric definitions, the business rules for what revenue or churn actually mean, port over as logic you now control.

The approach that avoids pain is to run both systems in parallel. Keep Metabase live while you rebuild, port the ten or fifteen dashboards that carry real weight first, and let the long tail of rarely used reports stay in Metabase until you decide whether they are worth moving at all. Map your permission model early, because that is usually the part that differs most between a reporting tool and a custom app. Done this way, nobody loses a report they depend on, and the switch happens one dashboard at a time instead of in one risky cutover.

The honest recommendation

Buy Metabase if your analytics are internal, your viewer count is in the dozens or low hundreds, your team has SQL on hand, and your needs look like standard reporting. You will be live this week, you will spend very little, and you will not regret it. Starting with a custom build in that situation is how projects waste money.

Build custom when the signals point the other way: your dashboards are customer-facing or embedded in a product people pay for, your projected per-seat cost is heading past roughly 40,000 to 60,000 dollars a year with no ceiling, you need the dashboard to drive workflows rather than just display them, or owning the logic and the brand experience is strategic rather than nice to have. In those cases a focused custom dashboard at 50,000 to 130,000 dollars over 10 to 16 weeks is not the expensive option, it is the one that stops the meter and hands you an asset.

For many companies the honest answer is both, in sequence. Start on Metabase to prove what you actually need and to get value immediately. Build custom for the specific parts that become product, or for the whole thing once the subscription math tips over. The mistake is not choosing one tool over the other. The mistake is building custom before you need to, or staying on per-seat pricing long after it stopped making sense.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. The federal government spends about 80% of its IT budget on operations and maintenance of existing systems rather than on development or modernization, with many critical systems being decades old. Source: U.S. Government Accountability Office (GAO) (2025) →
  3. In an October 2025 survey of 530 small-business employers (conducted by TechnoMetrica, October 3-9, 2025), 88% reported using AI tools and 73% said those tools had been important to their competitiveness and growth over the past year, with 60% citing efficiency and productivity as the primary motivation for adoption (42% cited improving customer service). Source: Small Business & Entrepreneurship Council (SBE Council) (2025) →
  4. Across ten outpatient clinics the mean no-show rate was 18.8%, and the marginal cost of no-shows reached $14.58 million per year for those clinics, at roughly $196 per missed appointment (2008 figures). Source: BMC Health Services Research / PubMed Central (Kheirkhah et al.) (2015) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Is it cheaper to build a custom BI dashboard or buy Metabase?
For most teams, buying Metabase is cheaper, especially at small scale where the Starter plan costs around 85 dollars a month. Building becomes cheaper over a few years once your per-seat subscription passes roughly 40,000 to 60,000 dollars a year, or immediately if you need customer-facing analytics that per-seat pricing cannot cover. The honest test is your viewer count and whether the dashboards are internal or part of your product.
When does Metabase get too expensive?
Metabase gets expensive when your seat count climbs into the hundreds or when you need to show dashboards to thousands of external customers. Published Pro pricing is about 500 dollars a month for ten users plus roughly 10 dollars per extra user, so 300 internal seats runs near 41,000 dollars a year and keeps rising. At that point a custom build you own starts to look cheaper over a three year window.
Can we migrate off Metabase to a custom build?
Yes, and it is less painful than most people expect because your data never lived inside Metabase. Your saved questions are just SQL queries that export and translate directly, and Metabase offers serialization and an API to pull dashboard definitions in bulk. The clean way is to run both systems in parallel, move your most important dashboards first, and retire Metabase gradually.
How long does it take to build a Metabase replacement?
A focused custom dashboard that replaces your core reporting typically ships in 10 to 16 weeks. A full analytics platform with embedding, custom permissions, and product-grade interactivity takes longer and usually lands as a larger phased build. Reusing the SQL you already wrote in Metabase shortens the timeline meaningfully.
How much does a custom BI dashboard cost at 200 users?
At 200 users the build cost is driven by features, not seat count, so a focused custom dashboard still runs 50,000 to 130,000 dollars with 15 to 20 percent a year for maintenance. Unlike Metabase, adding those 200 users does not raise your bill, because you are not paying per seat. That fixed cost is exactly why teams with large internal audiences start looking at custom.
Do we own the code if we build a custom BI dashboard?
Yes, a custom build delivered by an agency like Digital Heroes leaves you owning the source code, the data models, and the deployment outright. There is no per-seat license and no vendor holding your logic layer. That ownership is a large part of the long-term value, since you can extend or rebuild it on your own terms.
Is Metabase's open source version really free?
The open source edition is free as software, but it is not free to run. You pay for hosting, and you spend engineering time on upgrades, security patches, database drivers, and uptime. For many teams the paid Cloud plan is cheaper than the staff hours needed to self-host it well.
Can Metabase handle customer-facing embedded analytics?
Metabase can embed dashboards, and it works for lighter customer-facing needs. It struggles when you want full brand control, your own permission model, deep interactivity, and pricing that does not scale per external viewer. Once analytics become a core paid feature of your product, a custom build usually fits better.
What data comes with us if we leave Metabase?
All of your actual data stays put, because it lives in your warehouse or database rather than inside Metabase. What you carry over is the logic layer: your SQL queries, your metric definitions, and your dashboard layouts, all of which export through Metabase's serialization and API. You lose nothing of substance in a well-planned migration.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What is the biggest mistake first-time software buyers make?
Choosing the lowest quote without asking why it is the lowest. A bid 40% under the field usually gets there by skipping tests, documentation, and code review, which are invisible in a demo and brutal to pay for later; every stalled project Digital Heroes has been asked to rescue tells some version of that story. The second mistake is signing without a written scope, which reliably turns the winning cheap quote into 1.5x to 2x the price by launch.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?