Legality analyser

EUDR Legality Document Assessment Methodology

How TRACT scores a document submitted as Article 9(1)(h) legality evidence under the EU Regulation on Deforestation-free Products.

Version 0.4 September 2026 Regulation (EU) 2023/1115
1

Purpose and scope

What the score is, and what it is not

The TRACT EUDR legality analyser produces a single assessed confidence score from 0 to 100 for a document submitted as evidence of legality under Regulation (EU) 2023/1115.

It answers this question: how much weight should a careful reviewer place on this document as Article 9(1)(h) evidence, given what is visible on its face and what is known about the origin?

It does not answer: is this document genuine? Nothing is checked against an issuing register. For most producer countries no public register exists to check. A high score means the instrument is of a strong type, well formed, from a plausible authority, in a context where it can be corroborated. It does not mean the document has been verified.

The load-bearing distinction

Output must never state or imply that a document has been verified, confirmed genuine, or validated. Every assessment carries an explicit verification status sentence recording that no register was contacted.

The score is an input to human review. It is not a compliance determination.

Legal basis

Every element of the method is anchored in a provision of the Regulation. The table sets out which provision drives which part of the assessment.

Table 1: Provisions of Regulation (EU) 2023/1115 and their role in the method
ProvisionRole in the method
Art. 9(1)(h)The obligation being evidenced: "adequately conclusive and verifiable information" that the commodities were produced in accordance with the relevant legislation of the country of production, including any arrangement conferring the right to use the area. This is what the evidential sufficiency component measures against.
Art. 2(40)(a) to (h)Defines "relevant legislation" as eight categories: land use rights; environmental protection; forest-related rules; third parties' rights; labour rights; human rights under international law; free, prior and informed consent; and tax, anti-corruption, trade and customs. Pass 1 maps every document against all eight.
Art. 10(2)(g)"The source, reliability, validity, and links to other available documentation" of the Article 9(1) information. This is the basis for the four document-level components.
Art. 10(2)(h)Country-level concerns: corruption, prevalence of document and data falsification, lack of law enforcement, human rights violations, armed conflict and sanctions. This is the basis for the country context component.
Art. 10(2)(n)Certification schemes are complementary information only. An ISPO or MSPO certificate is scored as corroboration, never as a substitute for Article 9 information.
Art. 10(3)A valid FLEGT licence creates a presumption of compliance with Article 3(b) for in-scope wood. Scoring recognises this, noting it covers the legality limb only, not deforestation-free.
Art. 29Country benchmarking tiers, an input to country context.
2

Inputs and pipeline

Inputs

The assessment runs on three types of input:

  1. The document itself. A PDF, JPG or PNG of the instrument submitted as legality evidence. Scans and photographs are accepted, in any language.
  2. The origin reference library. The document types, issuing authorities and administrative levels recognised for each covered origin, together with what can be independently checked and how.
  3. The country risk profile. Benchmarking tier, corruption indicator, curated concerns and registry verifiability for the origin.

Country risk data

Country risk data is held for six origins: cocoa in Côte d'Ivoire and Ghana, coffee in Brazil and Vietnam, and oil palm in Indonesia and Malaysia. Where a document originates outside these six, no curated profile exists. The model is instructed to cap country context accordingly and to say so in the assessment.

Table 2: Country risk fields and their sources
FieldSource
Benchmarking tierAnnex to Commission Implementing Regulation (EU) 2025/1093 of 22 May 2025, read directly on 8 September 2026
Corruption indicatorTransparency International Corruption Perceptions Index 2025
ConcernsCurated per origin and tied to specific Article 2(40) categories
Registry verifiabilityCurated: an overall rating plus an itemised list of what can be checked, how, and at what access level

Benchmarking provenance

Tiers were read from the Annex to the instrument itself on 8 September 2026, not from secondary reporting. An earlier edition of this document said EUR-Lex blocks automated retrieval; it served both the consolidated Regulation and Implementing Regulation 2025/1093 on request, so that assumption was retested and dropped.

Reading the Annex directly resolved all three entries that had carried a confidence caveat. Ghana is listed under low risk countries and was corrected from standard. Indonesia and Malaysia appear in neither list, so they are standard by default, as recorded. Every tier-confidence field now states the date the Annex was read and what it said, and the interface no longer shows a conflict caveat for any of the six, because there is no longer a conflict to show. The residual risk is staleness, not sourcing: the first scheduled review falls in 2026, so re-read the Annex before relying on a tier for a compliance decision.

