Send us the task
Reports 01 Sources 02 Levels 03 Limits 04 Scale 05 Architecture 06 Craft 07 Reliability 08 Cases 09 Engagement 10 Questions 11 Send us the task

Atoms / Services / Dashboards & analytics

Discipline 03 — since 2014

The reporting everyone else calls unbuildable.

A BI licence gives you a chart over one clean table. We build what sits underneath: every internal and third-party system joined into one governed model, any kind of report on top of it, multi-level and drilling down to a single transaction — at any scale and any complexity.

Twelve years, 300+ analytical systems, 400M+ rows refreshed a day across 90+ kinds of source system. Have a task or a problem you need solved? Send it over, whatever its size — a great many of our clients arrived with something small and stayed for years. You get an answer within 24 hours.

Reportingdata stack / liveFresh
LAYER 01 · SOURCES CRM · ERP · ads · billing · files LAYER 02 · DEFINITIONS Four systems, four revenues LAYER 03 · MODEL History · joins · currency · hierarchy LAYER 04 · DEPTH Board KPI down to one document LAYER 05 · DELIVERY Dashboards · alerts · exports · API ATOMS ANALYTICS Any-source ingest Semantic layer Modelled warehouse Drill-through engine Any surface
Connect → Model → Reconcile → Show400M+ rows / day
300+

dashboards and reporting systems shipped

90+

kinds of system connected as a source

400M+

rows refreshed a day on one platform

12+

years building analytics on messy data

VerticalsRetail · Finance · Logistics · Marketplaces · Manufacturing · SaaS
Hardest classGroup-level consolidated reporting over a dozen incompatible systems
EntrySend us any task or problem — an answer within 24 hours
What we build01 / 12

Any report, at any level.

From a wall-mounted operations screen that updates every thirty seconds to a consolidated group P&L that has to reconcile to the cent across eleven legal entities. Same platform underneath, different surface on top.

Executive & boardStrategy

One page the whole board reads the same way: plan versus actual, entity and segment splits, and a defensible answer when someone asks where a number came from.

Consolidated · governed

Operational real timeOps

The screen a duty manager watches: orders, queues, SLA clocks, capacity and anomalies, refreshed in seconds rather than overnight.

Seconds · alerting

Financial & P&LFinance

Multi-entity consolidation, intercompany elimination, multi-currency, cost allocation and a month-end close that stops being a two-week manual exercise.

Reconciled · auditable

Cohort & unit economicsProduct

Retention, LTV, payback and margin per cohort, channel and product — computed on event-level history rather than assembled by hand each quarter.

Event level · historical

Supply & inventoryOperations

Stock, movement, lead times, service level and shortfall forecasting across warehouses, suppliers and channels that each count stock differently.

Cross-system · forecast

Marketing & attributionGrowth

Spend from every ad platform joined to revenue in the CRM and the billing system, on one attribution model everyone has agreed to.

Joined spend · revenue

Regulatory & auditCompliance

Fixed-format regulatory returns and internal control reports, generated on schedule with lineage from every figure back to its source record.

Lineage · fixed format

Your reportUntested

The one that has never reconciled, or that three teams have quoted and abandoned. Two weeks, fixed fee, one slice running on your real data —.

Bring it to us

Every report we ship carries its definitions with it: what the metric means, which source records it came from, when it was last refreshed and what changed since the last version. A number without that provenance is a slide, not a report — and it is the reason most dashboards quietly stop being trusted in month four.

Connecting the stack02 / 12

Every system you have. Including the awkward ones.

Third-party CRMs, internal systems, the warehouse, the ad accounts, the billing engine, the 2004 database nobody wants to touch and the spreadsheet that four people still edit by hand. If it holds a number the business reports on, it becomes a source.

