Methodology
insolvency-watch produces three scores per company — 6-month, 12-month, 24-month — based on a deterministic rules engine over publicly observable signals. There is no LLM in the scoring pipeline. Every score is reproducible byte-for-byte from its signal run.
Sources
- BPI (Buletinul Procedurilor de Insolvență) — scraped from datebpi.ro, the public Inertia.js mirror of the official ONRC bulletin. Every filing carries CUI, document title, court, case number, BPI issue number and filing date. Bulletins are published daily; we re-fetch the trailing 7 days every night.
- ANAF v9 — VAT-payer registry; refreshes company status (active / inactive / radiated), CAEN code, VAT registration. Free, 1 rps, 100 CUIs per request.
- mfinante /bilant — annual financial statements published by the Ministry of Finance. Free hidden JSON endpoint, lagged 6-12 months.
- ONRC monthly dump — data.gov.ro publishes the company universe (~1.5M legal entities) under OGL ROU 1.0. We ingest a CAEN-filtered subset in Phase 1.
- Romanian business press via Google News RSS and per-site RSS (Economica, ZF companii, Mediafax economic, Hotnews economic).
- Coming in Phase 2: Monitorul Oficial Part IV (administrator changes, AGA convocations), portal.just.ro (creditor and employee lawsuits), and a trained logistic-regression classifier whose features include all of the above plus per-company financial ratios.
Scoring
Each company starts at a baseline of 50. Each rule that fires adds (or subtracts) a contribution per horizon. The final score is clamped to 0–100 and mapped to one of four bands: stable (0-25), watch (26-50), elevated (51-75), high-risk (76-100).
CAEN sector baseline
Every company receives a small contribution based on its primary CAEN section. Sectors with historically higher annual insolvency rates (construction, accommodation and food, retail trade) start a few points above baseline; regulated sectors (utilities, finance, public administration) start at or below baseline. The priors are documented in src/lib/seed/caen-baseline-rates.ts and will be refined in Phase 2 once we have enough BPI-derived labels to estimate sector rates empirically.
Rule contributions
Each row below shows what a rule will add when it fires for a typical triggering signal. Rules with empty entries return zero contributions on the empty input used to render this table; they fire only against real signals.
| Rule | 6m | 12m | 24m |
|---|---|---|---|
bpi_bankruptcy | — | — | — |
bpi_general_insolvency | — | — | — |
bpi_reorganization | — | — | — |
bpi_dissolution | — | — | — |
bpi_creditor_notice_cluster | — | — | — |
bpi_administrator_appointed | — | — | — |
anaf_status_radiated | — | — | — |
anaf_status_inactive | — | — | — |
anaf_vat_suspended | — | — | — |
financial_negative_equity | — | — | — |
financial_loss_streak | — | — | — |
financial_revenue_decline | — | — | — |
financial_current_ratio_low | — | — | — |
financial_employee_decline | — | — | — |
financial_no_filing | — | — | — |
news_closure_recency | — | — | — |
news_creditor_lawsuit | — | — | — |
news_layoff_mention | — | — | — |
news_management_exit | — | — | — |
news_growth_counter | — | — | — |
caen_sector_baseline | 4 | 6 | 8 |
classifier_logreg_v1 | — | — | — |
Confidence and the defamation gate
Each horizon has its own confidence (low / medium / high) derived from signal coverage. Companies with low confidence on a horizon do not show a numeric score — the UI displays "Not enough signals to score" instead. This is the defamation defence: we do not publish a high-risk number that could affect a real company's credit terms without enough public signals to back it up.
Bankruptcy filings (BPI) and radiated registration (ANAF) are terminal: a single such signal forces high confidence on every horizon, because they are unambiguous public facts.
ML classifier (Phase 2)
A dormant logistic-regression classifier is scaffolded but not yet trained. It will activate only when (a) the BPI scraper has accumulated ≥1000 confirmed positive filings across ≥3 calendar years, AND (b) held-out AUC-PR clears 0.25 (5× base rate), AND (c) calibration Brier stays within 1.5× of validation. Feature attributions (per-feature contribution to the predicted probability) will appear in the "why" panel exactly like rule contributions do.
Corrections
If you believe a score, a filing, or a signal is wrong, file a correction request via the form on the company page or at /corrections. We review every submission.
Disclaimer
insolvency-watch publishes signals, not predictions. Scores describe observable public information from BPI, ANAF, mfinante and the Romanian press, and they do not predict the future. They are not legal, financial or credit advice.