The only number here a release cannot improve. A sharper check finds more, a fuller state raises a confidence, the DAG moves the blast radius — none of that moves this, because it moves when somebody reads SQL and at no other time. A good release makes it look worse. That is the design working.
agent rulings, kept apart. They triage what a person should read first. They gate nothing, satisfy no verdict floor, anchor no regression check, and cannot move the number on the left. An agent able to raise it would destroy the property that makes it worth printing.
0% of what assay currently sees has been read by a person.
| family | version | ruled | agreed | unclear | open |
|---|---|---|---|---|---|
| No verdicts recorded yet, so nothing here can be measured. assay review -i is one keypress each, and until somebody presses one no question may fail a build. | |||||
A verdict is about a version of a question, so agreement is per version. Unclear is never in the denominator: disagreement means the criteria are wrong, unclear means the state does not carry what the question asks. Reword an option to fix one, add a field to fix the other.
| check | findings | deepest reach | read by a person |
|---|---|---|---|
| column_has_no_description | 11 | 0 | 0 of 11 |
| exposure_undeclared | 10 | 0 | 0 of 10 |
| test_cannot_fail | 3 | 0 | 0 of 3 |
| ranks_by_degrees | 1 | 0 | 0 of 1 |
| duckdb_full_match | 1 | 0 | 0 of 1 |
Responsibility number one, and the one every other answer rests on. A grain a person declared and one a judgment reached at 0.53 are not the same fact, so they are not counted together. 0 model(s) have no uniqueness test at all.
| check | model | what | marts |
|---|---|---|---|
| ranks_by_degrees | int_bad_degrees | window ranks by ST_DISTANCE, which returns degrees | |
| duckdb_full_match | stg_bad_tilde | full-match regex against a literal pattern 'Denver' | |
| test_cannot_fail | stg_bad_notnull | not_null test on `amount` cannot fail | |
| column_has_no_description | stg_bad_notnull | 2 of 2 column(s) have no description in an ingestion model | |
| column_has_no_description | stg_ok_tilde | 1 of 1 column(s) have no description in an ingestion model | |
| column_has_no_description | stg_customer_a | 3 of 3 column(s) have no description in an ingestion model | |
| column_has_no_description | stg_bad_tilde | 1 of 1 column(s) have no description in an ingestion model | |
| test_cannot_fail | int_bad_unique | unique test on `section_id` cannot fail | |
| test_cannot_fail | stg_bad_accepted | accepted_values test on `cls` cannot fail | |
| column_has_no_description | stg_ok_notnull | 2 of 2 column(s) have no description in an ingestion model | |
| column_has_no_description | stg_customer_b | 3 of 3 column(s) have no description in an ingestion model | |
| column_has_no_description | stg_bad_accepted | 2 of 2 column(s) have no description in an ingestion model | |
| exposure_undeclared | int_ok_unique | no model reads `int_ok_unique` and no exposure says what does | |
| column_has_no_description | int_ok_unique | 3 of 3 column(s) have no description | |
| exposure_undeclared | int_ok_degrees | no model reads `int_ok_degrees` and no exposure says what does | |
| exposure_undeclared | stg_ok_tilde | no model reads `stg_ok_tilde` and no exposure says what does | |
| exposure_undeclared | stg_bad_tilde | no model reads `stg_bad_tilde` and no exposure says what does | |
| exposure_undeclared | int_bad_degrees | no model reads `int_bad_degrees` and no exposure says what does |
The 18 with the widest reach, of 26. Severity is arithmetic: the same defect on a leaf and on a model nine marts read are not the same finding.
| coverage | n | meaning |
|---|---|---|
| models assay could not read | 0 | not audited, and an absent audit is not a pass |
| sources nothing reads | 0 | declared, loaded every run, no model and no test refers to it |
| sources only a test reads | 0 | you are paying to test data nothing consumes |
| sources declaring no freshness | 0 | silent when dbt_project_evaluator is installed |
| sources behind their own freshness | 0 | the project states how current it should be and it is not |
| hops that lose most of the parent | 0 | needs --verify; no filter, no group by, no collapse |
Row loss and empty models were not counted. Run assay completeness --verify to count them through this project's own dbt. Their absence above is not a pass.
Coverage of what this project itself declares. assay can say a column is 99% its default; it cannot say whether that is bad. The first is a fact about code and rows, the second is a ruling.