Status of the list

The European Parliament objected to the benchmarking list on 9 July 2025 by 373 votes to 289, criticising the methodology and the classification of major deforestation fronts as standard rather than high risk. The objection did not block the instrument and it remains in force. The first scheduled review falls in 2026, so tiers may change.

Effect of the tier

A low-risk tier permits Article 13 simplified due diligence and lowers the competent authority check rate to 1% of operators, against 3% standard and 9% high. It does not remove the Article 9(1) information obligation and does not lower the Article 9(1)(h) evidential standard. The tier is therefore an input to one component at 0.15 weight, not a shortcut.

The two-pass pipeline

Assessment runs as two sequential model passes followed by deterministic aggregation in code. Pass 2 depends on Pass 1's output, so the two cannot be parallelised. The document itself is re-sent in Pass 2 so that scoring is grounded in the artefact, not only in Pass 1's description of it.

Both passes use Claude Opus 5 with adaptive thinking at high effort and JSON-schema constrained structured output. All generated text follows a fixed style rule set in the prompts: plain English, short sentences, roughly an 8th-grade reading level, and exact legal citations.

Document submitted as legality evidence · PDF, JPG or PNG

Pass 1 · Classification

Inputs

The document · the origin reference library

Outputs

Document type · issuing authority · origin · fields read from the face · coverage of all eight Art. 2(40) categories · Art. 9(1) data points supplied · observations · legibility

Pass 2 · Validity assessment

Inputs

The document · Pass 1 output · the country risk profile

Outputs

Five component scores · red flags · verification steps · corroboration needed · verification status

Deterministic aggregation · code, not model
Overall score from 0 to 100, and band
3

The five components

The model scores each component from 0 to 100, with a written finding citing specifics from the document. The components are designed to separate cleanly. A genuine, well-formed instrument can still be weak evidence for the purpose it was submitted for, and a single-dimension score would collapse that distinction.

Weights sum to exactly 1.00. They were set from the structure of Article 10(2), not fitted to labelled outcome data. See limitation 5.

3.1 Document integrity · weight 0.20

Is the document complete and properly executed on its face? We look for expected fields, signatures and seals where the instrument requires them, all pages supplied, legibility, no signs of alteration, and no partial extract presented as a whole.

Lowers the score: missing signature blocks, absent seals, a single page of a multi-page instrument, referenced annexes not attached, poor legibility, evidence of tampering.

3.2 Internal consistency · weight 0.20

Do the document's own contents agree with each other? Dates in sequence, areas and percentages that add up, the same party named consistently, identifiers in the correct format, an issuing authority matching the instrument type, and arithmetic that holds.

Most likely to surface a fabrication

In testing this component independently caught that a specimen's declared Reserva Legal plus permanent preservation area exceeded its declared remaining native vegetation. That implies an undisclosed Forest Code deficit. The relationship was never specified in the prompt.

3.3 Issuing authority plausibility · weight 0.20

Does the named issuing body exist, and could it lawfully issue this instrument for this place? This is checked against the origin reference library: the right authority for the document type, the right administrative level, and territorial competence over the stated location.

The single strongest indicator of a problem

An instrument issued by a body that could not lawfully issue it. For example, a land certificate purporting to cover Indonesian forest estate that has never been released from it. BPN cannot lawfully title such land, so the certificate's existence is itself the red flag.

3.4 Evidential sufficiency for Art. 9(1)(h) · weight 0.25

How far does this document actually go towards "adequately conclusive and verifiable information"? This carries the highest weight because it speaks most directly to the statutory test.

The instrument is judged for what it is, not for what it is labelled. The governing hierarchy is set out below.

Strong
Registered title, with a searchable chainMatrícula (BR) · Land Title Certificate (GH) · HGU and SHM (ID) · LURC (VN)
Moderate
Statutory registration or licence with legal effectCertificat Foncier Rural (CI) · MPOB licence (MY) · STDB (ID)
Weak
Customary or unregistered grantAttestation villageoise (CI) · allocation note without concurrence (GH) · girik and SKT (ID)
Weak
Self-declared registry entryCAR (BR)
Complementary only
Third-party certificationISPO · MSPO · voluntary schemes, per Art. 10(2)(n)

