Skip to the page
Get started

Docs · Getting started

Your first Check

From an empty workspace to a comparison that has run and shows a difference.

This walks the shortest honest path: two sources, one comparison, one run. Allow fifteen minutes.

#Before you start

You need two systems that ought to agree about something, and credentials that can read from both. A first Check is easiest when the thing being compared is small and you already know the answer — one day of sales for one shop, rather than a year for the estate.

Our worked example: an invented chain of around 250 shops, comparing what the tills recorded against what the ERP posted, for one business date, by store.

#1. Create the Check

On Home, press New check — on the Checks tile, or the ghost card at the end of the list.

Mosaic asks for a Name, prefilled with New check. Name it for the question it answers, not for the systems involved: Daily sales, tills vs ERP will still make sense to a colleague in eight months.

You land in the Check editor, on the Builder tab.

#2. Add the first data source

A data source is one query against one system. Under Data source, choose one.

Each source is a query and a connection. Write the query so it returns the smallest useful result: the grain you intend to compare on, already grouped. If you are comparing by store and day, return one row per store per day — not every receipt line.

For our example, the till side returns three columns: store code, business date, and net sales.

#3. Run it once

This step is easy to skip and everything downstream depends on it.

Press Run on the source. Until a source has run at least once, Mosaic does not know which columns it returns, and the column pickers further on will have nothing to offer you. If you meet the message "Run the check once to see which columns it offers", this is what it means.

Check the rows that come back. This is the cheapest moment in the whole process to notice that the dates are strings, or that the store code has a leading zero on one side.

#4. Add the second source

Do the same again for the other system. Empty, the panel says "This report has no data sources yet."

The two queries do not have to return the same column names, the same types or the same order. Making them agree is the next step's job, and doing it there rather than in your SQL keeps the queries readable.

Run this one too.

#5. Add the comparison

Under Comparison, add an aggregation — empty, it says "This check has no aggregations yet."

This is where the Check becomes a comparison. Two decisions:

Keys identify a row. They are what makes a row on one side the same row as a row on the other. For our example: store code and business date. Get these wrong and everything looks broken — too few keys and unrelated rows collide, too many and nothing matches at all.

Measures are the numbers that should agree. For our example: net sales.

Point each side's columns at the keys and measures you have chosen. Mosaic suggests matches where a column name is an exact match, a near-spelling, or where this workspace has already agreed what a column means — and labels each suggestion with why it made it, so you can tell a confident match from a hopeful one.

#6. Run the Check

Press Run.

The result line tells you the shape of the answer:

1,204 rows · 1,191 match · 9 different · 4 missing

  • Match — the keys line up and every measure agrees.
  • Different — the keys line up and a measure does not. This is the interesting column.
  • Missing — the row exists on one side only.

Open the different rows. Each shows both values and the gap between them.

#7. Read what it found

A first run usually finds three kinds of thing, and only one of them is a real problem.

Formatting, not disagreement. S014 against 014, or a date that is a timestamp on one side. These show up as missing on both sides at once — the same shop appearing twice, unmatched. Fix them by normalising the source, not by editing the query.

Scope, not disagreement. One side includes returns, or online orders, or a store that closed in March. The totals differ by a consistent, explainable amount.

Actual disagreement. What you built the Check for.

Expect to run it several times as you tighten the first two. That is normal, and it is why the first run is done by hand rather than on a schedule.

#What to do next

Once the Check is honest, three things are worth adding, in this order:

  1. Rules, so the Check grades itself instead of needing to be read. A difference of more than two rows is a problem.
  2. A schedule, so it runs before you arrive rather than when you remember.
  3. A published page, if people outside Mosaic need the answer without a login.

Each has its own section in this documentation.