Scoring methodology · v1.0
Methodology
How Plassic computes a score, in detail. The five packaging attributes, their weights, where the inputs come from, and the limits of what the score can — and cannot — tell you.
Score formula
Weighted average of five packaging attributes
Every Plassic score is a weighted average — 0 to 100 — calculated across five packaging attributes. Higher score = less plastic / more recyclable. The weights are expert-judgment, chosen to give intuitive polarity — they are not statistically derived (see limitations).
Score formula
Score = (mass × 0.35) + (polymers × 0.25) + (recyclable × 0.20) + (multilayer × 0.15) + (refill × 0.05)
Each term is normalised 0–100 within its attribute before weighting. Where a per-product input is unknown, a category default is substituted (see limitations); weights are never rebalanced.
| Packaging attribute | Weight | Inputs | Source |
|---|---|---|---|
| Packaging mass · plastic | 35% | Share of total packaging mass that is plastic. Sub-score = 100 − plastic-%. | Open Food Facts packaging tags where present; otherwise a category default |
| Polymer count | 25% | Number of distinct polymer types in the packaging. Each extra polymer costs 15 points (mixed-polymer packs are harder to recycle). | Open Food Facts packaging tags where present; otherwise a category default |
| Curbside recyclability | 20% | Share of packaging mass accepted in kerbside recycling. A single national figure — not resolved per postcode. | Category-level recyclability estimate |
| Multilayer / contamination | 15% | Whether the packaging is multilayer / laminated and not recoverable. Hard yes/no: yes → 0, no → 100. | Open Food Facts packaging tags where present; otherwise a category default |
| Refill / return scheme | 5% | Whether a refill or take-back scheme exists. none → 0, partial → 50, full → 100. | Brand / scheme disclosure where known; otherwise none assumed |
| Total | 100% | ||
Packaging attributes in depth
What each attribute measures
Packaging mass · plastic · 35%
The highest-weight attribute. Measures the share of total packaging mass that is plastic. Sub-score = 100 − plastic-%; so zero plastic packaging scores 100 and all-plastic scores 0. This is not a measurement of microplastic content in the product itself.
Inputs come from Open Food Facts packaging tags where a product carries them, and from per-category defaults otherwise.
Polymer count · 25%
The number of distinct polymer types in the packaging. Sub-score = 100 − (count − 1) × 15: a single polymer type scores 100, and each additional polymer costs 15 points. Mixed-polymer packaging is harder to recycle because streams must be separated before processing.
Inputs come from Open Food Facts packaging tags where a product carries them, and from per-category defaults otherwise.
Curbside recyclability · 20%
The share of packaging mass that is accepted in kerbside recycling, used directly as a 0–100 sub-score. This is a single national figure — it is not resolved per postcode or local council area. Per-region kerbside data is not yet available on the scoring request path.
Category-level recyclability estimate.
Multilayer / contamination · 15%
Whether the packaging is multilayer, laminated, or otherwise contaminated in a way that prevents recovery. This is a hard binary: packaging that is not multilayer scores 100; multilayer packaging scores 0. Laminated films and foil-lined pouches fall into this class.
Inputs come from Open Food Facts packaging tags where a product carries them, and from per-category defaults otherwise.
Refill / return scheme · 5%
The availability of a refill or take-back scheme for the product. Scored as: none → 0, partial → 50, full → 100. This is the lowest-weight attribute and is absent for the majority of products.
Brand / scheme disclosure where known; otherwise none assumed.
Score bands
Four bands, three colours rearranged
The score (0–100) maps to one of four bands. The bands use only three brand colours — rearranged — so the app stays visually coherent rather than defaulting to a red/yellow/green stoplight.
80 – 100
Clean
Minimal-plastic, easily-recyclable packaging — often a carton, glass, or a single recyclable polymer with no multilayer film.
60 – 79
Low
Mostly recyclable packaging with one or two drawbacks — a higher plastic share, an extra polymer, or no refill option.
30 – 59
Medium
Meaningful packaging-plastic burden: multiple polymers, low kerbside recyclability, or partial multilayer film.
0 – 29
High
Heavily plastic, hard-to-recycle packaging — high plastic mass, multilayer/contaminated film, and no refill route.
Colour is never the sole signal — the verdict word and score number are always present alongside the band colour (WCAG 2.2 AA compliant).
Normalisation
How each attribute is scaled to 0–100
Packaging mass (A₁)
Sub-score = 100 − plastic-%. Zero plastic packaging scores 100; 100% plastic scores 0. Intermediate values scale linearly.
Polymer count (A₂)
Sub-score = 100 − (count − 1) × 15. A single polymer = 100; two polymers = 85; three = 70; and so on. The floor is 0.
Curbside recyclability (A₃)
Used directly as a 0–100 sub-score: the percentage of packaging mass curbside-recyclable is the sub-score.
Multilayer (A₄) · Refill (A₅)
Multilayer is a hard binary: not-multilayer → 100, multilayer → 0. Refill is a three-step scale: none → 0, partial → 50, full → 100.
Missing inputs
When a per-product input is unavailable, a category default is substituted. Weights are never rebalanced. Two products in the same category will receive identical scores when both rely on category defaults.
Limitations
What the score cannot tell you
Intellectual honesty is load-bearing for Plassic. The limitations below are not disclaimers buried in a terms page — they are part of the product.
Scores are inference, not lab measurement
Plassic does not test physical samples. Scores are computed from packaging attributes sourced from product databases or category defaults. A product scoring 90 may still have plastic-contact surfaces; a product scoring 30 is not necessarily unsafe. The score quantifies packaging-recyclability signals — nothing more.
Most inputs are category defaults, not per-product measurements
For most products, the five packaging inputs are category defaults, not per-product measurements — two products in the same category receive identical inputs unless Open Food Facts carried specific packaging tags. The response carries a confidence value (0–1) reflecting this.
Packaging changes may lag
Packaging changes are picked up when a product's record is refreshed in our catalogue; between refreshes a score reflects the most recent record.
Scores are versioned
Scoring weights and attribute definitions evolve as the engine is refined. Each score record carries a score_version identifier. When a version bump changes a product's score materially (≥ 5 points), affected users receive an in-app notification. Historical scores are preserved and accessible via the API.
The weights are not empirically validated
The five weights are hand-set for intuitive polarity and have not been checked against an independent ground-truth dataset. The four published reference scores (e.g. oat-milk 94, cola 12) are authored anchors, verified at ±5 in CI — they are not evidence the formula is accurate.
The score is usually about packaging, not microplastic content
By default the 0–100 number is a packaging-recyclability score. Where Open Food Facts identifies the specific polymer a product is packaged in, Plassic shows an indicative content-exposure estimate as the headline instead — a modelled estimate of microplastic-exposure risk from that polymer and the product's category, always labelled 'indicative estimate — not a per-product measurement', with the packaging score kept visible as a component. Where only a generic material class (e.g. 'plastic') is known, the packaging score stays the headline and the estimate appears as a low-confidence component; where no material is known, the packaging score stands alone. The estimate is modelled, never measured, and no number is fabricated when signal is missing. The separate, citation-backed microplastic-exposure panel (where peer-reviewed evidence maps) is reported alongside the score and never folded into it.
Data currency
How we keep scores current
Trigger 01
Barcode re-scan
When a user scans a barcode, Plassic checks whether the product's packaging record has changed since the last score was computed. Any change triggers a re-score.
Trigger 02
Catalogue refresh
When a product's packaging record is updated in our catalogue, its score is recomputed on the next scan.
Trigger 03
Weight-version bump
When scoring weights change (a versioned update), all affected products are re-scored in bulk. Users whose product scores change by ≥ 5 points receive an in-app notification.
More reading
Need the plain-English version?
/how-it-works explains the same methodology without the formula notation — written for people who want to understand, not audit.