3.5 Country context, Art. 10(2)(h) · weight 0.15

How much does the operating environment reduce the weight this document can carry? This component scores the environment, not the document. A flawless document from a low-verifiability, high-falsification origin still scores lower here. The inputs are:

  • Article 29 benchmarking tier: low, standard or high
  • Corruption Perceptions Index 2025 score
  • Curated country and sector concerns: documented falsification prevalence, enforcement gaps, tenure-system characteristics, sector-specific risks
  • Registry verifiability: whether documents of this kind can be independently checked at all

Verifiability outweighs the tier

Verifiability is weighted heavily within this component, and in practice matters more than the benchmarking tier. Brazil, at standard tier with a CPI of 35, scores above Vietnam, at low tier with a CPI of 40, because Brazilian documents carry codes designed for public online validation while Vietnamese land records have no public register at all.

Computed, not judged

Of the five, this is the only component that does not look at the document. Every input is a property of the origin, held with a source and a date, so the model contributed no information to it and contributed variance, to 15 percent of every score. It is now calculated from a published formula, and the component's written finding is the derivation itself rather than prose about it.

Table 3: The country context formula
TermValue
Base, from independent verifiability of documents from the originhigh 70, moderate 55, low to moderate 45, low 35
Article 29 benchmarking tierlow +8, standard 0, high -25
CPI 2025, against the published global average of 42round((cpi - 42) x 0.4), capped at plus or minus 10
Relevant UN Security Council or EU Council sanctions-20 if in force, else 0
No curated profile for the origin30 flat, below every covered origin

The computed values are Brazil 67, Malaysia 59, Indonesia 52, Ghana 53, Vietnam 42, Côte d'Ivoire 35. The term weights are a published judgement, not an empirical fit, exactly as the component weights are. The model is told the computed value so that its rationale can take account of it, and a component entry returned for it anyway is discarded rather than merged, so a model ignoring the instruction cannot reach the score.

The inputs previously included whether documents of this kind can be independently checked, which made this a function of the document class as well as the origin. That clause is gone: it was blurring two components, because how far a particular instrument goes towards Article 9(1)(h) is what evidential sufficiency scores at weight 0.25. What it gives up is resolution. The model could previously distinguish a Ghanaian registered title, which is searchable, from a Ghanaian allocation note, which is not. That distinction belongs in evidential sufficiency, and putting it there properly needs a verifiability field per document type in the reference library.

4

Scoring and outputs

Aggregation and bands

The overall score is computed in code, not by the model. A reviewer can reproduce the number by hand from the five published component scores, which is the point.

overall = round( Σ ( component score × component weight ) )  clamped to [0, 100]

The band is derived from the computed score, never supplied independently. One further rule is then applied.

How to read the score

The band is the output. The number supports it. Repeated runs of the same document move the overall by about 5 points, so a score sitting within 5 of a threshold could report either side of it next time. Every assessment therefore records how far it is from the nearest band boundary, and says so on the face of the result. The thresholds are derived from the band definitions rather than hardcoded, so they cannot drift apart, and the interface leads with the band and shows the score in support of it, because a figure accurate to about 5 points presented as a large number invites a reviewer to read it as a measurement.

Two of the three examples are not band-stable

Ghana at 56 is 4 points below the boundary with moderate, and Brazil at 64 is 4 points above the boundary with limited. Only Vietnam, at 71 and 9 points clear, has a band that repeated runs should reliably reproduce. The advice to treat the band as the meaningful signal holds, with a caveat: for two of these three fixtures the band itself was not stable, and its holding across runs was partly luck. A score with its margin stated is the honest version of the same output.

The element checklist

Every document type in the reference library already lists what a reviewer should find on the face of an instrument of that kind. There are 172 of these items across the 49 types, and until now they were prose in a prompt that the model could answer or ignore. They are now a required output: for the matched document type, every element is answered with a verdict, the page it appears on, and the text that establishes it quoted as printed.

