Get started

Mosaic · How it works

How Mosaic finds the reason.

A comparison can only tell you two numbers differ. DataMosaic can say why, because it knows how the record was meant to travel in the first place.

01

Model the flow, not just the numbers.

Every reconciliation in Mosaic is a path: where a record is created, what moves it, and where it should end up. That path is the thing that makes an explanation possible.

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 — drawn once, checked every night.

02

Define what counts as correct.

For every step you say what should be true. Mosaic doesn't force your process into a template — every business has different systems, every integration has different rules, and every company has its own definition of a valid transaction.

  • what data should move
  • how it should be transformed
  • what conditions must be true
  • what counts as an exception
  • where the data should end up
Did every sale reach the ERP?A question
Yes
Expect the totals to agree.
No
Explain why, and name the record.
One question, two answers, and what each one is expected to mean.

That logic becomes a reusable control that runs again and again.

03

Check reality against it, continuously.

Once the control exists it runs on its own — every store, every night — and the result is a count, not a spreadsheet.

Expected1,248
Received1,241
Missing7
The result rows: nine stores match, 0031 is short two and marked Rejected, 0036 short three and Never attempted, 0048 marked Never mapped. The result rows: nine stores match, 0031 is short two and marked Rejected, 0036 short three and Never attempted, 0048 marked Never mapped.
Twelve stores. Nine agree. Three carry their reason.

04

Follow the exception to its cause.

This is the step a comparison cannot do. Because Mosaic knows the path, it can ask each stage of it what it saw.

7

sales missing

7

transactions 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

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.
A result table naming receipts T-0031-0475 and T-0031-0480 with their till, closing time and total. The two rows are ringed in red. A result table naming receipts T-0031-0475 and T-0031-0480 with their till, closing time and total. The two rows are ringed in red.
Two receipts, named — till, time and total.

Was it missing, did it fail to move, was it rejected, was it mapped differently, did the systems use different business rules, or was it simply not there yet? Mosaic answers the one that happened.

Build one control and see what it finds.

Get started What it connects to →