Human-in-the-Loop Review
Classification matches patterns and isn’t always correct. Human-in-the-Loop Review lets you reject an inaccurate finding before it reaches the report, and before it reaches the tags and policies built from that report. It works by holding a classification job after it finishes scanning so you approve or reject each of its findings first.
Review also remembers what you decided. Confirming a report carries its decisions forward to later runs of the same classification – the same data source, collection, and classification method – so a recurring job asks you only about findings that are new since the last report you confirmed in review instead of re-presenting everything you already judged.
A finding is one classifier match on one column – the unit you approve or reject. Review is set per job and is on by default: a new job is reviewed unless you clear the Needs Human Review checkbox, and re-running an existing job starts from that job’s setting. It’s available for classification jobs on Snowflake, Databricks, and OLTP data sources.
How Human-in-the-Loop Review Works
Section titled “How Human-in-the-Loop Review Works”A job with review enabled scans its data source the same way any other job does – the same collection and classifiers, the same classifier rules, and the same processing location. What changes is what happens when scanning ends.
Without review, a job generates its classification report and completes. With review, the job moves to Generating Findings while ALTR prepares its findings, then to Needs Review, where it waits for you. You open its findings, approve or reject each one, and then either confirm the report – generating it from the approved findings – or cancel it.
Filter the report list by the Needs Review status to find jobs waiting on a decision.
The Findings Tree
Section titled “The Findings Tree”The findings tree follows the shape of your data: database, schema, table, column. Beneath a column matched by more than one classifier, each of that column’s findings appears as its own row. A column matched by a single classifier, and an individual finding, are leaves with nothing beneath them.
A job narrowed with Targeted Classification opens the tree at the object it was scoped to. A table-scoped job opens on its table rather than on the database and schema rows above it.
You can approve or reject at any level, not just on individual findings. A decision applies to everything beneath the row you make it on. Approving a schema, for example, approves the findings on every table in that schema.
Where a broader and a narrower decision overlap, the narrower one wins. If you approve a schema and then reject a single column’s finding inside it, the rejection stands for that finding while the approval still covers the rest of the schema. The same holds one level further down: on a column matched by several classifiers, a decision on one of its findings overrides a decision made on the column as a whole.
Clearing a decision returns that row to whatever the level above it decided, or to Pending if nothing above it has been decided.
Filtering Findings
Section titled “Filtering Findings”Two filters narrow the tree while you work:
- Classifier – show findings only for the classifiers you select.
- Status – show only Approved, Rejected, or Pending findings.
Progress counts every finding in the job, not only the ones the filters currently show.
Decisions on Later Jobs
Section titled “Decisions on Later Jobs”You decide each finding once, not once per job. When you confirm a report, ALTR keeps every approve and reject decision in it. The next time a job classifies the same data source with the same collection and classification method, and runs with review enabled, those decisions are already applied – you review only what’s new. A job you run without review generates its report directly and carries nothing forward.
Decisions attach to the data, not to the job that found it. Each decision covers one column and the classifier that matched it, so it applies in a later job that finds the same match – whatever that job’s scope. Decisions you made reviewing a job scoped to one schema still cover those columns when a later job classifies the whole database, and the other way around.
Changing the collection or the classification method starts fresh. A different collection or method can match a different set of classifiers entirely, so none of your earlier decisions apply and every finding comes to you undecided. Confirming that report starts its own history for later jobs on that collection and method.
A finding you haven’t decided before stays Pending and carries a NEW badge, and the rows above it are badged too. A finding counts as new when no decision from a confirmed report applies to that exact pairing of column and classifier: a newly discovered column is new, and so is a classifier matching a column you have already reviewed for other classifiers.
ALTR never silently applies an old decision to something it hasn’t classified before, and when in doubt it asks again: after you change a job’s scope or its excluded objects, findings you already decided can come back as new.
Run a Job with Human-in-the-Loop Review
Section titled “Run a Job with Human-in-the-Loop Review”Running a job with Human-in-the-Loop Review means having one checkbox selected during the normal job configuration – nothing else about the configuration changes. Follow the full procedure in Data Classification. On a new job, Needs Human Review is selected for you on the same step as Processing Location; a re-run starts from the setting of the job you’re re-running, so select it if that job ran without review. Leave it selected to review the job’s findings, or clear it to have ALTR generate the report directly. ALTR runs the job and sets its status to Needs Review once scanning finishes.
Review Findings
Section titled “Review Findings”To review a job’s findings:
- Select Data Classification > Classification Reports in the navigation menu.
- Click a report whose status is Needs Review.
- Approve or reject each finding, working at whichever level of the tree suits the decision. Click anywhere on a row with children to open or close it, except on its approve and reject controls, which act on the row instead.
To see why a finding matched, click its Match Confidence badge – on a finding row, or on a column matched by a single classifier. The Details panel opens with the Match Breakdown: the same per-classifier rule results described in Match Confidence.
A job that scanned successfully but matched nothing has no findings to decide, and you can confirm its report as it is.
Confirm or Cancel the Report
Section titled “Confirm or Cancel the Report”Confirming the report turns your decisions into the classification report, built from the approved findings and leaving the rejected ones out; canceling ends the job without a report. Neither can be undone: a confirmed report’s decisions can’t be edited, and a canceled job can’t be resumed, so to review the same data source again, run the job again.
Decisions save as you make them. Once every finding has a decision, Confirm Report becomes available; until then it stays disabled.
To confirm a report:
- Decide every finding.
- Click Confirm Report.
- Review the summary – the data source, classification method, connection type, when it was last scanned, the classifiers in scope, and the resolved, approved, and rejected counts – and click Confirm Report to continue. Report generation runs in the background, and ALTR opens the report when it’s ready.
To cancel a report:
- Click Cancel Report.
- Click Cancel Report in the confirmation dialog.