eqlx.aiOpen research

eqlx.org / How we test

Evidence

Every number checked against something that does not share its code.

A test that repeats the code's own formula proves nothing. These tools are checked against published figures, exact answers, slow second versions and simulation.

1,258tests in 6 repositories
42headline checks, listed below
4errors found in official documents
0customer files used, ever

Four kinds of independent truth

Every calculation is held to at least one of them.

Published examplesThe worked examples in standards, regulations and papers, reproduced to the printed digit.
Closed formsWhere a formula has an exact answer, the code must reach it.
Brute forceA slow, obvious second version of the calculation; both must agree.
SimulationMillions of random cases where a result is a probability or a band.

Tool by tool

The headline checks from each tool's page. The full list is in each repository's tests.

eqlx-credit

62 tests · v0.2.0Is the rating model still right? PD validation and IRB risk weights
✓8 of 8 columnsBasel II Annex 5 risk weights · 152 figures, none off by more than 0.01
✓0.29 %, 0.33 %, 0.76 %Pluto and Tasche 2005 · the paper's worked example
✓94.5 % of 400simulated portfolios where the 95 % interval of the AUC held the true value
✓29 Februarydefault rates per year on hand-built cases, including the one-year boundary

eqlx-ifrs9

356 tests · v0.2.0How much provision? IFRS 9 expected credit loss for a loan book
✓1,250IFRS 9 Example 8 · 12-month loss
✓750 and 675Example 9 · loss-rate approach
✓25,000 and 45,000Example 10 · credit lines
✓580,000Example 12 · provision matrix
✓114 and 145IFRS 7 guidance · two matrices
✓92, not 70Standard-setter's scenario example
✓0.002736Israel, Rosenthal, Wei 2001 · rating matrix
✓73.80 and 26.20ECB review manual · collateral sale
✓84 and 216ECB guidance · sale after five years
✓46,476ECB review manual · cash flow times six
✓141.70 and 103.50ECB review manual · project loan

eqlx-portfolio

188 tests · v0.2.0What the book can lose in a bad year, and what a new loan must earn
✓107.09 and 2.99CreditMetrics · value of one bond after a year, and its spread
✓3.18Same bond · with uncertain recovery
✓14 of 14CreditMetrics · rating thresholds of two borrowers
✓64 of 64CreditMetrics · joint rating table, each cell within 0.01 point
✓30 of 30CreditMetrics · simulated scenarios mapped to ratings
✓204.40CreditMetrics · worst 1 % value of two bonds
✓14,221,863CreditRisk+ · expected loss of its 25-borrower example
✓within 0.2 %CreditRisk+ · the example's 95th to 99.9th percentile losses

eqlx-bankmath

230 tests · v0.1.0Instalments, real yearly cost, overdrafts, cards, legal ceilings
✓899.75 and 899.81Consumer credit regulation · 12-month plan, every row
✓1,718.61 and 1,718.72Same regulation · 36-month plan
✓888.49Housing finance regulation · Annex 1
✓1,345.94 and 1,344.88Partial prepayment · two examples
✓5.40Late interest · instalment 10 days late
✓8 of 8Directive 98/7/EC · cost rate examples
✓1.64 % and 2.23 %TCMB · early repayment fee examples
✓1 November 2026TCMB · card rate ceiling table
✓1.018229476Borsa İstanbul · TLREF example

eqlx-ebelge

62 tests · v0.1.1Do these e-invoices and e-ledgers add up?
✓0 false alarmson GİB's public e-Defter samples
✓Real findings onlyon GİB's e-Fatura samples: each one is an inconsistency in the sample
✓62 testsincluding malicious XML, ZIP bombs and attempts to read outside the folder
✓2 per checkone made-up document that triggers it, one that does not
✓Hostile XML refusedentity expansion and external entities
✓ZIP limitsread in memory; size, file count and compression ratio capped

eqlx-aml

360 tests · v0.1.0Which transfers look like money laundering, with the rows
✓Brute forcea slow second version tries every possibility; both agreed on hundreds of random transfer sets
✓Shuffled rowsthe result does not change with the order of the file
✓Fresh processnor with Python's randomised hashing
✓360 testsrun on every change

Errors found in official documents

Printed figures that do not follow from the document's own tables. Crossed out: what is printed. Below: what the tests assert, and why.

213.63213.29mean value of the two-bond exampleeqlx-portfolio · details
2.782.70one rating threshold of the BBB borrowereqlx-portfolio · details
45.2345.24KKDF: 301.59 x 15 %eqlx-bankmath · details
16.4870 %16.4872 %annual rate from the annex's own cash flowseqlx-bankmath · details

What the tests do not prove

That your inputs are rightDefault probabilities, rates and thresholds are yours. The tools compute; they do not estimate.
That a regulator agreesMatching a published example is evidence, not approval. No tool is a supervisory filing.
That every case is coveredEach tool lists what it does not do, on its page and in LIMITS.md in its repository.