Table 4: Element verdicts
VerdictMeaning
satisfiedPresent and legible. Carries a verbatim quote in the document's own language.
absentThe instrument should carry it and does not. A defect in the instrument.
illegiblePresent but not readable on this copy. A defect in the copy, not the instrument, and only one of those is the supplier's problem.
not_applicableDoes not apply to this instrument, with the reason.
unansweredFilled in by code where the model skipped an element, so a gap degrades visibly.

Component findings must cite the element ids they rest on, because a finding that cites nothing is an assertion a reviewer cannot check. The Ghana specimen's designed defect used to be a sentence inside a component finding; it is now an element marked absent, with the note that ground rent is mentioned as a future obligation while no Lands Commission concurrence appears anywhere on the document. A reviewer can take that to the page.

Structured outputs generate in the order the schema declares, so the schema is ordered elements, then gates, then component scores, then the rationale. That sequences reading before judging inside a single call. Element ids are positional within a document type and derived in code from the existing checklist text, so no reference data had to be rewritten, and the schema's enum is exactly the matched type's checklist, so the model can neither answer an element that does not exist nor quietly skip one that does. Where no library entry matches the document type there is no checklist, and the assessment says so.

Disqualifying gates

A weighted mean cannot express a finding that ends the enquiry. With issuing authority plausibility at zero the arithmetic still permits 80, the top of moderate, so an instrument its named issuer could not lawfully issue scored around 57 and was reported as limited: weak evidence, needs corroboration. The specimen rule had the mirror-image problem: it craters two components carrying 0.45 between them, so its maximum effect is 45 points, and a clean specimen from a plausible authority landed near 41, also inside limited. In both cases the arithmetic contradicted this document's own prose.

Table 4: Disqualifying gates
GateFires when
no_legal_effectThe document declares on its face that it is a specimen, sample, template, draft or otherwise without legal effect.
issuer_without_competenceThe named issuing body could not lawfully issue this instrument for this kind of place. An Indonesian land certificate over forest estate never released from the Kawasan Hutan is the standing example: BPN cannot title such land, so the certificate could not lawfully exist.

The score is unaffected. Both bands are published: the score band is what the weighted sum alone gives, so the arithmetic remains reproducible by hand, and the band is what the assessment concludes once the gates are applied. Where they differ, the gate that did it is named. The cap is one stated rule applied to published numbers, not a second hidden calculation.

Only findings that are unambiguous on the face of the document are gates. An expired term deliberately is not: Article 9(1)(h) asks whether production accorded with the relevant legislation, so a term that ended after the production it covers is not a defect. Expiry remains a high-severity red flag. And because the gate carries the disqualification, the components are no longer instructed to crater on a specimen. They score the instrument on what is visible, which tells a reviewer more: a specimen can be a well executed example of a strong instrument type, and the gate says plainly that it evidences nothing about a real supply chain.

80 to 100SubstantialCan carry significant weight in the due diligence file, subject to the verification steps.
60 to 79ModerateUseful evidence, but not sufficient on its own for the categories it covers.
40 to 59LimitedWeak evidence. Needs corroboration before it can support a negligible-risk conclusion.
0 to 39InsufficientShould not be relied on as legality evidence in its current form.
Table 3: Worked example, Vietnam Land Use Right Certificate, calibration run
ComponentScoreWeightContribution
Document integrity700.2014.00
Internal consistency760.2015.20
Issuing authority plausibility880.2017.60
Evidential sufficiency720.2518.00
Country context (computed)420.156.30
Overall1.0071.1 → 71 moderate

The determinism boundary

Deciding what belongs to the model and what belongs to code is the central design choice of this methodology.

Owned by code

  • Weights and their sum
  • The weighted-sum arithmetic
  • Band thresholds and derivation
  • Clamping to 0 and 100
  • Component deduplication and gap-filling
  • Canonical component ordering
  • Gate deduplication and gap-filling
  • The band cap when a gate fires
  • The country context score and its written finding
  • Element canonical order, gap-filling and library text
  • The anchoring measurement

Owned by the model

  • Component scores
  • Written findings justifying each score
  • Red flags
  • Verification steps, feasibility and impact
  • Corroboration requirements
  • Overall rationale and decisive factor
  • Whether each gate fired, and the evidence for it
  • Element verdicts, pages and quotes
  • Which elements each component finding cites

Why the arithmetic moved into code

