Get started

91 here. 86 there.
Why?

Your POS says one number. Your ERP says another. DataMosaic follows the difference back through the flow and tells you the reason — a rejected record, a mapping error, a rule that changed.

Get started See how it works →

Run it, find the store, find the receipts — 22 seconds

Reads the systems you already run

  • Oracle
  • SQL Server
  • PostgreSQL
  • MySQL
  • SAP
  • Shopify
  • Snowflake
  • REST
  • CSV

You already have a way to find this out.

It takes a morning, it runs on one person's laptop, and it starts from zero every time.

  • Exportone file per system
  • Copyinto a sheet
  • VLOOKUPmatch the keys
  • Filterthe rows that differ
  • Investigateone at a time
  • Send an emailask the store
  • Fix itif the morning holds out

+ everything nobody wrote down — which keys join, which rows to ignore, which difference is fine.

  • Hours lost investigating
  • Business stakeholders start escalating
  • The answer arrives after the decision
  • One person holds the whole method
  • Next month, the same question from zero

tomorrow: open a new sheet

The spreadsheet isn't the real problem. The problem is that nothing you learn today is still there tomorrow.

Mosaic starts where the spreadsheet stops.

Seven sales are missing. That is where a comparison ends. Mosaic follows those seven back through the integration layer until there is a reason.

Not another report. An answer.

7

sales missing

7

found in the POS

5

reached the integration layer

2

were rejected

→

2 receipts with a line that took no taxT-0031-0475  T-0031-0480

  • Integration toolsmove the data.
  • Data quality toolscheck the data is clean.
  • Monitoringchecks the pipeline is running.
  • BIshows you the number.
  • Mosaictells you why the numbers don't match.

It can answer because it knows how the data was meant to travel.

You model the flow once — what should move, how it should be transformed, what counts as an exception. Mosaic then checks reality against it, continuously.

1. Source Baseline Tills
2. Source Shopify
3. Source ERP
4. Compare Full outer join
5. Output 2 keys · 3 measures
Three sources, one join, one output — the model, as you draw it.
Is the store mapped?A question 1
Mapped
Did the ERP refuse any?A question 2
Rejected
Which receipts took no tax?Tills 3
2 receipts
Rejected on a tax codeAnswered 4
Each step asks the next system in the path what it saw.

How Mosaic finds the reason →

Built for the person who gets asked why the numbers are wrong. Usually the IT manager. Usually before nine. Usually with no way to answer except to open four systems and start looking.

Last run business date 18 Sep · finished 04:12
  • Sales — tills to ERP 1 of 12 business locations doesn't match

    Why: store 0031 sent 87 receipts and the ERP took 85. Two carried a line with no tax code, and the ERP refused both:

    • T-0031-0475  till 0031-T1  13:59  281.48
    • T-0031-0480  till 0031-T1  14:42  339.12
  • Stock on hand against counted Everything matches
  • Price file against the tills 3 items priced differently

    Why: a price change approved on Tuesday never reached the tills. Three items are still ringing up at last week's price:

    • SKU-40218  till 12.90  file 11.50
    • SKU-40233  till 7.40  file 6.60
    • SKU-41007  till 24.00  file 21.60
  • Returns against credit notes Everything matches
  • Web orders against payouts Everything matches
  • Tills against the ledger Everything matches

Six checks ran overnight. Four agree. Two don't, and both already say why.

What is open at nine.
  • Runs on your infrastructure
  • Credentials encrypted on disk
  • No data leaves your network
  • On-premise available

Data you can trust isn't just data that matches. It's data you can explain.

Get started What it connects to →