The two images
Source is the ground truth: the positive digital image the negative was made from, before inversion and before any correction curve. Scan is a scan or copy-shot of the finished print.
Load them from the toolbar, from File → Open Source Image… (⌘O) and
Open Scanned Print… (⇧⌘O), or by dropping files on the window. In the
Both view each pane is its own drop target, so the pane a file lands on
decides which slot it fills; in every other view a dropped image fills the
scan.
Scan with fixed settings: RAW with a straight curve, no auto-exposure, no auto-levels, no sharpening, the same every time — see Scanning a Print for Measurement. Everything measured here is relative — normalized to the detected paper white and maximum black — so consistency beats absolute accuracy. If the scanner clips the paper white, the app says so in the status bar.
Registration
On load, the app matches the source into the scan and places a four-corner
quad over the print area. Auto-Detect (toolbar, or ⇧⌘D) re-runs it and
overwrites the current quad; the inspector’s Detect row reports a match
percentage, green when the detector is confident.

Drag any corner handle to correct it. Releasing the handle marks the quad as yours — a later automatic detection will not quietly move it back — and re-runs the analysis.
Two read-only rows check your work:
- Scale — the horizontal and vertical scale between source and scan.
- Aspect — how far the quad’s aspect ratio is from the source’s. Beyond 2 % it turns red and the status bar warns; the cause is nearly always one corner in the wrong place.
Margin excludes the outer edge of the print area from sampling (2 % by default), which keeps the coating edge, the plate mark and any print border out of the measurement.
Verifying by eye
| View | What to look for |
|---|---|
| Both | Compare framing side by side while dragging corners |
| Overlay | Ghosting means misalignment. The Overlay slider sets the blend |
| Diff | A heat map of local differences: registration error shows as lit-up edges |
| Mask | The pixels that actually contributed samples |


What the analysis does
It re-runs automatically whenever anything it depends on changes — a corner, a slider, a picker, the active curve.
- Warp and sample. The scan is mapped onto the source’s grid through the quad, at analysis resolution (capped on the long edge for speed).
- Flat-region masking. Only locally flat neighbourhoods are sampled. Edge excl. sets the gradient threshold and Flat radius the size of the neighbourhood tested. This is what makes the measurement survive imperfect registration, paper texture, coating unevenness and dust: a pixel near a tonal edge would report the wrong tone if the alignment is off by a hair, so it is simply not used.
- Endpoint detection. Paper white and maximum black are found from the print — preferring the paper margin and the coating border when they are in the scan — and everything is normalized to them. There is no absolute densitometry here and none is needed.
- Binning. Source tones are divided into Bins (32, 64 or 128). Every sampled pixel is dropped into the bin of its source tone, outliers are rejected, and the bin’s printed value is its median.
- Response fit. The per-bin medians become a monotone response curve, smoothed with the chosen Smoothing mode and Window. Bins with too few samples are marked low-confidence rather than being invented.
- Correction. The measured response is inverted against the target (see Curves, Aim & Proofing) and composed with the active curve to produce the replacement LUT.
Reading the result
The bin table

Δ TGT is the headline: measured minus source level, green within ±0.03 and red beyond. Negative means the print came out darker than the source asked for. COUNT and SPREAD tell you how much to trust the row, and CONF condenses that into one number — below 0.5 the row dims and the confidence turns red.
Empty bins show –. Their Δ stays neutral, because a tone that never
appeared in the image cannot be off target.
Select rows to see where those tones live: click, Shift+click for a range, ⌘+click to toggle one. The selected pixels are painted on the canvas — on the Both view’s source pane, and in Overlay, Diff and Mask.

The response graph

Measured against the dashed Target is your process error. Curve
is the active .acv and Adjusted is the replacement about to be
exported; both are drawn in the ascending Photoshop-Curves convention.
Vertical grey bands mark low-confidence tone spans — that is where the
export will leave your current curve alone.
Statistics and warnings

Check the endpoints first. White point and Black point carry their provenance: paper margin and coating are measurements, estimated (in red) means the image had no highlights or no shadows to read and a percentile was used instead. Print max flagged clipped? means the scan hit the top of the range.
Coverage is how much of the tone scale the image exercised. Below 60 % a banner appears under the toolbar and the status bar warns; the correction is still valid for the tones you did measure, and unchanged elsewhere.
The status bar carries the rest:
| Warning | What to do |
|---|---|
| quad aspect off by N% | Fix the corner that is out of place |
| scan resolution low | Scan larger; samples are being interpolated |
| no highlights / no shadows in image | Endpoint estimated — treat that end of the curve with suspicion |
| black point from coating border | The anchor is deeper than the process can print through film base; verify deep shadows |
| only N% of tones measured | Use an image with a wider tonal range, or accept a partial correction |
| scan highlights at top of range | Reduce repro exposure or disable auto-levels and rescan |
Tuning the analysis
Defaults are sensible; reach for these when something is off.
| Symptom | Try |
|---|---|
| Response looks noisy, few samples per bin | Fewer Bins (32), or raise the Window |
| Response looks over-smoothed, real structure lost | More Bins (128), lower the Window |
| Mask leaves almost nothing | Raise Edge excl., lower Flat radius — a busy, detailed image has few flat regions |
| Measurement looks contaminated near edges | Lower Edge excl., raise Flat radius, raise Margin |