Point List Duplicate and Gap Checker

Checks a survey point list for repeated IDs, integer ID gaps, coincident and near coordinates (exact, inclusive tolerance) and invalid rows — each as a separate report with its own CSV, and an optional Z rule for 3D duplicates.

100% FreeRuns in your browserIntermediate

Point list and checks

Repeated IDs, ID gaps, coincident and near points are reported separately. They are candidates to review, not records to delete.

Paste, or open a local file — it is read in this browser and never uploaded. Limits: 10 MiB, 100,000 records, 200 fields per record and 100,000 characters per field. Nothing is ever truncated — a file over a limit is refused with the reason.

ID checks

Only whole-number IDs take part; others are counted and skipped.

Coordinate checks

Tolerances are in these units.

Blank = no near-point check. Inclusive: a separation equal to it qualifies.

A 3D duplicate needs BOTH heights and |dZ| ≤ the Z tolerance.

Paste or open a point list, confirm the mapping and press Run check.

One logical record can span lines
Illustrative
One logical record can span linesFour physical lines of a CSV file hold three logical records. The quoted note on record 2 contains a line break, so it continues onto line 3 inside the same cell. The comma inside the quotes on line 4 is text, not a delimiter. The ID 0007 and the decimal 123.4500 are kept exactly as typed.line1234ID,Easting,Northing,Note0007,123.4500,456.78,"two spacesnext line"0008,100.0,200.10,"kerb, east side"← same record4 physical lines · 3 logical records · 4 fields each
Lines 2 and 3 are one record: the quoted line break stays inside the Note cell. A comma inside quotation marks is not a delimiter. 0007 keeps its leading zeros and 123.4500 keeps its decimal places.

Before you rely on this: First-pass guide only. Verify safety-critical or regulated work against the relevant standards, your project requirements and a qualified professional.

Tip: Enter any known values to calculate the remaining results.

Designed to run locally in your browser. Tool inputs are not intentionally stored by Zerdly unless stated otherwise.