CRMSalesforce · HubSpot · Pipedrive
ERPSAP · 1C · Dynamics · NetSuite
DatabasesPostgres · MySQL · MSSQL · Oracle
WarehousesBigQuery · Snowflake · ClickHouse
AdsGoogle · Meta · TikTok · affiliates
BillingStripe · banks · acquirers
SupportZendesk · Intercom · telephony
ProductApp & web event streams
OpsWMS · TMS · MES · POS
FilesExcel · CSV · mail · SFTP
LegacyNo API · terminal · desktop
InternalYour own systems
01

No connector is not an answer

Where a documented API exists we use it. Where it does not, we read the database directly under agreed constraints, take change-data-capture off the replica, pull file and protocol exchanges, or build the adapter ourselves — the same integration engineering our automation practice does every day. A system without a marketplace connector is a normal source, not an exclusion.

02

Joining is where the work actually is

Two systems rarely agree on what a customer is, when revenue is recognised, or which currency rate applied on the day. We build the entity resolution, the conformed dimensions and the history — including slowly changing attributes — so a figure computed across four systems means one thing and keeps meaning it after a reorganisation.

03

One definition, versioned like code

Metrics live in a governed semantic layer, versioned like code, with a written definition, an owner and a version history. Every dashboard, export and API call reads from the same place, so two departments cannot arrive at a meeting with two different revenue numbers and no way to settle which is right.

04

Loads that survive the source changing

Sources break, backfill, rename fields and restate history. Loads are incremental and idempotent, every run is tested against control totals and freshness rules, and a bad load is quarantined and replayed rather than published — because a dashboard that is quietly wrong is worse than one that is visibly late.

Depth03 / 12

Complex, multi-level reports that hold up all the way down.

The board number and the invoice behind it have to be the same truth. We build reports that drill from a single group-level KPI through entity, segment, product and cohort to the individual transaction — every level computed from the same model, so the totals always tie.

Drill-through hierarchy6 levels
Six levels of drill-through in an Atoms reporting model A board KPI drills down through legal entity, business segment, product line, cohort or customer, and finally to individual transactions and documents. All six levels are computed from a single governed semantic layer, so every level reconciles to the one above it. LEVEL 01 Group KPI 12 numbers LEVEL 02 Legal entity & region 11 entities · 6 regions LEVEL 03 Segment & channel plan vs actual vs last year LEVEL 04 Product line & SKU margin, mix, contribution LEVEL 05 Cohort, customer, order millions of rows LEVEL 06 Transaction & source document the record itself, with lineage DRILL THROUGH SINGLE SEMANTIC LAYER one definition per metric · every level reconciles upward · same figure in dashboard, export and API

Complexity is not only depth. Comparison against plan, budget versions and last year; rolling and period-to-date windows; multi-currency at the correct historical rate; allocations and eliminations; restated history after a reorganisation; row-level access so a country manager sees their country and the CFO sees everything — all of it belongs in the model, not in a spreadsheet somebody maintains beside the dashboard.

Where BI tools stop04 / 12

Six walls, six answers.

Power BI, Tableau, Looker and Metabase are good tools, and we build on them when they fit — the failure is almost never the chart. It is the six things underneath, and every serious reporting project meets all six. Here they are, and what we do about each.

01 — SourcesCoverage

Connectors for half your stack

The marketplace covers the popular SaaS tools and stops exactly at your internal systems, your legacy core and the supplier feed that arrives as mail attachments — which is where the interesting numbers live.

What we doWe build the adapter for anything: undocumented APIs, direct database and CDC, protocol and file exchange, internal systems written in-house. Any source, no exclusions.

02 — TruthDefinitions

Four dashboards, four revenues

Each team builds its own logic in its own workbook. Six months later no two reports agree, nobody can say which is right, and the meeting is spent arguing about the data instead of the business.

What we doA governed semantic layer: one versioned definition per metric, one owner, and every surface reading from it.

03 — DepthDrill-down

Two levels, then export to Excel

The dashboard answers what happened but not why, so the real analysis happens in a spreadsheet built by hand each month — and that spreadsheet becomes the report the business actually runs on.

