Data collection and organization
Your numbers live in five different tools and none of them quite agree. We bring them into one place, on a schedule, so a question about last month has exactly one answer.
The problem is rarely a shortage of data
Most companies that ask for help with analytics are not short of data. They have web analytics, a CRM, an e-commerce backend, one or more ad platforms, an accounting system, and a folder of spreadsheets that quietly holds everything none of those tools handle. Each system is internally consistent. Put side by side, they disagree.
The visible symptom is an argument about a number. Sales reports one revenue figure, finance reports another, and both are defensible, because they are measuring slightly different things over slightly different periods. The less visible symptom is worse: people stop trusting reports and go back to deciding on instinct, which is what the reporting was supposed to replace.
Fixing this is less about technology than it sounds. Moving rows from one system to another on a schedule is a solved problem. Deciding what the rows mean is not.
What a single source of truth actually requires
The phrase gets used loosely. In practice it means three specific things, and skipping any of them leaves you with the same disagreement in a nicer interface.
First, agreed definitions. If an active customer is someone who bought in the last twelve months, that has to be written down and computed one way, in one place, rather than reimplemented slightly differently in every dashboard. Second, a named owner for each source, because when a number looks wrong someone has to be able to answer where it came from. Third, retained history, so that a restated figure from last March is still there next March.
None of this is exciting work. It is also the part that determines whether the whole thing survives its first serious disagreement.
Where the data ends up
We are pragmatic about the destination. A managed warehouse such as BigQuery makes sense when you have many sources, a lot of history, or queries heavy enough that running them against a production database would slow down the application. Plenty of companies do not have any of those problems, and for them a properly modelled PostgreSQL schema is cheaper to run and easier to reason about.
What matters more than the choice is that there is exactly one destination. The failure mode we see most often is a half-finished migration where some reports read from the warehouse, some still read from the operational system, and nobody can say which of the two a given chart is using.
Cleaning is a standing task, not a one-off
Data quality degrades in the direction of whatever is easiest for the people entering it. Country fields get free text. The same company appears as three contacts because three salespeople added it. Product names drift as the catalogue changes.
The cheapest place to deal with this is at load time, with rules applied consistently as data arrives:
Deduplication on stable keys such as tax ID or email domain, rather than on names that will never match exactly.
Normalisation of the fields people type by hand, so that country, currency and status columns take known values.
Validation that rejects or quarantines rows that fail basic checks, instead of letting a negative order quantity flow through to a chart.
Reduced manual entry, by pulling from the system of record wherever one exists. Every field a person does not have to retype is a class of error that disappears.
What this looks like after a few months
The change is not usually dramatic. Someone stops spending Monday morning assembling a spreadsheet. The weekly meeting starts with a number nobody contests. A new question gets answered the same day, because the data needed to answer it is already in one place and someone knows how to query it.
That last effect is the compounding one. Once collection and organisation are handled, dashboards, deeper analysis and forecasting become straightforward pieces of work rather than projects in their own right. Almost every analytics engagement that stalls, stalls here first.
What you get
Connected data sources
We pull from the tools you already run: CRM, sales platform, ad accounts, analytics, billing, and the spreadsheets nobody is willing to give up yet.
Scheduled refresh
Data is fetched and updated on a schedule instead of when someone remembers to export it. You stop having to ask whether a report is current.
One agreed definition per metric
Revenue, active customer, qualified lead. We write down what each term means and make the pipeline compute it that way, so two departments stop presenting two numbers.
Cleaning and deduplication
Duplicate contacts, inconsistent country codes, three spellings of the same company. These get fixed once at load time rather than in every report downstream.
A central store you can query
Everything lands in one warehouse or database that dashboards, reporting tools and analysts read from directly, in your own cloud account.
Failure alerts
When a source API changes or a sync breaks, you hear about it from an alert rather than from a chart that quietly went flat two weeks ago.
How we work
- 01
Inventory what you actually have
We list every system holding relevant data, who owns it, how it can be accessed and how far the history goes back. This step usually turns up two or three sources nobody remembered.
- 02
Agree the definitions
Before any pipeline is written we settle what the core metrics mean and who decides when that changes. This is the part that prevents an expensive rebuild six months later.
- 03
Build the pipelines
Extraction, transformation and loading, with retries and logging. Where a maintained connector already exists we use it rather than writing and then owning our own.
- 04
Reconcile against the source
We check the loaded figures against the original systems for a known period. If they do not match, we find out why before anyone builds a dashboard on top of them.
- 05
Hand over and monitor
You get documentation of what runs when, alerting on failures, and a clear path for adding the next source without calling us first.
Tools and technology
Where a solid open-source tool exists, we choose it over a closed one. No lock-in to a single vendor, and costs you can actually predict.
- Airbyte
- Apache Airflow
- dbt
- Great Expectations
- PostgreSQL
- Supabase
- n8n
- Metabase
- Google BigQuery
- Google Analytics 4
- HubSpot
- Google Sheets API
Frequently asked questions
Related work
More services in this category
Dashboards and reports
A dashboard is worth building when it changes what someone does on Monday morning. We design views around the decisions you make, not around every metric a tool can export.
Business analytics and insights
Numbers on their own do not tell you what to do. We work out what the data is saying about your sales, your processes and your customers, and what is worth changing because of it.
Reporting automation
If someone spends the first day of every month rebuilding the same report, that work can run on a schedule instead. The report arrives, the numbers are current, and nobody assembles it by hand.
Read testimonials from companies that trusted us
Delivered well ahead of the deadline.
ZanReal's individual approach is impressive.
Knowledge and business intuition make them a valuable partner.
Quick solutions that reduced costs by 99%.
Latest
Technical guides, security insights, and what we've learned building with AI.
Still exporting the same numbers from five different tools?
Message usList the systems your data lives in today. We will map what can be connected, flag where the definitions clash, and propose the first sources to bring together.
Can't keep up with changes in AI world?
Let us do the heavy lifting. Every week we distill the most important AI developments into a focused 5-minute briefing — so you stay ahead without the noise.
Find out more
