Data Warehouse Cost for a Small Company: Platform, Pipelines, People and Activation
Data Engineer and Co-founder at Martechdevs and Growth and Analytics Partners
Last updated 18 min read
A small company's data warehouse cost includes storage, queries, ingestion, transformation, reporting, activation and the people keeping them reliable. Price each layer from its actual billing unit, then add implementation and migration overlap. A low warehouse invoice can coexist with a costly operating process, so keep software cash outflow and internal effort visible as separate totals.
There is no useful universal monthly price without a workload. Five source connections can be inexpensive or costly depending on which records change, what the connector counts and how often the reports rebuild. Fifty employees do not necessarily need fifty paid analytics seats.
The examples below describe one fictional company at three stages. They use current public rates where a rate is available and explicit variables where a quote is needed. They are planning models, not client results, vendor invoices or promises that a particular business can operate at the illustrated cost.
Which costs belong in the warehouse budget?
Include seven recurring lines and a separate build budget. Start with the business outputs, such as a reconciled revenue report and a customer-status update in the customer relationship management (CRM) system, then trace the work required to maintain them. A scoped warehouse implementation should specify those outputs, their owners and the evidence that makes them acceptable.
| Budget line | What you count | Common omission | Evidence for the estimate |
|---|---|---|---|
| Storage | Stored data over time, under the selected storage model | Staging copies, retained history and recovery copies | Expected average footprint by dataset |
| Compute | Bytes billed or running capacity and time | Development, dashboard queries and sync comparisons | Representative job history |
| Ingestion | Each connection's billable rows or other contracted unit | Several connections using the same vendor | Connector-level usage and terms |
| Transformation | Seats, eligible builds and optional services | Repeated jobs and CI runs | Deployment schedule and selected models |
| Reporting | Licensed users or another contracted reporting unit | Extra projects and report connectors | Actual licence assignments |
| Activation | Syncs, active keys or the quoted package | Multiple objects and destinations | Each source-to-destination operation |
| People and upkeep | Operating hours and the agreed cost basis | Failures, schema changes and access reviews | Named owners and a maintenance log |
Keep the warehouse's query cost in one place even when dbt, a dashboard and an activation tool all cause queries. Their software fees are separate, but charging the same warehouse job three times in your budget is not.
For the architecture behind these lines, use the marketing data warehouse setup guide. This article owns the budget; the design should still follow the decision or action the team needs.
How does each layer charge you?
Each layer has a different meter, so customer count alone cannot price the stack. Record the unit, scope, allowance and normal paid terms before multiplying anything. The public terms in this section were checked on 18 October 2026; your region, contract and configuration can change the applicable price.
Storage and compute
For BigQuery's published Iowa us-central1 pricing, on-demand analysis is USD 6.25 per TiB after the first eligible 1 TiB monthly. Active logical storage lists USD 0.000031507 per GiB-hour, with the first eligible 10 GiB monthly free. Gibibytes (GiB) and tebibytes (TiB) are binary units; they are not interchangeable with decimal GB and TB. BigQuery pricing.
Estimate storage from the average footprint over the month, not only the final day's table size. Identify whether your datasets use logical or physical storage billing. The example later uses steady active logical storage, no long-term storage discount and a 720-hour planning month. The BigQuery pricing guide covers the separate rate choices.
Snowflake virtual warehouses consume credits while running. Billing is per second after a 60-second minimum for each start or resume; a suspended warehouse consumes no warehouse compute credits. Storage and other services remain separate. Use Snowflake credit pricing for the edition, region and contract behind your dollar conversion. Snowflake compute rules.
For that model, record warehouse size, running time and starts. A query that finishes quickly does not make the remaining idle time free. Equally, reducing size can lengthen runtime; compare the complete job at equivalent correctness and deadline.
Do not confuse serverless with zero capacity decisions. Redshift Serverless measures capacity in Redshift Processing Units, or RPUs. Its documented default base capacity is 128 RPUs, adjustable down to 4 in supported regions and within its workload limits, checked on 18 October 2026. Verify the actual configuration and region price before forecasting usage. Redshift capacity settings.
Use Snowflake vs BigQuery for startups for the platform tradeoff. A whole-stack budget should not become an unsupported claim that one engine is always cheaper.
Ingestion connectors
Fivetran's Free plan includes up to 500,000 connection monthly active rows, or MAR, across the account. On paid accounts, a connection with monthly usage from 1 MAR through 1 million MAR carries a USD 5 base charge, in addition to its applicable usage pricing. Both terms were checked on 18 October 2026. Plan allowances, connection usage rules.
A MAR measures a qualifying distinct key within its billing scope, not source-table size or application programming interface (API) requests. Separate connections contribute separately. Get a connection-level estimate identifying trial and initial-load treatment. Free eligibility is not a credit against paid usage.
Compare Fivetran MAR pricing with Airbyte pricing for the specific sources and operating model. If you operate ingestion yourself, put its hosting, upgrades and incident work somewhere in the budget. Removing a subscription does not remove the data movement.
Transformation
Hosted dbt Developer includes one developer, one project and 3,000 successful model builds monthly. Starter lists USD 100 per developer monthly, up to five developers, one project and 15,000 account-level builds, checked on 18 October 2026. dbt pricing.
Successful deployment builds through dbt orchestration can count across scheduled jobs, continuous integration (CI) builds and API-triggered jobs. Tests, seeds, snapshots, ephemeral models and development-environment builds are excluded from that particular meter. Models successfully built before a later job failure can still count. Optional State reuse uses another meter. dbt build counting.
Count each time a model is built, even when its query file stays unchanged. Twenty eligible models rebuilt hourly for thirty days produce 20 × 24 × 30 = 14,400 builds before CI. Ten additional full CI runs add 200, giving 14,600. This illustrative workload fits Starter's stated allowance, with only 400 builds left for additional eligible work.
Fivetran's Free plan has a separate 5,000-model-run monthly allowance for its transformations. Apply the allowance of the orchestrator running the job. Fivetran Free plan. See dbt plans for small teams for local versus hosted options and additional services.
Reporting
Google Data Studio's no-cost version and Pro licences have different operating scopes. Pro's public project-subscription rate is USD 9 per user per project monthly, checked on 18 October 2026; confirm the subscription term before purchase. Data Studio pricing.
For self-service Pro, budget the licences purchased, including unused licences. Users who create, edit or manage Pro content need an assignment in each project. View-only access to shared reports does not itself require a Pro licence; organization-wide monthly active user (MAU) contracts differ. Pro subscription rules.
A reporting licence does not pay for every warehouse query the report launches. Include refreshes, exploration and dashboard interactions in the compute forecast. Use prepared reporting tables when they reduce repeated work without changing the result. Compare Data Studio pricing and Metabase pricing for the required ownership, deployment and sharing features.
Activation
Hightouch Basic Reverse ETL includes up to two active syncs free. Its self-serve documentation also limits Free to hourly frequency, 100 million operations monthly and one workspace per organization. A sync that ran successfully in the month remains counted even if subsequently deleted or disabled. Checked on 18 October 2026. Hightouch packages, documented limits.
A contact update and a company update in the same CRM can be separate syncs. Price the activation routes you are paying for, including their objects, cadence and destination effects. An audience builder or advanced operating control can require a different paid package even when the sync count is small.
Fivetran's separate Free activation ceiling is 3,500 MAR monthly; unused connection capacity cannot be reassigned to it. Fivetran activation allowance. Compare Hightouch pricing and Hightouch vs Fivetran Activations against the same operations. If Segment already collects your events, include its collection bill using Segment MTU pricing; do not mistake that charge for the entire warehouse or activation budget.
People and upkeep
Estimate operating effort from tasks someone will own: failed loads, source changes, identity exceptions, model updates, permissions, report questions and invoice checks. Give each task an expected frequency and an accountable person.
For the worked example, USD 70 per hour is an assumed internal capacity value, not a Martechdevs hourly rate. Ten hours therefore represents USD 700 of capacity. If you pay a contractor for those hours, use the actual invoice as cash cost instead. Do not add the same work again as both an invoice and internal labour.
The agency, in-house or freelancer comparison helps decide who can maintain the required work. A cheaper platform that consumes more scarce engineering time may be the more expensive operating choice.
What would the monthly budget look like at three stages?
The known monthly software subtotal in this fictional model rises from USD 13.41 to USD 392.19 and USD 937.21, before the explicitly unquoted items. Those are not complete advertised stack prices. The variables below are part of the total and must be filled before approving a purchase.
All three stages use billing-enabled BigQuery in Iowa, eligible monthly allowances available to this workload, active logical storage and a thirty-day, 720-hour month. Query volume means billable on-demand query volume before the free allowance, with per-job minimums and rounding already reflected. It includes ingestion-related queries, transformations, reporting, development and activation comparisons. The model excludes promotional credits, optional AI/State services, taxes and unlisted extras; any applicable extra belongs in X below.
Workload inputs
These are illustrative monthly assumptions, not typical requirements for every company of the stated size. Each paid Fivetran connection is assumed to consume between 1 and 1 million MAR; the totals alone would not establish that distribution.
| Input | Stage 1: one report | Stage 2: shared metrics | Stage 3: product events |
|---|---|---|---|
| Illustrative company employees | 5 | 20 | 50 |
| Source connections | 5 | 10 | 12 |
| Connection MAR/month | 300,000 | 1,500,000 | 5,000,000 |
| Average stored GiB | 50 | 250 | 1,000 |
| Query TiB/month | 3 | 20 | 100 |
| dbt developer seats | 1 Free | 2 Starter | 2 Starter |
| Successful dbt builds/month | 500 | 1,000 | 14,600 |
| Data Studio Pro user-project licences | 0 | 2 | 4 |
| Active Hightouch syncs | 1 | 2 | 5 |
| Internal upkeep hours/month | 4 | 10 | 20 |
Stage 1 uses the no-cost reporting version and eligible Free ingestion and activation features. Stage 2 adds two transformation developers and organizational reporting licences. Stage 3 increases event analysis and refresh work; its five activation syncs need a paid quote. Required features must still fit each proposed plan. No stage assumes a Business feature is included just because its basic volume fits Free.
Calculated charges and quote variables
USD per planning month, using public rates checked on 18 October 2026 and the assumptions above. Round each line to cents for this worksheet. U2 and U3 are the paid connector usage estimates excluding the base charges already shown; A3 is the full paid activation quote. X1, X2 and X3 capture applicable extras such as transfer, additional storage, hosting or monitoring. Do not enter zero unless the scope supports it.
| Recurring line | Stage 1 | Stage 2 | Stage 3 |
|---|---|---|---|
| BigQuery query processing | 12.50 | 118.75 | 618.75 |
| Active logical storage | 0.91 | 5.44 | 22.46 |
| Ingestion | 0.00 | 50.00 + U2 | 60.00 + U3 |
| dbt hosted seats | 0.00 | 200.00 | 200.00 |
| Reporting licences | 0.00 | 18.00 | 36.00 |
| Activation | 0.00 | 0.00 | A3 |
| Software cash outflow | 13.41 + X1 | 392.19 + U2 + X2 | 937.21 + U3 + A3 + X3 |
| Internal capacity value, separate | 280.00 | 700.00 | 1,400.00 |
| Cash plus internal capacity value | 293.41 + X1 | 1,092.19 + U2 + X2 | 2,337.21 + U3 + A3 + X3 |
For Stage 1, query processing is (3 - 1) × 6.25 = 12.50. Storage is (50 - 10) × 720 × 0.000031507 = 0.9074016, rounded to USD 0.91. This is a steady-footprint approximation; the actual storage bill follows measured usage over time.
Stage 2's known ingestion base is 10 × 5 = 50, and its two dbt seats cost 2 × 100 = 200. Its Pro assignments cost 2 × 9 = 18. Adding the known lines gives USD 392.19. The connector usage variable still needs the vendor's estimate; subtracting it because it is not yet known would make the budget look complete when it is not.
Stage 3's known query cost is USD 500 higher than Stage 2's. Internal capacity rises by USD 700, while the largest unknown remains the changed connector and activation scope. That is a more useful growth discussion than assuming stored gigabytes dominate every bill.
Which budget shape fits the work?
| Situation | First budget to test | Alternative to compare | Deciding evidence |
|---|---|---|---|
| One maintained report, one technical owner | Eligible entry plans with a bounded on-demand workload | Existing application reporting | Whether cross-system history is actually needed |
| Shared definitions and two model maintainers | Hosted collaboration plus organization-owned reporting | Local dbt with already-maintained orchestration | Operating responsibility and complete paid scope |
| Frequent event analysis and several writes | Measured normal/peak workload with paid ingestion and activation quotes | Reduce repeated scans or unnecessary cadence first | Correct outputs at the required freshness and total cost |
A low-volume trial does not establish the steady-state cost. Ask what happens after the first full month, after an event launch and after any temporary grant expires. If you qualify for a startup programme, show the normal year-two bill beside the discounted period.
How much does the build add to first-year cost?
Add the scoped implementation fee, migration overlap and chargeable initial work to the recurring operating model. Implementation includes more than creating a database: source access, history, identity, models, reporting, activation rules, testing and handover can each change the scope.
Martechdevs projects start at USD 3,000. Full data warehousing, end-to-end visualization and data activation work can reach USD 15,000. Scope determines the implementation quote; these figures are not fixed prices for the example stages. Budget software and ongoing operations separately.
Use the martech implementation cost guide to define the deliverables. Keep the build fee separate from the operator who maintains the system afterward.
For Stage 2, twelve months at the stated steady workload give this reproducible model:
Known recurring software component = 12 × 392.19 = USD 4,706.28
First-year cash = 4,706.28 + 12 × U2 + 12 × X2 + B + O + H
Internal capacity, separately = 12 × 10 hours × USD 70 = USD 8,400B is the approved build quote. O is the additional old-system spend during overlap, excluding costs already in the recurring model. H is chargeable one-time backfill or setup usage not already counted. This illustration assumes twelve months at the Stage 2 workload; use a month-by-month schedule if launch, expansion or overlap begins later.
Year two normally removes that original one-time build line, but it does not freeze the workload or renewal rate. Replace promotional terms with normal prices, include planned new scope and keep operating effort. The warehouse ROI guide evaluates benefits and payback using these costs; this budget does not assume revenue growth or staff reductions will occur.
Which changes can make the first invoices surprising?
Unexpected bills usually come from a changed billing unit, repeated work or a missing line in the estimate. Trace the change before treating the vendor's total as unexplained.
Fivetran distinguishes initial, historical and incremental activity, with free treatment in specified cases. Inspect which keys became billable in each connection; source-table size alone cannot price a backfill.
A wide event table can be cheap to store and expensive to query repeatedly. The Google Analytics 4 (GA4) BigQuery export is a common place to examine selected columns, date filters and repeated scans. BigQuery's cost guide warns that a LIMIT on a non-clustered table does not reduce the bytes read; use preview or a dry run when estimating. Row-level-secured tables can return zero estimated bytes in a dry run, so investigate that result before assuming the query is free. Query cost controls.
Development and dashboard work can happen outside the scheduled pipeline. Count ordinary report refreshes and interactive exploration in the same compute inventory. An unchanged dashboard design can become more expensive as its underlying history grows.
An activation tool may query a large warehouse model even when few destination records change. Lower destination-write volume does not prove the warehouse did less work. Measure both, then decide which field changes and refreshes the business actually needs.
Finally, a new required feature can change the commercial tier. A low record count does not guarantee that access controls, private networking, audience creation or the requested support arrangement is available on the cheapest plan.
How do you reduce cost without weakening the output?
Remove work that has no consumer or no timing requirement before reducing the reliability of useful work. Preserve the same accepted result while comparing changes.
- List the report or action served by each source, model and sync. Retire unused work through an accountable change.
- Make date filters and partitions constrain event queries; select the required columns and inspect estimated bytes.
- Rebuild only what the output needs. Validate incremental logic against late changes and a full rebuild before relying on its lower cost.
- Match sync frequency to the action. An hourly downstream run cannot make a daily source fresher.
- Inspect licensed users and projects against actual maintenance responsibilities. Preserve an owner when reducing assignments.
- Establish cost alerts and appropriate execution limits, then test who responds when a limit or alert fires.
For BigQuery on demand, maximum bytes billed can reject a query whose estimated scan exceeds the configured limit. A clustered-table estimate can be conservative, so a rejected estimate is not proof that the actual scan would have exceeded it. BigQuery maximum-bytes control.
Google's alerts-only budgets do not automatically stop spending. Its separate spend-cap budgets currently list selected API services, including Cloud Run and Gemini services, but not BigQuery, as checked on 18 October 2026. Do not assume a general Cloud Billing alert is a BigQuery execution cap. Budget alerts, spend-cap scope.
Set limits with an operational owner. A control that stops a critical refresh should also produce a visible stale-data state; quietly serving yesterday's customer eligibility can be more damaging than the query cost it avoided.
How do you check the estimate against actual usage?
Reconcile units first, then rates, scope and timing. A variance caused by twice as many eligible builds needs a different repair from an unexpected paid seat or a missing contract discount.
| Budget line | Usage evidence | Comparison to make | Important limitation |
|---|---|---|---|
| BigQuery queries | Regional INFORMATION_SCHEMA.JOBS_BY_PROJECT, including total_bytes_billed | Normal versus peak jobs and query consumers | Script parents can double-count children; some metrics are hidden |
| Snowflake compute | SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY | Running compute by warehouse against the planned schedule | Raw credits can differ from credits billed after adjustments |
| Ingestion and activation | Vendor usage report by connection, activation or sync | Actual billing scopes against the workload sheet | Unique business customers are not necessarily unique billable units |
| Transformation | Deployment jobs and billing usage | Eligible executions, retries and CI against the estimate | Repository file count is not monthly execution count |
| Reporting and people | Licence assignments, invoices and operating log | Purchased assignments and recurring work | Capacity value is not automatically an avoidable cash payment |
BigQuery's JOBS view documents total_bytes_billed, regional scope and required permissions. Exclude SCRIPT summary rows when aggregating children, and investigate missing metrics for row-level-security queries. Capacity, machine learning (ML) and other service usage need their own accounting; do not multiply every available byte counter by the ordinary query rate. BigQuery job metadata.
Snowflake's warehouse metering view separates compute from cloud services. Its raw CREDITS_USED can exceed billed credits because it excludes the cloud-services adjustment; use METERING_DAILY_HISTORY.CREDITS_BILLED when reconciling that account-level quantity. Credits still need the applicable contract price, and storage remains another line. Warehouse metering, daily metering.
Use the same period, timezone and billing scope on both sides of the comparison. Preserve the first load as a separate observation, then inspect a normal month. Review spend monthly during the first quarter and after a new source, major backfill, model redesign or changed reporting cadence.
What must be known before you approve the budget?
Approve a budget when every required cost has an owner, a measurable input and either a verified rate or an explicit quote dependency. A blank amount is unresolved work, not a free service.
Checklist
- Each source connection has expected normal and peak billable usage.
- Storage model, region, retained copies and average footprint are specified.
- Compute includes transformations, dashboards, development and activation queries.
- Transformation seats, eligible builds and optional services are counted separately.
- Reporting assignments match the actual subscription model.
- Activation objects, syncs, cadence and feature entitlements are listed.
- Operating hours and cash-versus-capacity treatment are explicit.
- Build, overlap and chargeable backfills are separate from recurring cost.
- Trial or startup benefits have an expiry and a normal year-two estimate.
- Alerts, execution controls and their responders are tested.
- The first two invoices will be reconciled against the same workload register.
If the required output remains unclear, first decide whether a warehouse is worth it yet. For a defined scope, bring the sources, volumes, report owners and activation jobs to a free martech audit, or request a scoped quote. Those inputs let the implementation budget reflect the work the business will actually use.
Questions people ask
Who should own a warehouse budget shared by several teams?
Name one accountable budget owner and give each workload an operating owner. Allocate shared costs using an agreed rule, such as identifiable jobs or maintained outputs, rather than debating the allocation after an invoice arrives. Keep shared infrastructure separate from directly attributable work. Finance should reconcile the money while the technical owners explain volume changes and required service levels.
Can we rely on free editions for a production warehouse?
Check the edition's purpose, not only its allowance. BigQuery's sandbox has a lifetime 10 GiB storage quota and automatic 60-day expiry; use a billing-enabled project with deliberate retention for the modeled stack. Sandbox limits. Databricks Free Edition prohibits commercial use and has no support-policy or service-level agreement (SLA) coverage. Free Edition terms. Neither replaces an operating owner.
How should customer-facing analytics change the estimate?
Budget it as a separate workload with its own concurrency, freshness and availability requirements. An internal dashboard used by five colleagues is not the same demand as an embedded feature used by customers throughout the day. Check external-user licensing and isolation, then measure representative queries before rollout. Keep those costs visible so an inexpensive internal reporting pilot does not become an unsupported production estimate.
Does building a warehouse let us cancel other tools?
Sometimes, but only when the replacement performs the required job and the payment actually stops. A warehouse may replace a reporting export without replacing a messaging engine, consent process or customer-facing application. Use martech stack rationalization to identify dependencies and commercial exit dates. Keep overlap in the budget until the required workflow and retirement have both been verified.
How should we approve an urgent backfill with uncertain cost?
Agree the records, period, destination effect and maximum acceptable exposure before starting. Estimate a bounded representative slice where the tools allow it, distinguish free historical treatment from chargeable changes, and include the rebuild and downstream syncs. Expand only after inspecting actual usage and results. Urgency can justify faster review, but it does not make an unbounded replay a reliable budget.
Sources
- Google Cloud: BigQuery pricing. Accessed 18 October 2026.
- Snowflake: Understanding compute cost. Accessed 18 October 2026.
- AWS: Redshift Serverless capacity. Accessed 18 October 2026.
- Fivetran: Usage-based pricing. Accessed 18 October 2026.
- Fivetran: Plans and billing. Accessed 18 October 2026.
- dbt: Public pricing. Accessed 18 October 2026.
- dbt: How pricing works. Accessed 18 October 2026.
- Google Cloud: Data Studio pricing. Accessed 18 October 2026.
- Google Cloud: Data Studio Pro subscriptions. Accessed 18 October 2026.
- Hightouch: Pricing. Accessed 18 October 2026.
- Hightouch: Self-serve limits. Accessed 18 October 2026.
- Google Cloud: Estimate and control BigQuery costs. Accessed 18 October 2026.
- Google Cloud: Budgets and alerts. Accessed 18 October 2026.
- Google Cloud: Spend-cap budgets. Accessed 18 October 2026.
- Google Cloud: BigQuery JOBS view. Accessed 18 October 2026.
- Snowflake: Warehouse metering history. Accessed 18 October 2026.
- Snowflake: Daily metering history. Accessed 18 October 2026.
- Google Cloud: BigQuery sandbox. Accessed 18 October 2026.
- Databricks: Free Edition limitations. Accessed 18 October 2026.

Written by
Jafrin Akter AloData Engineer and Co-founder at Martechdevs and Growth and Analytics Partners
Jafrin writes practical guides to marketing technology, customer data, analytics and AI workflows. Martechdevs is a Growth and Analytics Partners company.