What we doDrill-through from group KPI to source document, every level computed from the same model, with totals that reconcile at each step.

04 — VolumeCeilings

In-memory models that fall over

An extract that worked at ten million rows takes forty minutes at four hundred million, refreshes overnight if it finishes at all, and quietly gets sampled until the numbers stop being true.

What we doAn engineered warehouse: incremental loads, partitioning, pre-aggregation and query design so response stays interactive on billions of rows.

05 — FreshnessLatency

Yesterday's data, refreshed at night

A nightly batch is fine for a monthly review and useless for a duty manager, a trading desk or a marketplace — and one broken load means the screen shows a confident number that is two days old.

What we doFreshness is a per-metric requirement: streaming and CDC where seconds matter, batch where they don't, and a visible last-updated stamp with alerting when it slips.

06 — OwnershipLock-in

Rented per viewer, forever

Logic buried in a proprietary workbook nobody can review, a per-seat licence that makes “show it to the whole warehouse team” a budget conversation, and no way to move without rebuilding.

What we doModels, transformations and definitions as code, in open storage formats, on infrastructure we run for you. Unlimited internal viewers — no per-seat meter on who is allowed to look at a number.

Scale05 / 12

From one team to a group of eleven companies.

We build at any scale — a single operational screen for a department, or a reporting platform that serves thousands of people across a group. The architecture is chosen for the size of the problem, not sold as one fixed stack.

Operating envelope

What a single platform sustains

Volume, freshness, depth and concurrency are fixed on day one and written into the SLA — not discovered in month four when the morning refresh stops finishing before the morning. Small engagements start small on purpose: the same model, sized to what you actually have.

Largest model
40B+ rows
Fastest refresh
30 sec
Deepest report
6 levels
Concurrent viewers
5 000+

Where the volume goes

Typical daily profile

Incremental source loads340M rows
Model & aggregate rebuilds62M rows
Streaming events ingested25M
Tests, control totals & reconciliationevery load
Loads quarantined, not published0.2%

Illustrative profile of one production platform. Your envelope is fixed in the design phase and written into the SLA.

Architecture06 / 12

Built so the number can always be traced back.

Every analytical system we ship runs on the same contour. Blocks change per client; the property that does not change is that a figure on a screen can be followed back to the source record that produced it, and a bad load is caught before anyone reads it.

Analytics contourrev. 07
Reference architecture of an Atoms analytics platform An orchestration layer drives schedules, incremental loads, tests and backfills. Data moves from any source system through ingest, into a modelled warehouse and a governed semantic layer, then out to dashboards, exports, alerts and APIs. A data quality and observability layer measures every stage and feeds freshness and reconciliation alerts back into ingest and modelling. LAYER 00 Orchestration schedules · incremental & CDC loads · dependency graph · tests · backfills · replay SOURCES Any system CRM · ERP · opsDatabases Ads · billingFiles · legacy LAYER 01 Ingest Adapters & CDCRaw history kept Schema drift handlingInput validation idempotent loads LAYER 02 Model Entity resolutionConformed dimensions Semantic layerVersioned metrics one definition each LAYER 03 Serve Pre-aggregatesDrill-through queries Row-level accessCaching LAYER 04 Deliver DashboardsScheduled reports AlertsExports & API CROSS-CUTTING Data quality & lineage tests on every load · control totals · freshness SLA · anomaly detection · column-level lineage · on-call FRESHNESS ALERTS RECONCILIATION
Why we are number one at this07 / 12

Anyone can draw a chart. We make the number true.

The difference between a BI contractor and an analytics engineering team shows up half a year after launch — in whether anyone still opens the dashboard, and whether they believe it when they do.

