Engagements

Scoped properly, quoted in writing, then it does not move

There is no price list on this page, and that is deliberate. What a data platform or an internal application costs depends entirely on what has to be in it, and an average pretending to be a quote helps nobody. What you get instead is a fixed scope and a fixed number, agreed before anything starts.

A Datavoris dashboard: revenue, gross margin, orders and average order value, with a monthly trend, revenue by region and product line performance.

Sample data, fictional company

Engagements

Four ways to work together

Most projects are one of these. A few are two of them in sequence — a platform build, then the portal that sits on it — and that is scoped as two engagements rather than one open-ended one.

Analytics Sprint

When the problem has a name. A report that eats a week every month, a dashboard that needs building properly, a process that should be running on a schedule instead of on somebody’s Tuesday.

  • One or more dashboards built, connected to your data and handed over
  • A manual reporting process rebuilt as a job that runs itself
  • Validation on the inputs, scheduled delivery, and an alert when a run fails
  • A walkthrough with whoever will own it afterwards, plus written notes
Fixed scope, fixed numberScoped in a short call and quoted in writing. The number moves only if you change what you asked for.

Data Platform Build

When reporting is not the problem — the thing underneath it is. Numbers that disagree, sources nobody has joined, pipelines nobody can review.

  • Warehouse on Microsoft Fabric, Snowflake, PostgreSQL or SQL Server
  • Ingestion from APIs, files and the SaaS tools you already pay for
  • ETL/ELT orchestration, dimensional modelling and access control
  • One written definition per metric, versioned and reviewable
  • The reporting layer on top, all of it reading one source
Quoted after a short auditThe work depends on how many systems have to be joined and how clean they are. The audit is what makes the number real rather than optimistic.

Internal App / Analytics Portal

When the tool does not exist off the shelf — or analytics have to be delivered outside Power BI, to your team or to your own customers, under your own brand.

  • Authenticated portal or internal tool, built to your workflow
  • Role-based access to pages and to rows
  • Self-service upload with validation and field mapping
  • Customer-facing analytics on your own domain
  • Deployment, monitoring and the documentation to run it without us
Scoped to the workflowPriced against what the application has to do, not per screen. You see the scope and the number before the first line of code.

Embedded Engineering

When you already have a team and need another pair of hands that understands data — working inside your repositories, your conventions and your review process.

  • Agreed capacity per month, in your stack and to your standards
  • Code review, version control and your change process, not a parallel one
  • Architecture and design input, not only implementation
  • Also the shape most ongoing support and monitoring takes after a build
Monthly, rollingCapacity agreed by the month and reviewed as the work changes. Either side can end it with notice.

Not sure which one this is? Describe it in a few lines and we will tell you — including if the answer is “none of these yet”. Start a project →

The honest bit

What ongoing support covers

Support is not unlimited work, and pretending otherwise only causes an argument later. This is the line, agreed before the retainer starts.

Covered by the retainer

  • Renaming fields, relabelling charts, changing colours or layout
  • Adding a filter, a date range or a sort to something that exists
  • Adding or removing users, and changing who sees what
  • Fixing anything that breaks, and keeping the refresh running
  • Small changes to upload validation as your files change

Quoted separately

  • A new dashboard or a new page in the portal
  • Connecting a data source we have not connected before
  • Reworking the data model behind the reporting
  • New upload workflows with their own validation and mapping
  • Anything beyond a minor change — you see the number and agree it first
Every engagement

What is included regardless of size

A fixed number, agreed first

You approve the scope and the number before anything starts. If the scope changes we requote, in writing — the number never moves quietly.

Full ownership

Code, data, accounts and documentation are yours. Everything runs in your tenancy, on your subscriptions.

A walkthrough, not a handoff

We sit with whoever will run it and explain it in plain English, then leave written notes they can use later.

30 days of support

Anything that breaks in the first month after handover, we fix. It is part of the engagement, not an upsell.

Estimating

