> ## Content Index
> Fetch the complete content index at: https://www.automatiqa.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# PPWR Compliance Screener
- URL: https://www.automatiqa.io/ppwr-screener/
- Published: 2026-08-10T13:39:31.000Z
- Updated: 2026-10-18T10:41:12.000Z
- Description: PPWR Compliance Screener: checks supplier packaging declarations against Regulation (EU) 2025/40 for completeness and internal consistency. Deterministic verdicts. Suppliers get a signed link and a rule engine screens what comes back; no model issues a pass or a fail.
- Author: Aleks Sidorecs
- Tags: project, #live, #readiness-100, supply chain, compliance, packaging, n8n, rule-engine, agents

## The regulation asks your suppliers questions. You collect the answers

The problem

EU packaging conformity under Regulation (EU) 2025/40 runs on supplier declarations: recyclability, recycled content, substances of concern, per packaging item. In practice collecting them means a chase by email, a folder of PDFs in every shape a supplier can invent, and somebody eyeballing each one against what the rules actually require.

The Declaration of Conformity you sign later needs evidence behind every item. A declaration that's missing, incomplete or quietly inconsistent with itself is usually discovered at the worst moment - when someone asks for the file.

## Suppliers get a signed link. A rule engine screens what comes back

How it solves it

You send each packaging supplier a signed link. They answer a questionnaire generated from the ruleset and upload their declaration. A deterministic rule engine screens the submission for completeness and internal consistency, and the supplier gets either a confirmation or a named list of what's missing. You keep a per-item evidence file and a coverage report, ready to sit behind a Declaration of Conformity.

A model does exactly two jobs: reading an uploaded document into named fields with a confidence on each, and drafting the covering paragraph of a gap notice. It never produces a pass or a fail. Verdicts come from the engine evaluating versioned JSON - no model, no network, no clock - so the same submission against the same ruleset gives the same findings in the same order.

The gap notice paragraph a model drafted is marked as AI-generated, readable and machine-detectable; the rule-written confirmations and reminders are deliberately unmarked. That's [Article 50 of the EU AI Act](https://github.com/automatiqa-lab/ppwr-screener/blob/main/COMPLIANCE.md?ref=automatiqa.io), handled where the work happens.

## Invite, declare, screen, report

How it works

01

**Invite**Each supplier gets a signed link; n8n carries the tokens, reminders, escalation and state, every transition logged

→

02

**Declare**The supplier answers a questionnaire generated from the ruleset and uploads the declaration document

→

03

**Screen**A model reads the document into named fields with confidences; the rule engine evaluates them against versioned JSON

→

04

**Report**The supplier gets a confirmation or a named gap list; you get the per-item evidence file and coverage report

Twelve workflows on self-hosted n8n, one rule engine, a store on n8n Data Tables with Postgres when you outgrow them. A single-workflow version of the collection campaign is published as an n8n template: [Collect packaging declarations from CSV](https://n8n.io/workflows/18024-collect-packaging-declarations-from-csv-with-forms-ai-agents-and-email/?ref=automatiqa.io).

## It screens documents. It refuses to pretend it certifies packaging

What makes it different

the limit

**Screening, not certification**

It doesn't decide whether packaging conforms, it isn't legal advice, and it doesn't replace a notified body or a technical file. That limit is stated in the repository, on the supplier form and in every email, because a compliance tool that overstates its scope is worse than no tool.

deterministic

**Judgement lives in code**

The rule engine has no model, no network and no clock. Every finding names the rule and the value that tripped it, so a gap notice is an argument a supplier can answer, not a verdict to argue with.

data, not nodes

**The ruleset is data**

Checks live in versioned JSON, and the supplier questionnaire is generated from it - change the ruleset and the questions, the checks and the reports move together. The shipped ruleset is an example built to exercise every check type, not a legal reading of the regulation.

boring core

**Boring on purpose**

Invitations, tokens, reminders, escalation and state are plain n8n, with every transition written to an event log. The interesting part is small and auditable; the rest is machinery you can read in an afternoon. MIT licensed.