Dimension
Typical BI vendor
Atoms
Sources
Whatever the tool has a connector for; the rest is “out of scope” or a manual upload.
Any system that holds a number — internal, third-party, legacy, no API — connected as an engineered source.
Definitions
Logic duplicated inside each workbook, so reports drift apart and nobody can say which is right.
One governed semantic layer, versioned like code, with an owner and a written definition per metric.
Depth
Two levels of filters, then an export and a spreadsheet that becomes the real report.
Drill-through from group KPI to the source document, with every level reconciling to the one above it.
Scale
Fine on the demo extract; sampled, slow or nightly once the real history arrives.
Warehouse modelling, incremental loads and aggregate design — interactive on billions of rows.
Trust
Nobody notices a broken load until a number in a board pack turns out to be wrong.
Tests and control totals on every load, freshness SLA per metric, bad loads quarantined instead of published.
After go-live
The project closes, the team disperses, and the system quietly decays until something breaks badly enough to be noticed.
We run it. Hosting, monitoring, on-call, upstream changes and new features — month after month, by the people who built it.
01

We start from the decision, not the chart

Before anything is built we establish who reads the report, what decision it changes, and what number would make them act differently. Half of the dashboards we are asked for shrink to a third of their size at this step — and the ones that survive get used, because they answer a question somebody actually has on a Monday morning.

02

Reconciliation is part of the deliverable

A new report is not finished when it renders. It is finished when its totals have been tied to the source systems and to whatever the business used before — usually a spreadsheet — and every difference has been explained rather than averaged away. That exercise is where the real data problems surface, and it is the reason our reports survive their first audit.

03

Complexity belongs in the model

Eliminations, allocations, historical currency rates, plan versions, restated hierarchies and row-level access are all modelled once, centrally, and tested. They do not live in a filter someone remembers to set, or in a workbook that only one analyst can maintain — which is how organisations end up with a reporting function that cannot take a holiday.

04

We run what we build, for years

Transformations, metric definitions, tests, infrastructure and runbooks, all as code. Shipping is the start of it, not the end: hosting, monitoring, on-call, upstream changes, tuning and new features all sit inside one monthly arrangement, handled by the same engineers who designed the thing. A system we will still be running in year eight has to be engineered to be operated, not merely delivered — and most of our clients are on their third or fourth system with us.

Reliability08 / 12

What we commit to once the business decides on it.

A reporting platform that a board reads is a production system with an uptime, not a project that was delivered once. These are the commitments in the support agreement; tiers and windows are set per project against how critical the reporting is.

CommitmentTargetWhat it means in practice

Freshness

Per metric

Every metric carries an agreed freshness window — thirty seconds, hourly or daily — shown on the report itself and alerted on when it slips. Nobody has to guess how old a number is.

Correctness

Every load

Tests, control totals and reconciliation against the source systems run on every load. A load that fails them is quarantined and replayed rather than published to the dashboard.

Query latency

< 2 s p95

Interactive response on the agreed model size and concurrency, including drill-through. Slow queries are treated as defects, not as the nature of big data.

Monitoring

24 / 7

Failed and late loads, schema drift at a source, volume anomalies and metric jumps are detected by us and raised to you — not noticed by a director during a board meeting.

Engineering response

From 4 h

Incident tiers with named windows. A source system upgrade, a changed field, a new entity or a redefined metric is routine work covered by the retainer, not a change request.

Availability

99.9 %

Measured on completed refreshes against schedule and on dashboard availability, reported monthly. You get the same monitoring we watch.

Selected work09 / 12

Three reports that had never reconciled.

Each of these came to us after a BI rollout stalled, an analyst left with the logic in their head, or a consultancy delivered a dashboard the business stopped trusting. Clients are under NDA — the engineering detail we walk through against your own case.

01 — Retail group2024

Group P&L across 11 entities and 4 ERPs

Consolidated management reporting for a multi-country retail group, from board KPI down to the individual receipt, closing daily instead of monthly.

What was hardFour ERPs with different charts of accounts, intercompany eliminations, three currencies at historical rates, and a close assembled by hand in 40+ spreadsheets.

Sources joined
14
Close time
−92%
Rows / day
180M
Manual reports retired
240
02 — Marketplace2025

A real-time operations wall for a 24/7 marketplace