In development the model was asked to compute the weighted overall itself. On a test document it returned 26 where its own component scores implied 34. Both fell in the same band, so the conclusion was unaffected. But a score a reviewer cannot reproduce is not defensible in a compliance file. The model now supplies judgement only.

Robustness handling

The model has been observed to emit the same component twice. Post-processing keeps the first occurrence of each, restores canonical order, and fills any omitted component with a zero score and an explicit "not assessed" finding. A malformed response degrades visibly rather than silently skewing the total.

Schema constraint

Structured outputs reject minimum and maximum on integer fields, so the 0 to 100 range is stated in the field description and enforced by clamping after parsing.

Calibration anchors

Anchors are specified in the prompt to prevent clustering:

  • A well-executed, internally consistent registered title from a moderate-risk origin sits at 75 to 85, not 95. The residual reflects that nothing has been verified.
  • A self-declared registry printout offered as tenure evidence belongs at 25 to 40, however cleanly it is printed.
  • Above 85 is reserved for instruments that are both intrinsically strong and independently checkable.
  • There is an explicit instruction not to cluster in the middle, and to distinguish clearly between strong and weak instruments.

Specimen rule

A document watermarked as a specimen, sample, template or draft, or declaring no legal effect, is decisive. Document integrity and evidential sufficiency score very low, a high-severity red flag is raised, and the rationale says so plainly.

Outputs beyond the score

The score alone is not actionable. Each assessment also returns four further outputs.

Red flags

Specific indicators that the document may not be what it purports to be, or may not support what it is being used to support. Each is rated low, medium or high severity, with an explanation of why it matters. The model is instructed not to manufacture flags.

Verification steps

Concrete next actions, each tagged by feasibility.

Table 4: Feasibility tags for verification steps
TagMeaning
Public onlineCheckable now, free, without the supplier
PublishedIn a published list or register
In-country requestRequires a formal application in-country
Supplier dependentCannot proceed without the supplier's cooperation
Not verifiableNo independent source exists

Each step and each corroboration request also carries an impact rating of high, medium or low. High means it addresses the decisive factor, or could confirm or refute the document itself. The model is told that most assessments have only one or two high-impact steps. The interface sorts and groups by these ratings, so a reviewer sees the items that move the assessment first, packaged by who can act on them.

Steps must be specific. "Verify the title" is rejected because it names no source, no identifier and no comparison. The standard names all three: the register or dataset, the identifier taken from the document, and the result that would confirm or contradict what the document says. For a Brazilian CAR that is a SICAR consultation on the document's own CAR number, with the returned polygon area compared against the area the document declares.

The prompt teaches that form without naming a source or a value. It used to carry one hardcoded example, a CAR number and a hectare figure both taken from the Brazil specimen, injected into every assessment of every document from every origin. A specific figure in the cached prefix of every request is a value that can leak into an unrelated assessment, and Brazil is the only one of the six with a public land register, so the example modelled a step most documents cannot support and invited the model to invent portals for the others. The origin's real checkable sources are listed in the country profile, which is where the content belongs. Earlier editions quoted a specific CAR number here; it was drawn from a synthetic specimen, and SICAR is a genuinely public consultation, so anyone who tried it got nothing back.

Corroboration needed

The documents that should sit alongside this one to close the Article 9(1)(h) gap for the categories it touches.

Verification status

A plain sentence recording that no issuing register was contacted, and what that means for reading the score.

5

Validation and limitations

Validation to date

Three synthetic specimens were assessed, each constructed with a known defect. Calibration mode was used so that the scoring exercised instrument strength rather than bottoming out on the specimen watermark. These are the current pre-computed example results, which are what the tool displays.

Table 5: Validation results against synthetic specimens
SpecimenDocConsist AuthEvidCountry OverallDesigned defect, and was it detected?
Vietnam LURC707688724271 moderateFront page only, so reverse-side encumbrances stay unknown. Yes
Brazil CAR767085326764 moderateSelf-declared registry offered as tenure evidence. Yes
Ghana allocation note428070305354 limitedNo Lands Commission concurrence, so the chain of title is incomplete. Yes

The Brazil row demonstrates the components separating cleanly. It is a genuine, well-formed federal instrument, with integrity at 74 and authority at 85, that is nonetheless weak evidence for the purpose it was submitted for, with evidential sufficiency at 32.

