Documentation Index
Fetch the complete documentation index at: https://docs.ivory.finance/llms.txt
Use this file to discover all available pages before exploring further.
What is Ivory AI Foundry?
AI Foundry is a no-code platform that lets investment banking teams turn their proprietary data into running ML models and autonomous agents — without writing a single line of Python.
The platform has four phases, each building on the last:
Phase 1 — NL Data Access
Ask any question in plain English → Foundry translates it to SQL/Cypher,
runs it across IOMETE / QuestDB / FalkorDB / Postgres, and returns results + narrative
Phase 2 — Visual Dataset Builder
Select source tables, join them, add filters and graph features →
Foundry generates Spark SQL and materialises an Iceberg table on IOMETE
Phase 3 — AutoML + HPO
Point Foundry at a dataset, pick a target column →
23-algorithm competition trains across classification / regression / time-series / anomaly.
Class imbalance handled automatically (SMOTE + stratified split).
Optional: run Katib Bayesian HPO first (up to 12 trials) to find
optimal hyperparameters before committing to a production run.
Phase 4 — Deploy + Agents
One-click KServe InferenceService deployment of the trained model →
SHAP explainability, drift monitoring (PSI), and threshold calibration
available immediately after deploy.
Wrap the model as a named Agent (predict / score / alert / batch).
Spin up a JupyterLab Notebook server to explore data interactively.
Authentication
All Foundry endpoints require a JWT access token:
Authorization: Bearer <access_token>
Data sources
Foundry queries are tenant-isolated and can span:
| Source | Type | Best for |
|---|
| IOMETE | Iceberg/Spark SQL | Historical filings, financial statements, custom datasets |
| QuestDB | Real-time SQL | Live market data, tick data, recent signals |
| FalkorDB | Cypher (graph) | Relationship queries (board overlap, supply chain, etc.) |
| Postgres | Standard SQL | Read-models: ci.*, dm.*, pm.*, md.* |
Algorithm roster
23 algorithms across 4 problem types. The competition runs automatically — you pick a target column and a problem type; Foundry selects the winner.
| Problem type | Algorithms | Winner criterion |
|---|
| Classification | XGBoost, LightGBM, CatBoost, RandomForest, ExtraTrees, GradientBoosting, LogisticRegression, SVC | Highest val_accuracy |
| Regression | XGBoost, LightGBM, CatBoost, RandomForest, ExtraTrees, GradientBoosting, Ridge, Lasso, ElasticNet, SVR | Lowest MAE |
| Time-series | Prophet, ARIMA (auto_arima) | Lowest MAE |
| Anomaly detection | IsolationForest, LOF, OneClassSVM | All three scored |
Production ML features
Every training run automatically applies production-grade practices:
| Feature | Detail |
|---|
| Class imbalance | SMOTE oversampling when minority:majority ratio < 10:1; class_weight="balanced" for sklearn models when ratio < 3:1 |
| Stratified split | Train/val split preserves class distribution for classification |
| Algorithm timeout | Each algorithm has a configurable wall-clock timeout (default 5 min) so one slow model never blocks the competition |
| SHAP explainability | TreeExplainer / LinearExplainer on up to 500 validation rows — stored per run, accessible via GET /models/{id}/shap |
| Drift monitoring | Per-feature PSI computed against training-time decile bins — GET /models/{id}/drift returns stable / moderate / critical |
| Threshold calibration | POST /models/{id}/threshold sets the binary decision boundary — lower for high-recall use cases (fraud, AML), higher for precision-first (deal scoring) |
| Row limit | Up to 500,000 rows from IOMETE by default (configurable via IOMETE_ROW_LIMIT env var) |