Live order flow, courier capacity, SLA breaches and anomaly alerting on one screen for operations, plus the same numbers as a daily executive view.

What was hardEvent streams and transactional databases that disagreed by construction, a thirty-second freshness requirement, and thousands of concurrent viewers at peak.

Freshness
30 sec
Events / day
25M
Concurrent users
3 200
Downtime, 12 mo
0
03 — Lending2025

Risk and regulatory reporting with drill to the loan

Portfolio, vintage and risk reporting for a consumer lender, with fixed-format regulatory returns generated on schedule and traceable to source records.

What was hardRestated history after a portfolio migration, six levels of drill-down required by the regulator, and a rule that every figure must be reproducible as of any past date.

Reports automated
60+
Drill levels
6
Preparation time
−85%
Audit findings
0
How we start10 / 12

We build one real report before either side signs a platform.

On real reporting, a quote written from a brief is a guess — the gap between the data as described and the data as it is runs to a factor of ten. So we build one slice on your actual systems first, for a fixed fee.

1Brief

The decisions and the metrics

Who reads it, what they decide, which metrics matter, where the data lives and how fresh it has to be. Often the scope narrows and gets cheaper right here.

OutputMetric list & source map

2Pilot

One report, end to end, fixed fee

Two to four weeks on your real sources: one report built through the full stack, its totals reconciled against your current numbers, plus the honest list of data problems we found.

OutputWorking report + data risk list

3Design

Model, semantics and SLA

Data model, metric definitions, refresh windows, access rules, volume envelope and running cost — written into the contract, not into a slide.

OutputFixed scope & fixed price

4Build

Weekly working increments

Every week ships a report or a source that runs in your environment and gets used. Monitoring, runbooks and documentation are built alongside it, not bolted on at the end.

OutputA system running in production

5Operate

Monitoring, changes, new reports

On-call for loads and freshness, handling source-system changes, new metrics and new reports as the business asks for them. Routine work sits in the retainer.

OutputNumbers nobody argues about

Engagement11 / 12

How we contract, and who we are wrong for.

Analytics prices by the state of the data and the number of systems that have to agree, not by the number of charts. So we price in two steps, and we say no early when the work is not ours.

Model

Two steps, both fixed

First task — one small piece of work, days rather than weeks, quoted before it starts and often all anyone needsFixed price
Pilot — two to four weeks on your real sources; one report end to end, reconciled, with the data risks documentedFixed fee
Build — model, semantic layer, reports, access rules, refresh SLA and price fixed after the pilotFixed price
Operate — hosting, load monitoring, on-call, source changes, new metrics and new reportsMonthly

You start on whichever rung fits, and most clients start with one small first task. From the Operate rung onward it is a single monthly arrangement covering hosting, monitoring, on-call and continued development, so nobody on your side has to build an operations team around it. Infrastructure runs on ours or inside your own perimeter — whichever your security and finance people prefer.

Not our work

Say no early, honestly

  • One chart over one clean spreadsheet. A junior analyst and an off-the-shelf tool will do that this week for a fraction of our fee.
  • Reporting nobody inside the company will own. Without an owner for the metrics, a platform becomes an unread bookmark by month three.
  • Dashboards built to justify a decision that has already been taken. We will report what the data says, which is sometimes not what was ordered.
  • Reselling BI licences by the seat. We take responsibility for numbers that are correct, which requires owning the model underneath them.

If your reporting is real but not our kind of work, we will say so in the first reply and point you at someone better suited — including an off-the-shelf tool when that is genuinely the right answer. That costs us nothing and saves you a quarter.

Legal & governance

Reporting your risk
team can sign off.

Platforms run inside the client's own perimeter, read only the sources the client authorises, and enforce row- and column-level access so each viewer sees exactly what their role allows. Personal data is minimised at ingest, and who saw which report is itself logged.