What actually drives the cost

It is rarely the thing people expect. The dashboard is the easy part; getting trustworthy data into it is the work.

How many sources

One clean database is quick. Six systems, three spreadsheets and an inbox is the part that takes the time — not the dashboard on the end.

How clean the data is

If the same customer is spelled four ways, that gets fixed before anything can be trusted. We will tell you at the audit stage if this is you.

Who has to use it

A tool for two analysts is not the same build as a portal fifty people log into with different permissions.

Questions

Before you get in touch

Why fixed price instead of hourly?

Hourly billing makes you pay for our learning curve and puts us on opposite sides of every decision. A fixed number means you can approve the work on its merits, and it is our problem if it takes longer than we thought.

Where the work is open-ended by nature — ongoing engineering alongside a team you already have — that is an Embedded Engineering engagement instead, with capacity agreed by the month. Pretending that shape of work can be fixed-priced would just produce a number neither of us believed.

Why are there no prices on this page?

Because the honest answer to “what does a data platform cost” is that it depends on what has to be in it, and a published figure is an average pretending to be a quote. Six systems and three spreadsheets is a different build from one clean database, and the dashboard on the end is the cheap part of both.

What you get instead is a number for your scope, in writing, before anything starts — usually within a day or two of the first conversation. If you need a rough order of magnitude before committing to a call, say so in your first message and you will get one.

What if the scope changes halfway through?

We stop and requote that piece. Small additions usually get absorbed; anything that changes the shape of the build gets its own number before we touch it. You will never get an invoice you have not already agreed to.

Do you work with our existing tools?

Almost always, yes. Most engagements start with what you already pay for — Microsoft 365, Google Workspace, your CRM, your accounting system. We only recommend new tooling when the existing stack genuinely cannot do the job.

What does not go well with a fixed price?

Open-ended research and anything where nobody can say what “done” looks like. If that is the situation, take the audit first — that is exactly what it is for.

How do payments work?

The audit is paid up front. Build sprints are split — half to start, half on handover. Retainers are billed monthly in advance. Bank transfer or card, and you get a proper invoice either way.

Are you available right now?

Usually within one to two weeks. Tell us your deadline in the first message and we will say honestly whether it is realistic before you commit to anything.

Do I own everything you build?

Yes — completely. You own the code, the dashboards, the pipelines and the data. Everything is handed over with documentation and a walkthrough, and nothing is locked to us. If you never speak to us again after handover, what we built keeps running.

What about our data security?

Client data remains within the agreed project infrastructure and the approved third-party services we name before the build starts. Access is granted on a least-privilege basis, credentials are kept outside source code, and data-handling requirements are agreed in writing before implementation.

We are deliberately not claiming your data never leaves your systems: real builds touch hosted databases, third-party APIs and sometimes a model provider, and which ones is a decision you make at scoping rather than discover afterwards. Security & engineering practices sets out the whole thing, including what we do not claim.

You build with AI — does that affect quality?

AI-assisted development helps accelerate delivery. It does not replace the engineering practice around it: architecture decided before code, version control, review, testing, secrets kept out of repositories, and a deployment you can roll back. Every one of those still happens, and the quality bar does not move because the typing got faster.

AI-assisted development is part of how we work, not the product we sell. What you are buying is the architecture, the reliability and the finished system: something that runs unattended and that somebody other than us can maintain. How fast it got written is our problem to manage, not a feature on the invoice.

What if something breaks after handover?

Every engagement includes a support window after handover, and anything that breaks inside it we fix as part of the work. After that, an optional monthly retainer covers fixes, monitoring and minor changes — the line between a minor change and a new piece of work is set out above, and anything past it is scoped and quoted before we start.

Plenty of clients take no retainer at all. Nothing we hand over needs us on a schedule, and if it does then it was not finished.

Tell us what you’re trying to build

Describe the problem in a few lines. You will get a real reply within one business day telling you which engagement fits and roughly what it costs — not a brochure.