Skip to content

Classification Reports

Every classification job produces a classification report. This page describes the report list, what an individual report contains, how Match Confidence and decision lineage explain each result, and how to export a report.

Select Data Classification > Classification Reports in the navigation menu to view every classification report generated across your data sources. Filter the list by status or connection type. Each row shows:

  • Data Source – the data source that was classified.
  • Collection Name – the collection used for the job.
  • Scan Scope – the object the job was scoped to, and the level it ran at. See Targeted Classification. Individual runs inside an expanded row leave this cell empty rather than repeating the scope.
  • Last Scanned – when the job most recently ran.
  • Classification Method – the deployment model that ran the job (see Classification Processing Location).
  • Columns Scanned – the number of columns the job scanned.
  • Connection Type – the data source’s connection type, such as Snowflake, Databricks, or a specific OLTP database.
  • Status – In Progress, Needs Review, or Confirmed as a job progresses, or Error, Paused, or Cancelled if it’s interrupted. Confirmed means the report is available. Needs Review occurs only on a job you ran with Human-in-the-Loop Review: it has finished scanning and is waiting on your decisions before its report is generated. A row rolls every in-progress phase up to In Progress – expand it to see each individual run, which reports the finer Generating Findings and Generating Report phases. See also Pause, Resume, or Cancel a Classification Job.

Click a report to view its column-level results. A Scan Scope banner above the report names the object the job ran against and the level it ran at; when the job excluded objects, it also states how many – see Targeted Classification. The detail view lists every classifier that matched at least one column, with the number of matched columns next to each. Selecting a classifier filters the results table to Schema, Table, Column, and Match Confidence for that classifier’s matches.

Click a row to open its Details panel, which shows the column’s name, table, schema, and data source, the classifiers that matched it, and a Match Breakdown – see Decision Lineage below.

A report describes the columns that were scanned and the classifiers that matched them.

Per column, the report always records:

  • Its location – database (or catalog), schema, table, and column name.
  • Content format – the dominant format detected in the column’s values (for example JSON, PDF, or plain text) and the share of sampled values that had it.
  • Data type – the column’s declared type from the schema, such as VARCHAR2 or NUMBER.
  • Column size – the declared size, such as 255 for VARCHAR(255).

Content format, data type, and column size are recorded for every scanned column, whether or not a classifier matched it.

Per matched classifier on a column, the report records the classifier name, the match result (an ALTR Native match percentage, a Google DLP likelihood, or an Amazon Comprehend score, depending on the condition that matched), a Match Confidence score, and the decision lineage.

A summary reports the total columns scanned, the number classified, and the percentage successfully classified.

A completed report is also the input to Automatic Tagging, which turns the classifiers it records into Snowflake or Databricks tags a masking policy can act on.

Show Example Report (JSON)
{
"columns": {
"prod_db.pii.customers.ssn_number": {
"catalog_name": "prod_db",
"schema_name": "pii",
"table_name": "customers",
"column_name": "ssn_number",
"content_format": "PLAIN_TEXT",
"content_format_ratio": 0.98,
"data_type": "VARCHAR2",
"column_size": 11,
"classification_results": [
{
"altr_native_classifier_name": "ssn_strict",
"altr_native_match_percentage": 92.5,
"type": "ALTR_NATIVE",
"confidence": "HIGH"
}
]
}
},
"summary": { "total_columns": 480, "classified_columns": 37, "percent_successfully_classified": 7.71 }
}

For each match, the report shows a Match Confidence score of High, Medium, or Low. Match Confidence is derived from decision lineage – how many of a classifier’s conditions were evaluated and matched.

  • Hover a score to see a one-sentence explanation.
  • Click a score to view the specific rule results that contributed to the match, in the Details panel’s Match Breakdown.
  • The breakdown also lists rules that were evaluated but did not affect the score, labeled ignored – useful for diagnosing why a configured rule did not fire.

Match Confidence is available for jobs run after April 13, 2026.

Decision lineage is a per-classifier record of exactly how a match was decided. It mirrors the classifier’s condition tree: the top-level operator (AND/OR), the overall result, and a node for each condition and group.

Each condition node records:

  • Its type and the specification you configured (pattern, comparator, infoType, threshold, and so on).
  • The actual observed value (for example, the match ratio, the Google DLP likelihood found, or the Amazon Comprehend score).
  • Whether it was evaluated. A condition is auto-resolved (not evaluated) when the deployment model running the job cannot evaluate it – for example, a Google DLP condition in an In-Warehouse job. An auto-resolved condition is treated as true inside an AND group and skipped inside an OR group, and the lineage marks it evaluated: false so the result is never misread as a real match.
Show Example Decision Lineage (JSON)
{
"classifier_name": "ssn_strict",
"operator": "AND",
"result": true,
"conditions": [
{
"type": "leaf", "target": "ROW_DATA", "comparator": "matches",
"pattern": "\\d{3}-\\d{2}-\\d{4}", "result": true, "evaluated": true,
"match_count": 185, "total_count": 200, "match_ratio": 0.925, "minimum_match_ratio": 0.6
},
{
"type": "leaf", "target": "METADATA", "comparator": "matches",
"pattern": "(?i)ssn|social.*sec", "result": true, "evaluated": true
}
]
}

You can view a report in ALTR, and you can export the full report programmatically through the Classification API.

The API returns a time-limited download link for the report in the format you request:

Format Description
JSON Full report as JSON
Gzipped JSON The same report, compressed
SQLite Full report as a SQLite database
Gzipped SQLite The same SQLite database, compressed

For a quick roll-up without downloading the full report, the API also returns an inline summary (total columns, classified columns, and percentage classified).