Omegaswift
Solutions

Data Engineering & Analytics

Most reporting arguments are definition arguments in disguise. We build the models underneath your numbers, write down what each metric means, and put that meaning in one place so every tool answers the same way.

How We Help

What data engineering & analytics looks like as a piece of work.

Two People, Two Numbers, One Meeting

It happens in the same week every month. Sales says the quarter closed at 4.1 crore, finance says 3.8, and the next forty minutes go on arithmetic instead of on the decision the meeting was called for. Neither of them is wrong. Sales counts a deal on the day it is signed and includes the pilot fee; finance counts it on the day it is invoiced and excludes anything still refundable. Both are defensible, both are buried in a query somebody wrote two years ago, and neither is written down anywhere a third person could read it. That is the real problem in most reporting work, and no amount of chart tidying touches it. It is settled by making somebody choose, once, in a sentence, and then applying that sentence everywhere.

The Definition Lives In One Place

Once the argument is settled, the definition has to live somewhere it cannot be quietly re-litigated. Not a wiki page nobody has opened since the week it was written, and not eleven BI queries that were copies of each other on the day they were made and have drifted apart since. It lives in the modelling layer, in version control, as one piece of logic that the dashboard, the export, the notebook and the finance pack all read. Changing what active customer means then becomes a reviewed change with a name against it and a date it takes effect, rather than a Tuesday afternoon edit inside somebody's report. The tedious part is naming. Two fields called revenue with different meanings will be used interchangeably within a month, whatever the documentation says.

History Is A Fact, Not An Overwrite

A customer moves from the small business tier to enterprise. An account changes owner. A product moves price band. In the source system each of those is an update, and the old value is simply gone. Run last year's regional report again and the figures have moved, because every historical order has been silently re-attributed to whoever holds that account today. People discover this at the worst possible moment, usually when a number in a board pack no longer matches the one printed in the previous board pack. So dimensions describing things that change get built with effective dates and a current flag. It is more work, more rows, and occasionally an awkward query. The alternative is a reporting layer that cannot answer what we believed in March, which is asked far more often than anyone expects.

Most Of Your Dashboards Are Dead

Every mainstream BI tool logs who opened what, and almost nobody reads those logs. When we do, the shape is consistent: a handful of dashboards carry nearly all the views, a long tail was opened once by the person who requested it, and several have scheduled emails still going to people who left the company. Removing them is not housekeeping. Each one is a refresh somebody pays for, a thing that breaks when a model changes, and a chance for a number to be quoted from a report nobody maintains. So we pull the usage figures, put a named owner on what survives, and switch the rest off before deleting anything. A fortnight of silence tells you the truth about whether a report was needed far better than asking its requester will.

Self-Serve Fails On Trust, Not On Tools

Self-serve analytics is usually bought as a licence and delivered as a hope. The tool is rarely the obstacle. The obstacle is a manager opening a table list, finding orders, orders_v2, orders_final and stg_orders, having no idea which one finance uses, and sensibly going back to asking an analyst rather than risking a wrong figure in front of a director. The work that fixes it is curation, not access: a small set of marts marked as the ones to use, columns described in the words the business says out loud, joins already made so nobody needs to know the key, and one real hour of training on the five questions people actually ask. Even then a proportion will never self-serve, which is fine, provided your analysts are answering new questions rather than re-running last month's.

What we build

The shapes data engineering & analytics work actually takes

  • Warehouse and modelling

    A warehouse sized to your team, with staging, dimensions and marts kept separate, so changing one definition is an edit in one place rather than across thirty reports.

  • Metric definitions

    One written meaning per metric, held in version control and read by every tool. Changing it becomes a reviewed decision with a name and an effective date attached.

  • Dashboards and packs

    A small number of dashboards with owners against them, plus the monthly pack built on a schedule instead of by one person with a workbook and a long evening.

  • Dimensional history

    Effective dates on the attributes that change, so a report run today about last March still returns what March actually looked like at the time.

  • Data contracts

    A written agreement with each source system owner: the fields we depend on, what they mean, and how much notice we get before one is renamed or dropped.

  • Self-serve enablement

    Curated marts, described columns, joins already made, and training on the questions people ask most. Handing out access has never on its own produced self-serve analytics.

How we work

How a data engineering & analytics engagement runs

  1. 01

    Find the disputed number

    We start with the metric two teams argue about, because it already has an audience and a cost. Modelling a figure nobody quotes produces a technically correct warehouse and no visible change at all to anybody's week.

  2. 02

    Get the definition written

    In a room with the people who disagree, in one sentence, exclusions included. This is a business decision wearing technical clothing, and it stalls indefinitely until somebody in that room has the authority to settle it.

  3. 03

    Model it once

    Staging, dimensions and marts, with the agreed definition implemented in exactly one place and every tool reading from there rather than keeping its own private copy of logic that will quietly drift.

  4. 04

    Publish a small owned set

    Three dashboards with names against them beats thirty with none. Each one states plainly what it counts, when it last refreshed, and who to contact on the day the figure looks wrong.

  5. 05

    Review usage, then retire

    Usage pulled quarterly, dead reports switched off before they are deleted, and definitions revisited whenever the business changes shape. Reporting that nobody prunes becomes reporting that nobody trusts, at roughly the same speed everywhere.

Who it is for