Run-to-run variance

Vietnam has scored 70, 68 and 71. Brazil has scored 60, 68 and 64. Ghana has scored 47, 48, 53 and, after the tier correction of 8 September 2026, 52. The band held in every run. Treat a score as accurate to roughly plus or minus 5, and treat the band as the meaningful signal.

Ghana's fourth run is the most informative of the twelve. Only one input changed, and it bears on one component. Country context moved 45 to 48, as intended. Document integrity moved 52 to 46 on the same document with the same prompt for that component, so a 6 point swing is available from sampling alone.

Not yet validated

Calibration against real documents. Synthetic specimens cannot establish whether the absolute scores are correctly pitched for production use. They show only that the components discriminate in the expected direction.

Calibration mode

A synthetic specimen declares on its face that it has no legal effect, which correctly craters two components and made the fixtures useless for testing whether the scoring distinguishes a strong instrument from a weak one. Calibration mode is now much narrower than it was: it used to instruct the model to score the instrument on its merits as if genuine, and the gates removed that need, because components score the instrument on its merits either way and the no_legal_effect gate carries the disqualification. So calibration suppresses that one gate and the matching red flag, so a fixture produces a band describing the document type. Everything else is unchanged, including the issuer_without_competence gate.

Never for a real document

Calibration is reachable only for the bundled example documents, which are read from disk on the server. The upload path has no calibration input at all, so it cannot be requested for a document a user submits. It suppresses a decisive red flag, and exists only to test the scoring against known fixtures.

Known limitations

  1. No authentication. No document is checked against an issuing register. The score reflects intrinsic quality and context only.
  2. Absolute calibration unproven. Component discrimination is demonstrated. The pitch of the absolute numbers is not yet validated against real documents.
  3. Benchmarking tiers are point-in-time. No longer secondary-sourced: all six were read from the official Annex on 8 September 2026, which corrected Ghana from standard to low. What remains is that nothing re-checks them. The first scheduled review falls in 2026, and a tier change would not be noticed by the tool.
  4. Six origins only. Documents from elsewhere are assessed without a curated country profile and without an authority reference library, which materially weakens two components.
  5. Weights are a judgement, not an empirical fit. They were set from the structure of Article 10(2), not derived from labelled outcome data. They are a defensible starting point, to be revised once real-world review outcomes exist.
  6. Single-document scope. Each document is scored in isolation. The tool does not yet assess whether a set of documents collectively satisfies Article 9(1)(h) for a given plot or consignment, which is the actual compliance question.
  7. Non-determinism. The model may return slightly different component scores on repeated runs of the same document. Aggregation is deterministic. The inputs to it are not.

Change control

Any change to weights, bands or component definitions changes the meaning of previously issued scores. Bump the version at the head of this document, record the change, and do not compare scores across versions without noting it. Re-generate the pre-computed example results after any such change.

Corrections to reference data

A correction to the origin reference library or the country risk profile changes scores without changing the method, so it is recorded here rather than as a version bump. Do not compare a score issued before a correction with one issued after it for the affected origin.

Table 7: Corrections
DateCorrectionEffect
8 Sep 2026 Ghana benchmarking tier corrected from standard to low, read from the Annex to Implementing Regulation (EU) 2025/1093. Indonesia and Malaysia confirmed standard. All six tier-confidence fields restated with the date the Annex was read. Ghana country context rises by exactly the tier term, 45 to 53, and every Ghana overall by 1.2 points. The Ghana example was regenerated. No change to components, weights, bands or aggregation.
Table 6: Extension points
ChangeWhat to do
New originAdd an entry to the origins reference and to the country risk profile. Prompts and interface read from both. No other change required.
New component or weightUpdate the component definitions. Weights must sum to 1.00.
Band thresholdsUpdate the band definitions, and note the change against the version.
A

Appendix: data sources

SourceUsed forAs of
Regulation (EU) 2023/1115All legal definitions and obligations. Consolidated text 02023R1115.Dec 2025
Implementing Regulation (EU) 2025/1093Article 29 country benchmarking tiersIn force May 2025; Annex read 8 Sep 2026
Transparency International CPI 2025Corruption indicator2025
Curated origin reference libraryDocument types, issuing authorities, verifiabilityAug 2026