solid predictThe GPT moment, but for spreadsheets.
Every Solid# tenant gets production-grade predictions the day they sign up — no data scientist, no per-tenant training, no 3-month "wait for enough history" cold start. This is the part nobody else has yet.
What changed in 2025
For 20 years, machine learning on tabular data (spreadsheets, database tables) meant this loop: load the data, hand-engineer features, tune XGBoost / LightGBM / CatBoost per dataset, retrain whenever the dataset moves. A data scientist, weeks per problem.
Tabular Foundation Models (TFMs) flip that. Pretrain a single model once on millions of synthetic tables, then drop it onto any new table zero-shot — no per-dataset training, no hyperparameter sweep, no feature engineering ritual.
- ·Hire a data scientist
- ·Wait 3 months for enough deal history
- ·Engineer features by hand
- ·Tune XGBoost per dataset
- ·Retrain when the data drifts
- ·Cold-start every new tenant
- ·Zero training pipeline
- ·Day-1 predictions on tiny histories
- ·No feature engineering needed
- ·Same pretrained weights for every tenant
- ·Drift is just new context rows
- ·Devon adds a new predict target overnight
The in-context-learning trick
TabPFN-v2 does to spreadsheets what GPT does to text. You don't fine-tune GPT to summarize in a new style — you put a few examples in the prompt. TabPFN puts your tenant's labelled rows in the prompt:
# This DOES NOT train. It stages the tenant's history as context.
clf = TabPFNClassifier(model="v2")
clf.fit(X_train, y_train) # ← attention buffer, not a weight update
# Forward pass attends to the labelled rows + the test row.
# Pretrained weights stay frozen forever.
clf.predict_proba(X_test)Practical consequence: 20 closed deals is enough to start predicting the 21st. Every prediction is a fresh in-context pass. That's why solid predict works on day-1 tenants and why Devon can spin up a brand-new predict target overnight without a training pipeline, an artifact store, or a hyperparameter search.
Why this is the cool part
No cold start, ever
Other platforms wait 3+ months to collect enough history before predictions even turn on. With TBFN, a tenant gets predictions on day 1 — heuristic fallback below 20 rows, real TBFN above. The 'we'll be ready soon' anti-pattern is gone.
No per-tenant training
One pretrained model serves every tenant. No training pipeline, no artifact store, no per-customer GPU bill, no hyperparameter sweeps. Add a new predict target by writing one Python file — Devon auto-discovers candidates overnight.
Seconds, not hours
~1–3 seconds for tables up to 10,000 rows. The Nature 2025 paper shows TabPFN-v2 ties or beats hand-tuned XGBoost / CatBoost / LightGBM on the majority of small-to-medium tabular tasks — in seconds instead of weeks of tuning.
Tenant-isolated by design
Predictions never cross tenants. Each call passes only that tenant's labelled history as context. The pretrained weights are tenant-agnostic — they don't memorize anyone's data. RLS-protected at the DB level (446 tables, 100% coverage).
Honest confidence + fallback
Every prediction returns a confidence score (sharpened distance from 0.5). Under 20 labelled rows, the wrapper switches to a domain heuristic and admits low confidence explicitly. No fake certainty.
Plug-replaceable backend
`TabularPredictor` is an interface. If a tenant grows past 10K rows, that specific target can swap to XGBoost or TabPFN Enterprise behind the same API — zero CLI change, zero MCP change.
From the terminal
Every TBFN-backed prediction has a CLI verb. AI agents (Claude, Cursor, your own ChatGPT plugin) drive these directly with --json envelopes.
solid predict deal-close <deal_id>Probability the deal closes — hot/warm/cold tier + recommendation.solid predict no-show <appointment_id>Probability the customer no-shows — high/medium/low risk.solid predict payment-late <invoice_id>Probability the invoice is paid after due date.solid predict targets --status proposedWhat Devon proposed overnight, awaiting your decision.solid predict approve <target_id>Approve a Devon-proposed target — it becomes callable.solid predict discoverTrigger Devon's discovery sweep on demand.What TBFN doesn't do (yet)
Honesty matters — here's what TabPFN-v2 is not built for today:
- · Tables larger than ~10,000 rows × 500 features per call. Larger tenants stratified-sample or swap backend.
- · Streaming / real-time updates. Each call is a fresh forward pass; we batch.
- · Time-series forecasting with autoregressive structure. Use the time-series wrapper, not TBFN directly.
- · Forensic-grade explainability (SHAP). Cheap mean-difference top-features ranking only; full SHAP can land if a customer needs it.
- · Unstructured data (text, images). LLMs handle text; vision models handle images. TBFN is for the cells of your database.
Provenance
Try it from the terminal
Install the CLI, log in, and run any solid predict verb against a real deal, appointment, or invoice in your tenant.
npm i -g @solidnumber/cli