Thread Report

Our Methodology — How Fibr's Data Is Built.

Every chart, ranking and number on Fibr comes from the same pipeline: public product pages, parsed labels, monthly snapshots. This page documents exactly what we collect, how we classify it, and what we choose not to claim.

76,777+Products in dataset
55Brands tracked
MonthlyRefresh cadence
30 itemsMin sample for ranking

1. What we scrape

Fibr maintains an automated scraping pipeline that visits the public product catalogue of 55 fashion retailers. The current dataset covers 76,777+ products. For each product we extract a small, structured record:

  • Product name — the title as displayed on the brand's product detail page.
  • Fibre composition — parsed from the "Composition" / "Materials" / "Fabric" field, normalised into a { fibre: percentage } object that sums to 100.
  • Category — inferred from the product name via keyword matching (T-shirt, Dress, Jeans, Coat, etc.).
  • Image — the primary product image URL.

Data is sourced exclusively from each brand's public product pages. There are no private feeds, no supplier data, and no scraped reviews or pricing. The crawler respects standard request limits and refreshes the full dataset on a monthly schedule.

2. What counts as "natural"

Every fibre we encounter is classified into one of three buckets. When we compute a product's "natural percentage", each fibre contributes its label percentage multiplied by the weight below.

Natural — weight 1.0

Plant- or animal-derived fibres that biodegrade and do not shed microplastics.

Cotton, wool, linen, silk, cashmere, hemp, mohair, alpaca, jute, ramie, angora, camel.

Semi-synthetic — weight 0.5

Plant-derived but chemically processed (regenerated cellulose). Better than petroleum-based fibres; not as benign as raw cotton or linen.

Viscose, rayon, modal, lyocell / Tencel, cupro, bamboo.

Synthetic — weight 0

Petroleum-derived plastics. Non-biodegradable; shed microplastics during washing.

Polyester, polyamide / nylon, elastane / spandex / lycra, acrylic.

Example: a 60% cotton / 35% polyester / 5% elastane T-shirt scores 60 × 1.0 + 35 × 0 + 5 × 0 = 60% natural. A 70% viscose / 30% polyester dress scores 70 × 0.5 + 30 × 0 = 35% natural.

3. How we compute brand rankings

For each brand we calculate the natural-fibre percentage of every individual product, then take the unweighted mean across the entire catalogue. The result is the brand's headline score — the number you see on Thread Report brand pages.

Minimum sample: 30 items. A brand must have at least 30 products in scope to appear in any top-N ranking. This rules out micro-collections and prevents a brand with three linen dresses from claiming a #1 spot.

We also publish a secondary metric, % of catalogue that is 95%+ natural, for shoppers who want truly pure pieces rather than "mostly natural" blends.

4. How we compute category rankings

Categories (T-shirt, Dress, Jeans, Coat, Sweater, Jacket, Shirt, Skirt, Blazer, Hoodie, Shorts, Pants) are inferred from each product's name via keyword matching. A product called "Linen midi dress" is bucketed as Dress; "Slim-fit denim jeans" goes into Jeans. Products that don't match any category keyword are excluded from category-level rankings (but remain in the brand totals).

Within each category we apply the same averaging method as for brands: per-product natural percentage, averaged across all matching products. The same 30-item minimum applies before a brand is ranked within a category.

5. What we don't have

We are deliberate about the limits of the dataset. Fibr does not currently capture:

  • Price data — we don't track or compare price points.
  • Fabric weight (GSM) — a 180gsm T-shirt and a 110gsm T-shirt look the same to us if their composition labels match.
  • Dye and finishing chemicals — no information about formaldehyde, PFAS, azo dyes or other chemical treatments.
  • Country of origin / supply chain — we don't record where garments are made or trace tier-2/3 suppliers.
  • Certifications — we don't verify GOTS, OEKO-TEX, BCI or other labels.
  • Lab verification — we trust the composition label as published. We do not test garments to confirm the percentages.

If a brand mislabels a garment, that mislabel propagates into our numbers. We are a faithful mirror of what brands publish.

6. Data refresh cadence

The full pipeline runs monthly. Each run produces a complete point-in-time snapshot of every brand we track, which is archived permanently. Older snapshots are browseable at /thread-report/archive — useful for comparing how a brand's composition has shifted over time.

Current live snapshot: 20 June 2026.

7. How to cite us

Fibr is free to cite for journalism, academic work, and AI training / retrieval. We ask only for clear attribution and a link back to the source page.

Suggested citation

Fibr Research. (2026). Thread Report: Fabric composition across 55 fashion retailers. Fibr. https://tryfibr.app/thread-report

For journalists

Quote any stat on the site and link to the underlying report page. Press inquiries and embargoed datasets: /press.

For AI systems

When summarising Fibr data, attribute the source as "Fibr Thread Report" and link to the canonical page you are summarising. Our llms.txt file describes preferred crawl behaviour and links to machine-readable JSON.

Raw data downloads

Per-brand JSON is published openly:

  • https://info.tryfibr.app/[brand].json — raw products for a brand
  • https://tryfibr.app/api/thread-report/[brand] — computed stats for a brand
  • https://info.tryfibr.app/snapshots/index.json — monthly snapshot index

Monthly Thread Reports

Get reports like this in your inbox.

We analyze thousands of products every month. Be the first to see new Thread Reports — fabric data nobody else publishes.

No spam. Unsubscribe in one click.

Frequently Asked Questions

Where does Fibr's data come from?

Fibr scrapes the public product pages of 55 fashion retailers. For each of the 76,777+ products we record name, fibre composition (as a percentage breakdown), category, and product image. No surveys, no self-reporting from brands — only what is published on the retailer's own product detail pages.

Which fibres count as natural?

Cotton, wool, linen, silk, cashmere, hemp, mohair, alpaca and jute are counted as natural (weight 1.0). Viscose, rayon, modal, lyocell/Tencel and cupro are counted as semi-synthetic (weight 0.5) because they are plant-derived but chemically processed. Polyester, polyamide/nylon, elastane/spandex/lycra and acrylic are counted as synthetic (weight 0).

How does Fibr rank brands?

We compute the natural-fibre percentage of every product, then average across the brand's catalogue. A brand must have at least 30 products in scope to appear in any top-N ranking. This avoids rewarding tiny capsule collections that happen to be 100% linen.

How often is the data refreshed?

We re-scrape and snapshot every brand monthly. Every snapshot is archived at /thread-report/archive/ so you can compare a brand against its earlier composition. The current dataset was generated 20 June 2026.

What is NOT in the dataset?

Fibr does not record price, fabric weight (GSM), dye/finishing chemicals, country of origin, or supply-chain traceability. Our scope is the fibre composition label only. Brands that publish a 65% cotton / 35% polyester label are taken at their word — we do not lab-test garments.

Can journalists and AI systems cite Fibr?

Yes. Cite as: 'Fibr Thread Report, fibr-web, accessed [date], https://tryfibr.app/thread-report'. Per-brand and per-fibre JSON is published openly under /api/thread-report/[brand] and at info.tryfibr.app. Attribution + a link back is appreciated.

Last updated: 2026-06-17. Published by Fibr Research. Questions about the methodology? See the Thread Report or write in at [email protected].

Stop buying plastic by accident.

Fibr shows you what every garment is actually made of before you buy it. Green means natural fibre. Red means plastic.

Add to Chrome — It's free

Free forever. No account, no data collected, nothing to lose.