GDPR alignment and internal-control requirements are implemented through technical and organisational controls. Confirming the lawful basis, the retention rules and the reporting obligations for a specific dataset and jurisdiction remains with the client’s legal and risk teams — we give them the lineage and documentation to do it.

01 — ScopeSources the client owns or is authorised to read
02 — AccessRow- and column-level rules, access itself logged
03 — LineageEvery figure traceable to its source record
04 — ContractNDA and DPA signed before technical detail is shared
Questions12 / 12

What gets asked about hard reporting.

If yours isn’t here, put it in the form — we answer in writing, within 24 hours, and without a discovery call first. Most questions get a straight yes or no rather than a proposal.

We already have Power BI. Why would we need you?
Keep it — we build on Power BI, Tableau, Looker, Metabase and Superset routinely, and the chart layer is rarely the problem. We are for what sits underneath: getting every source system in, agreeing one definition per metric, modelling history and hierarchies, keeping refreshes correct at volume, and making drill-through reconcile. When that layer is right, your existing BI tool suddenly works the way it was sold to you.
Our systems don't have APIs, and one of them is ancient.
That is the normal case. In order of preference we use a documented API, an internal or undocumented interface, change-data-capture or direct reads from a replica under agreed constraints, and file or protocol exchange — with the fragile paths isolated behind an adapter so a source upgrade is a contained repair. Twelve years of integration work on systems with no connector is exactly what we bring to reporting projects.
Our numbers don't match between systems. Can you fix that?
That is most of the job, and it is rarely one bug. It is usually several definitions of the same word, different timing rules, duplicate entities and history that was restated in one system and not another. We reconcile the figures against each source and against whatever you use today, explain each difference rather than smoothing it, and then fix the definition centrally so it stays fixed. Expect some uncomfortable findings in the first two weeks — that is the point.
How complex can the reports get?
Six levels of drill-down from a group KPI to a single source document is routine, and so are multi-entity consolidation with eliminations, multi-currency at historical rates, plan and budget versions, rolling and period-to-date windows, allocations, restated hierarchies and row-level access. The rule we hold to is that every level reconciles to the one above it — depth without that is just more surface area to be wrong on.
How fresh can the data be?
Freshness is set per metric rather than for the whole platform: seconds for operational screens via streaming or change-data-capture, minutes or hours for commercial reporting, daily for consolidated finance. Every metric shows when it was last refreshed, and a missed window raises an alert to us before you notice it. Real-time everywhere is usually the wrong answer — it costs more and helps nobody on a monthly P&L.
We have hundreds of millions of rows. Will it stay fast?
Yes, and that is an engineering property rather than a licence tier. Incremental loads, partitioning, correct grain, pre-aggregation and query design keep response interactive on billions of rows, including drill-through to the transaction. The envelope — volume, concurrency and latency — is measured during the pilot and fixed in the SLA before the build starts.
Where does the platform run, and can our own analysts extend it?
Most clients run on our infrastructure and we operate the platform for them — hosting, refresh monitoring, on-call and source changes sit inside one monthly arrangement. Where security or data-residency rules require it, we deploy inside your own perimeter instead. Everything is built in open storage formats with transformations and metric definitions as code, so your analysts can add metrics and reports on top of the model themselves; we train them on it and stay on hand for the parts that need us.
How fast can we start?
A written feasibility assessment within three days of the brief, and the paid pilot itself usually starts within two weeks. If you are facing a board deadline or a regulatory return, say so in the form and we will tell you honestly whether we can hit it.

Bring us the hard report

Tell us which number
nobody can agree on.

Send the report you need, the systems the data sits in and how fresh it has to be. You get a straight answer: whether it can be built, what specifically makes it hard in your data, and roughly what it costs to build and to run. No deck, no discovery call before there is anything to discover.

  • A substantive written reply within 24 hours, whatever the size
  • Feasibility assessment within three days of the brief
  • NDA signed before we go into technical detail
  • If it isn’t our kind of work, we say so immediately

By sending you agree to our privacy policy. Briefs are never shared and you will not be added to a mailing list.