
Astrolabio
Loan book lens. Normalises heterogeneous credit portfolios and computes metrics on them. The caller supplies the portfolio; nothing is kept between calls. Refuses to compute rather than assume: currency policy, portfolio regime and exposure structure have no defaults because choosing one would change the answer.
How to pay
Subscribe
$9/month
Predictable monthly cost with included usage. Best for steady, high-volume traffic.
- Unlimited tools within plan limits
- One API key, billed once a month
- Cancel any time
What it does
Astrolabio takes a credit portfolio — peer-to-peer loans, private credit, receivables — and computes return, concentration, buyback coverage, recovery rate and cash drag on it.
The hard part isn't the arithmetic. It's that two platforms describe the same portfolio differently, and comparing them without saying so produces a number that looks right and isn't.
1.234,56 means one thing in Berlin and another in Boston. A loan marked late carries a 30-day buyback guarantee on one platform and 90 on another. One platform reports default as a status; another keeps it in a separate date column and shows the loan as repaid — over 13% of defaulted loans in one public loan book are recorded that way.
Astrolabio normalises all of it, and declares what each mapping lost.
What it refuses to do
Three parameters have no default, because choosing one would change the answer.
missing what happens exposure structure nothing computes portfolio regime, with open positions returns available: false, code regime_not_declared FX policy, on a multi-currency portfolio no consolidation
A portfolio of 449 positions where 424 are open and unresolved has no meaningful internal rate of return — the outcome isn't known yet. A tool that returns a number anyway is telling you something false with full confidence.
Astrolabio returns the refusal, with the reason. As a structured envelope, not an exception: a client that got an error wouldn't know whether the tool broke or the data didn't support the calculation.
Every result carries its own limits
Nothing comes back as a bare number. Each result includes:
the method used, as codes, with its parameters coverage — how many positions the figure actually covers degradation — every assumption made and every piece of information lost along the way
If a figure covers 11 positions out of 449, the result says so. If a currency was converted using a rate whose provenance is unverified, the result says that too.
What it will never do
No recommendations. No scoring. No ranking by attractiveness. No forecasting.
These aren't missing features — they're the product. Astrolabio measures what happened and states what the measurement can't tell you. What to do about it is the operator's call, and stays that way.
There is no field in the output where a recommendation could go.
Architecture
Zero custody. No funds, no execution, no instructions to third parties.
Zero deal flow. Astrolabio never sees an opportunity before the operator does, and never introduces one.
Stateless. The portfolio arrives with each call and leaves with the answer. Nothing persists between calls — there is no database, no cache, no file written to disk. This is verified structurally: the test suite fails if a database driver or a file-write call appears anywhere in the codebase.
No external lookups. Astrolabio contributes no information of its own. ECB reference rates ship embedded with the package — no network call, no API key, no credential to store. The deployment manifest declares zero secrets, and that empty list is the property, not an omission.
Coverage
Numbers — 1000+ locale conventions via CLDR, including Indian lakh grouping and Arabic-Indic digits. Ambiguous formats are rejected rather than guessed.
Dates — Gregorian, Umm al-Qura, Persian solar Hijri, Buddhist, Japanese imperial. Field order is declared per adapter, never inferred: 03/04/2025 is not resolved by looking at the number.
Text — Unicode-correct matching across scripts. Cyrillic, Korean, Arabic and Chinese names survive normalisation intact; İstanbul matches Istanbul.
Instruments — amortising, bullet, discount, revenue share, and Islamic finance structures (murabaha, ijara, musharaka, mudaraba, sukuk), because profit-sharing returns and interest returns are not the same measurement.
Exposure — direct holding, fractional participation, trust debt securities, participation certificates, securitised tranches, fund units. What the investor holds is not always the loan, and the difference changes what a status means.
Built on real data
The canonical model was verified against a real portfolio: 449 positions, 243 ledger entries, and a balance reconciliation that closes on 242 of 242 transitions.
That verification found things a synthetic fixture would not. The model was wrong, not incomplete, about what an investor actually holds on one platform — corrected. Secondary market transfers were being classified as neither principal nor interest — corrected, with five real operations mapped.
905 tests. Documented security audit covering OWASP, OWASP for LLMs, and MCP-specific surface risks, with dynamic testing against the running server.
Who it's for
Loan originators and platforms measuring their own book. Credit funds evaluating a portfolio before acquisition. Anyone who needs a return figure they can defend in front of an investment committee — including defending why, on some portfolios, the honest answer is that it can't be computed yet.