Total Cost of Ownership

Total Cost of Ownership beyond the License

Total cost of ownership (TCO) adds up everything a tool costs over its working life, not just its price. It has four parts: licenses, infrastructure, people and exit costs. The first two appear on invoices; the last two usually decide the answer. The query below compares three ways to run one ingestion job for three years. The inputs are illustrative, not quotes from any vendor: replace them with your own estimates.

A three-year TCO worksheet in DuckDB SQL
-- Three-year cost of one ingestion job, three ways. Illustrative inputs: use your own.
CREATE TABLE option (name VARCHAR, setup_hours INT, license_month DECIMAL(9,2),
                     infra_month DECIMAL(9,2), ops_hours_month INT);
INSERT INTO option VALUES
  ('Managed SaaS connector',   8, 500.00,   0.00,  2),
  ('Self-hosted open source', 60,   0.00, 150.00, 10),
  ('Custom Python job',      160,   0.00,  40.00, 16);
SET VARIABLE rate = 75;   -- loaded cost of one engineer hour, in dollars
SELECT name,
       36 * (license_month + infra_month) AS tools_3y,
       getvariable('rate') * (setup_hours + 36 * ops_hours_month) AS people_3y,
       tools_3y + people_3y AS total_3y,
       round(100 * people_3y / total_3y) AS people_pct
FROM option ORDER BY total_3y;
Output
┌─────────────────────────┬───────────────┬───────────┬───────────────┬────────────┐
│          name           │   tools_3y    │ people_3y │   total_3y    │ people_pct │
│         varchar         │ decimal(18,2) │   int32   │ decimal(18,2) │   double   │
├─────────────────────────┼───────────────┼───────────┼───────────────┼────────────┤
│ Managed SaaS connector  │      18000.00 │      6000 │      24000.00 │       25.0 │
│ Self-hosted open source │       5400.00 │     31500 │      36900.00 │       85.0 │
│ Custom Python job       │       1440.00 │     55200 │      56640.00 │       97.0 │
└─────────────────────────┴───────────────┴───────────┴───────────────┴────────────┘

With these inputs the option with the largest invoice is the cheapest, because people's time is 85-97% of the cost of the other two. Change one assumption and the ranking can flip: if the connector were billed per row and BookNest's volume tripled, its license line would triple too, and self-hosting would win. Write the assumptions down and revisit the decision when they change.

The visible and hidden parts of a tool's total cost of ownership
The visible and hidden parts of a tool's total cost of ownership

Self-hosted open source hides its cost in upgrades and on-call; managed services in egress fees and price changes; custom code in maintenance forever. Cloud Data Warehouses and Security and Lakehouse Costs put real prices on warehouses and lakehouses.