Private Preview - features may change without notice
GramSpec
Start free

Make the model · 2

Proof the star matches its source

The answer to “how do I know these numbers are right?”, for the person who has to put their name on the report. Every load holds the star against the database it came from and shows the working, down to the rows.

The star held to its source. On every load the same questions are asked of the source database and of the star, and the difference is worked out line by line. A person can then open any line to the source rows behind it.GRAMSPECYOUR DATAWhoever signs thereportChecked against thesourceThe bridgesource rows, less eachcondition, equal the star'sThe loadasks both sides the samequestionsThe starYour databaseread-only123412 The star held to its source. On every load the same questions are asked of the source database and of the star, and the difference is worked out line by line. A person can then open any line to the source rows behind it.GRAMSPECYOUR DATAWhoeversigns thereportCheckedagainst thesourceThe bridgesource rows, lesseach condition,equal the star'sThe loadasks both sidesthe samequestionsThe starYourdatabaseread-only123412
Blue circles happen on every load. Green squares are a person opening one line to its rows.

On every load

  1. The load asks their database three questions for each fact. How many rows there are, counted again after each condition the person set; the sum of every measure; and both of those month by month. It asks through the same joins and conditions it loaded with, so the count is of what the star was meant to hold.
  2. It asks the star the same. The rows it holds and the same sums.
  3. The difference is worked out line by line. Rows in the source, less the rows each condition leaves out, less rows with no date, less rows before the first day the star holds, must equal the rows in the star exactly, or the line says by how much it does not. Every line keeps both numbers and the query the source number came from.
  4. The page shows the working. The verdict, the steps as a waterfall, the months as a table and the queries, beside the words, so a rule can be changed and the star built again without leaving.

Opening a line

  1. Someone opens the step that took rows away. They name the step; they send no SQL.
  2. The server reads a few of those rows from their database, and hands back the statement. It writes the statement for that step itself, from the same pieces the load used, reads a capped sample read-only, and returns the rows with the exact statement that found them, so their own team can run it on their own database and get the same number.

What this proves, and what it does not. It proves the star matches the source. It does not prove the source is right.