How Clearlane works
One engine, every regulation a module on it. EUDR is the live product path today, and these are its six steps; the other four sit on the same spine and are explained as law in the guides.
- 1Name your product
Pick your customs code — Clearlane matches it to the EUDR rules that apply.
- 2Fill in the filing
Who you are, what you ship, how much — and each field marked as either part of the filing or kept as evidence.
- 3Add suppliers and their plots
Say who supplied the goods and attach that supplier’s plots. Supplier names stay on the supplier record — never inside the plot files.
- 4Run the checks
One click freezes your data and runs the checks. Missing evidence blocks the record — it never counts as a pass.
What a check can answer
- Clear — no deforestation detected after 31 December 2020. Evidence, not proof.
- Flagged — possible deforestation after the cutoff.
- Needs evidence — imagery could not settle it. A request for evidence, not a finding against the plot, and not a pass.
- Unavailable — could not assess from imagery. The decision stays with the operator.
- 5Seal the dossier
Close the findings, then approve a locked dossier with its own audit trail.
What approval produces
- DDS candidate
- DDS field mapping
- Audit package
- Evidence manifest
- Dossier review
DDS — the Due Diligence Statement, the declaration the EU portal asks for.
- 6File it yourself
Clearlane prepares the record and hands you to the official EU portal. It never files on your behalf.
Where Clearlane stops
- The DDS record, prepared and checked field by field against the cited rulebook.
- Every input frozen, with its own append-only audit trail.
- Then the official EU portal. You file. Clearlane never files for you.
Under the hood: the free file check
The public file check runs the exact engine described above. Here is precisely what it does with your file — and what it never does.
Everything runs in the browser
When you drop a file on the check, it is read into your browser’s memory and processed there — parsing, conversion, validation, repair and the map all execute on your machine. There is no upload step: the check works the same with your network disconnected.
GeoJSON files are validated directly. KML, KMZ and CSV files are first converted into a TRACES-shaped GeoJSON FeatureCollection, and the converted result is then run through the full validator — a conversion that produced an invalid file would be a bug by definition.
What the engine checks
The validator runs the EUDR geolocation rule pack eudr-geojson@1.0.5 — rules as versioned data, each with a severity, a plain-language message and a legal citation. The same pack, the same code, produces the same verdict every time; nothing is sampled, inferred or guessed. Every check has its own page in the error catalogue:
Blocking errors
- EUDR GeoJSON rejected: file is not a FeatureCollectioneudr.geo.feature-collection
- EUDR GeoJSON rejected: coordinates are malformedeudr.geo.coords-structure
- EUDR GeoJSON rejected: geometry type not acceptedeudr.geo.geometry-type
- EUDR GeoJSON rejected: coordinates out of range — latitude and longitude swappedeudr.geo.coords-range
- EUDR GeoJSON error: geometry collapses after 6-decimal truncationeudr.geo.post-truncation-validity
- EUDR GeoJSON rejected: polygon not closedeudr.geo.ring-closed
- EUDR GeoJSON error: polygon has no measurable areaeudr.geo.polygon-area-positive
- EUDR GeoJSON rejected: polygon crosses itselfeudr.geo.no-self-intersection
- EUDR GeoJSON rejected: polygon contains holeseudr.geo.no-holes
- EUDR GeoJSON rejected: plot over 4 hectares mapped as a pointeudr.geo.point-area-max
- EUDR GeoJSON error: Point Area is below 0.0001 hectareseudr.geo.point-area-min
- EUDR GeoJSON rejected: Area value is not a positive numbereudr.geo.area-positive
- EUDR GeoJSON rejected: ProducerCountry is not a two-letter codeeudr.geo.producer-country
Warnings
- EUDR GeoJSON warning: coordinates carry more than 6 decimal placeseudr.geo.precision
- EUDR GeoJSON warning: polygon winding order is wrongeudr.geo.winding
- EUDR GeoJSON warning: select the commodity before applying the 4-hectare point ruleeudr.geo.point-area-context
- EUDR GeoJSON warning: Point Area from 0.0001 to below 0.1 hectares needs revieweudr.geo.point-area-review-band
- EUDR GeoJSON warning: declared area does not match the polygoneudr.geo.area-consistent
What auto-repair does — and what it never does silently
Repairs are graded by how certain they are, and the grade decides who acts. The engine only ever acts alone when a fix is provably meaning-preserving.
- Applied automaticallyDeterministic
Fixes that cannot change what your file means: closing an unclosed polygon ring and rewinding a wrong-way ring. No vertex moves. Both happen the moment your file is read, and every one is recorded in the repair log.
- Suggested — flagged, you applyHeuristic
The latitude/longitude swap is a judgment call, so it is only offered when every out-of-range position becomes valid swapped — and even then it is marked as a suggested repair for you to apply per plot and review on the map.
- Needs your choiceChanges the shape
Splitting a self-intersecting polygon and removing holes change the plot’s shape or area. Each one asks for your explicit confirmation on its own row — never bulk-applied, never silent.
- Never done at allBy design
The engine never fabricates coordinate precision, never moves a plot, and never invents geometry that was not in your file. A silently relocated farm is worse than a rejection — so it cannot happen here.
The privacy model
Your file never leaves your browser. No part of its contents — coordinates, producer names, areas — is sent anywhere. The one external request this tool makes is for map tiles (a CARTO basemap over OpenStreetMap data) when your plots render on the map; tile requests carry map coordinates of the view, never your file. Fonts are self-hosted, so not even a font provider sees you were here.
The repaired file you download is assembled in the browser from the same in-memory data. Close the tab and everything is gone.
The spec, pinned
Every verdict names its rule and citation. The pack is versioned — eudr-geojson@1.0.5 — so a result you saved is reproducible later: same file, same pack version, same answer.
Checked against EUDR GeoJSON spec v1.5