You probably need this if

  • Two decks, two numbers, one meeting

    The quarterly review opens with a reconciliation rather than a decision. That is a definition problem, and no further chart work is going to settle it.

  • The monthly pack is one person's weekend

    Assembled by hand every month, correct only because one person remembers which adjustments to apply, and impossible for anybody else to reproduce while they are on leave.

  • Nobody knows which table to trust

    You bought self-serve licences and the requests still arrive at an analyst, because the table list offers four plausible options and no signal about which one is right.

  • Last year's report changed

    Rerun something from a previous quarter and the figures have moved, because the source overwrote history and every past order now sits under today's account owner.

FAQ

Questions we get asked

Isn't this what our BI tool is for?

A BI tool draws charts from whatever logic you hand it, and it will draw eleven definitions of revenue as cheerfully as one. It is the layer that displays an answer, not the layer that decides what the answer means. In most organisations we look at, the meanings are scattered across saved queries, a few spreadsheets and two dashboards where somebody adjusted a filter in a hurry before a meeting. Moving that logic underneath the BI tool, into modelled tables and a single metric definition, is what ends the disagreement. It has a second benefit: changing BI vendor later becomes a few weeks of rebuilding views rather than a rebuild of your reporting, because the meaning of your numbers is no longer held inside one supplier's file format.

We already have data landing in one place. What does this add?

Landing data and being able to read it are different jobs. Ingestion answers whether the rows arrived, on time and unbroken. This work begins after that: shaping arrival into tables built around how the business thinks, deciding what counts as a customer, keeping history the source system overwrites, and producing the handful of reports people act on. It also pushes one conversation upstream, into a data contract with each source owner covering the fields your definitions depend on and the notice you get before one is renamed. Plenty of companies have working pipelines and still argue about the numbers in them, because nobody agreed the definitions. If your ingestion is already sound, this is faster and cheaper than usual.

Warehouse or lakehouse? Which should we choose?

Team size answers this more honestly than architecture posts do. If two or three people will look after it alongside other work, take a managed warehouse: BigQuery, Snowflake, Redshift or similar, where SQL is the only language anyone has to learn and there is very little to operate. A lakehouse earns its complexity when you have engineers who will own it, genuinely large or unstructured data, or a requirement to keep files in your own storage for cost or regulatory reasons. Choosing the more sophisticated option with nobody to run it is the common failure: it works during the build, then an upgrade lands eighteen months later and nobody left understands the cluster configuration. And if the whole company runs through one system and the team is small, the honest answer is neither, yet.

Who owns a metric when the number turns out to be wrong?

Two owners, and both get named before anything goes live. A business owner decides what the metric means and signs off any change to that meaning. A technical owner is responsible for the model and the job that produce it. When a figure looks wrong, the technical owner establishes whether it is broken or merely surprising, and the business owner decides whether the definition was the problem. Without those two names, a wrong number produces a week of polite email, no correction, and a report that quietly stops being opened. We also print the contact on the dashboard itself, next to the last refresh time. It sounds like a trivial detail and it changes behaviour more than most of the modelling does.

Why does self-serve analytics usually fail?

Because access was the easy half of the problem. People get a licence, a login and a list of tables, and the list contains four things that all look like orders. Not knowing which one finance uses, and reasonably unwilling to present a wrong figure to their director, they go back to asking somebody. Self-serve starts working when a small curated set is marked as trustworthy, when columns are described in the words the business uses rather than the source system's abbreviations, when the joins are already made, and when someone spends an hour showing people how to answer the five questions they ask most. Expect a proportion of your users never to touch it. That is acceptable, as long as analysts get their time back for new questions.

How do we find the dashboards nobody opens?

The evidence already exists. Every mainstream BI tool records views per dashboard, per user, over time, and turning that into a ranked list is an afternoon of work. What comes back is usually uncomfortable: a small group taking most of the traffic, a long tail viewed once by whoever requested it, and scheduled emails still arriving for former employees. The safe way to act on it is to switch off rather than delete. Turn off the refresh, leave the dashboard in place with a note explaining why, and wait a fortnight. If nobody says anything, delete it. If somebody complains within the hour, you have just found an owner and a genuine use, which is exactly what the exercise was for.

Is a spreadsheet ever the right answer?

Often, and we would rather say so than sell you a pipeline. A spreadsheet is correct when the question is genuinely one-off, when the shape of the model changes every time you look at it, when fewer than about five people need it, or when the work requires human judgement typed in beside the numbers, which describes most planning and most budgeting. It becomes the wrong answer at an identifiable point: when other people start depending on it, when somebody rebuilds it on the same day every month, or when its figures turn up in decisions and nobody can trace where they came from. Those three signals are the moment to model it properly. Before then, building anything is slower and worse.

What does it cost to keep running once it exists?

Three ongoing costs, and only one of them is a vendor invoice. There is platform spend, which for a mid-sized company is usually lower than expected and straightforward to attribute per job. There are BI licences, which are charged per seat and grow quietly, so it pays to check every few months who still logs in. And there is a person: somebody has to own the definitions, absorb the change when a source system renames a field, and retire reports that have lost their audience. That last one is the cost nobody budgets and the one that decides whether any of this still works in two years. We can hold it, hand it over documented so your team holds it, or share it. It does not reach zero.

What you get

What is different once the data engineering & analytics work is done

  • One written definition of revenue, active customer and churn, applied in a single place
  • Dashboards with a named owner and a view count, so the dead ones can be retired
  • History kept when a customer changes segment, so last year's report still says what it said
  • A monthly pack assembled on a schedule rather than by one person who cannot take leave

Ready to talk about your IT?

We are happy to answer any questions you have and help you work out which of our services fit your needs.