European timber pricing data is technically public, but practically unusable. One country lists oak prices in Euros per cubic meter, excluding tax. A neighbouring nation shares beech prices in local currency, tax included, buried inside a scanned PDF with no searchable text layer. To make matters worse, standing trees, roadside logs, and selected auction lots are often quoted side-by-side as if they were identical products.
The raw data exists. Market intelligence does not.
KORENA launched the KORENA Timber Index to fix that. The result is a daily, freely accessible reference for European hardwood, timber, and slab prices. As of mid-2026, the index tracks roughly two dozen species and 170 regional price rows across ten countries (Romania, Germany, Bulgaria, Poland, France, Austria, Italy, Finland, Norway, Sweden), plus a pan-EU marketplace tier.
For a two-person engineering team to cover that much ground, KORENA needed one decision out of the way: who handles the web. They picked FourA, and they routed everything through it.
One Gateway to the Web
KORENA made an architectural choice early on: every external web request goes through FourA. They got rid of stray scrapers, one-off scripts, and custom commands hidden inside the codebase.
It wasn't about convenience. It was about consistency. Forestry portals behave unpredictably. Some are static HTML pages. Others are modern auction platforms that only display data after a browser renders them. Government sites are often slow, outdated, or heavily protected.
By routing all traffic through FourA's request infrastructure, KORENA handles retries, backoff, logging, and alerting the same way across every source. And every document retrieved can be hashed, stored, and traced back to its final price for auditing.
Picking the Right Fetch Strategy Per Source
Instead of hardcoding scraping logic for every site, KORENA maps each data source to a specific FourA endpoint directly in their database (see choosing the right task type for the full breakdown). They can switch strategies without touching their core parsing code:
Single (
/single/): static HTML pages, XML feeds, and direct PDF downloads. German statistical reports, Bulgarian state forestry updates, Romanian price tables. Fast, lightweight, the right default for most sites.Browser (
/browser/): interactive web applications that need a real browser context. Poland's e-Drewno auction platform requires rendering before the numbers show up. The initial HTML has nothing useful.Proxy Finder (
/proxy/): the fallback for the hardest targets. Stronger rotation, plusunblocker: truefor handshake-level anti-bot walls.
Because this is a per-source setting and not a hardcoded script, KORENA can move a source from Single to Browser to Proxy Finder when a site changes its defenses. The parsing layer never sees it.
Scanned PDFs: The Hardest Part
Modern web APIs are straightforward. The hardest case to automate is image-only PDFs. Price lists and auction results published as scans, no text layer at all. For a human it's annoying. For a daily index, it stops the pipeline.
KORENA's pipeline handles them through a clean division of labor:
Retrieval: FourA downloads the raw PDF bytes, daily, reliably.
Text evaluation: KORENA checks the file for a usable native text layer.
Processing and extraction: if the PDF is a flat image, KORENA rasterises the pages and runs them through OCR and AI document extraction, applying custom language hints and species dictionaries to catch local forestry terminology.
Schema validation: the output is validated against the same schema as every other source.
None of this works if you can't fetch the document reliably every day. That's the step FourA owns.
Fetching vs. Understanding: A Clean Split
FourA's job is to deliver raw bytes reliably. It doesn't need to know anything about timber. That lets KORENA focus 100% of its energy on what it actually knows: turning chaotic data into a standardised index. Everything domain-specific stays with KORENA. HTML is parsed locally, digital PDFs are read with pdfjs-dist, and scanned PDFs are processed via OCR.
The normalisation step is where raw numbers become an index. A standing tree price isn't a sawlog price, and a VAT-inclusive local auction result isn't directly comparable to an ex-VAT export quote. To turn raw numbers into comparable market intelligence, KORENA converts all data into one standard: Euros per cubic meter, ex-VAT, delivered-equivalent.
To do that accurately, the system factors in:
- Daily European Central Bank FX rates.
- Localised country VAT rules.
- Transport factors based on the wood's product stage.
The index also keeps different market tiers separate. Bulk roundwood, value-timber auctions, and retail listings show up as individual categories and never get blended together. A premium auction lot doesn't get to distort the baseline.
The split is the point: FourA solves web access, KORENA solves timber. Neither becomes a black box the other depends on.
Why Timber Pricing Transparency Is Suddenly Urgent
Stricter European regulations, including the EU Deforestation Regulation (EUDR), are pushing the timber market toward total traceability and cleaner sourcing documentation. Pricing transparency is the other half of that equation. Timber growers comparing regional values, buyers validating quotes, and digital marketplaces setting baseline rates all need daily, localised, comparable data. Not outdated annual averages. Not one-off local numbers.
For a lean, two-person engineering team to cover ten countries and hundreds of unpredictable web formats, they couldn't afford to spend their time managing proxy infrastructure, browser fleets, and anti-bot workarounds (see the hidden cost of maintaining your own scrapers for the full math). FourA handles the request layer. KORENA gets back the time to focus on species normalisation, OCR tuning, pricing logic, and audit trails — the work only they can do.
Daily timber prices used to mean a phone call to your regional broker. Now anyone can plot the curve themselves at timber-index.korena.eu. The next ten Index-like products won't have time to build the fetch layer from scratch. That's the bet we're making.
Building a product on public web data and tired of maintaining your own scrapers and proxy infrastructure? Get started with FourA.