vertiq
Self-improving decision intelligence · open source

A self-improving model system for operational decisions

Vertiq combines a local language model that reads any operational dataset with decision models trained on real outcomes. Both improve through recursive self-improvement: each generation trains its successor, and a generation reaches production only after it outperforms the current one on held-out data.

Get startedView on GitHubHow RSI works

SOURCE EXPORT · WORK_ORDERS.CSVEquipment NoDateOrder TypePM DoneEQ-6022026-09-04pmnoEQ-6022026-09-19breakdown—EQ-1182026-09-20pmyesEQ-4312026-09-22pmnoEXAMPLE OUTPUT · predict_eventEQ-602 · failure within 30 days0.31Raises: skipped maintenance in the last 60 daysLowers: time since the last failureModel status: promoted (beat baseline on held-out assets)
0.767AUC for equipment failure prediction with one domain plugin; rule baseline 0.674
-20.2%estimated offer effect on transaction value; true effect −20%
0.807AUC predicting repeat orders for 5,881 real customers (Online Retail II); recency baseline 0.761
100.0%of held-out tables mapped by Vertiq LM without load errors after validation

Synthetic benchmarks with known ground truth, 5 runs each, and one public dataset. See benchmark methodology.

Recursive self-improvement

Each generation trains the next. Only better generations ship.

Vertiq improves its models through recursive self-improvement (RSI) under evaluation control. In each round a teacher model generates additional training examples, and every example is validated against its own data before it is used. The student model is trained and evaluated on held-out records; it is promoted only if it outperforms the production model, and the promoted model becomes the starting point for the next round. Its incorrect outputs are retained as negative examples for the following round, and new outcome data is added at every cycle. No iteration reaches production without passing the evaluation gate.

Applied to table mapping, this process raised the exact-match accuracy of a 4-billion-parameter model from 3.5% to 52.6% on the same held-out set.

Vertiq LM

A 4-billion-parameter language model fine-tuned locally to map any source table to Vertiq's data contract. It runs on Apple Silicon, so source data does not leave the machine.

Decision engine

Event prediction, value prediction, uplift, affinity, tested insights and rule-based monitoring, trained on an organisation's own outcomes and embedded directly in its applications.

RSI loop

Teacher generation, validation, training, evaluation and error feedback. Each promoted generation becomes the starting point for the next, and every generation passes the evaluation gate.

TEACHERGenerates examplesopen-weight model or aconfigured API endpointVALIDATIONVerifies exampleseach example must load andmatch a blind re-mappingSTUDENTTrainsVertiq LM or adecision modelEVALUATION GATEPromotes or retainscompared with the baselineand the production modelon held-out recordsNEGATIVE EXAMPLESFeed the next roundincorrect outputs arepenalised in preferencetraining (ORPO)OUTCOME DATAAdded each cycletransactions, failures,renewals, claimsafter promotionnext roundeach cycle
Each round begins from the model promoted in the previous round. Teacher output is never used without validation, and providers whose terms prohibit training on generated output are excluded.
Role in an AI stack

A specialised model system for decisions

Vertiq is a specialised model system, not a general-purpose assistant. Where foundation models generate text, Vertiq makes and verifies operational decisions: its local model maps source data to a common contract, deterministic validation checks the mapping, and each new generation of its decision models is promoted only when it measurably outperforms the generation in production.

No dependency footprint

The decision engine uses only the Python standard library, so it can be vendored into an existing service, run on a server or embedded in an edge device without adding packages to the environment.

Local schema mapping

Vertiq LM runs on Apple Silicon and maps source tables without sending data to an external API. Its output is validated against the rows before it is used.

Promotion control

The evaluation gate compares every candidate with a rule-based baseline and the production model on held-out entities, with an optional minimum margin (min_gain).

Measured outcomes

Uplift is estimated against randomised control groups, so reported effects reflect the intervention rather than pre-existing behaviour.

Challenges

Common obstacles to reliable decision models

Schema onboarding

Each source system exports data in a different structure. Mapping it to an internal model is manual work, repeated for every new source.

Vertiq LM proposes a column mapping from the header and sample rows. Column names, value types and the date format are then validated against the data before use.

Attribution bias

Comparing contacted and non-contacted customers credits an intervention with outcomes that would have occurred without it.

Uplift models are trained against randomised hold-out groups and rank entities by the expected change an intervention produces.

Unvalidated retraining

Scheduled retraining can promote a model that performs worse than the model already in production.

Each candidate is evaluated on held-out entities against a rule-based baseline and the production model, and is promoted only if it performs better.

False discoveries

Testing many segments surfaces patterns that occur by chance.

Candidate insights are reported only after Benjamini–Hochberg false-discovery-rate control.

Domain knowledge

Engineers, clinicians and analysts hold knowledge that is not recorded in event data.

Feature and rule plugins encode that knowledge without modifying the decision engine. The evaluation gate measures their contribution.

Data residency

Regulated data often cannot be sent to external services, and full ML platforms are heavy to deploy at the edge.

The decision engine has no third-party dependencies and makes no network calls. Vertiq LM runs locally on Apple Silicon.

Capabilities

Supported analyses

All analyses operate on one data contract of entities, events and actions, so the same system serves every industry.

Event prediction

Probability that an event occurs for an entity within a time window, such as customer return, equipment failure, readmission or late payment.

tasks.predict_event

Value prediction

Expected value of the next event, such as order value, repair cost, length of stay or renewal amount.

tasks.predict_value

Intervention effects

Effect of any recorded action, such as a maintenance programme, outreach call or carrier change, estimated against a control group, with the entities it helps most.

tasks.predict_uplift

Effects without a control group

Matched-cohort and doubly robust estimates when an intervention was not randomised, with balance and overlap diagnostics and an interval.

causal

Time to next event

Probability of the next event within a window given the time elapsed, personalised to each entity's rhythm.

survival

Affinity and sequences

Co-purchase associations, the next likely product, replenishment intervals and tested A-then-B patterns with their typical lag.

affinity · sequences

Tested insights

Segment-level patterns reported only after false-discovery-rate control.

insights

Monitoring

Input and score drift, accuracy on new outcomes, and sequential tests of one rate or two live arms that can be checked after every observation.

drift · sequential

Pattern search

Finds patterns without being told where to look: every attribute, group, weekday, part of day and item group is compared with the value and with every other feature, under false-discovery control, and written as sentences.

patterns

One-command report

From exported tables (CSV or Excel, read by content rather than file name, header found below titles) to a written report: Vertiq proposes the mapping, recognises line-item and one-row-per-entity tables, joins tables by shared keys, checks everything, and runs every analysis that applies.

report · tables

Several possible outcomes

Which of several events comes next (a repair, a replacement or nothing; an upgrade or a cancellation), with a probability for each.

category.predict_category

Planning under a budget

Who should receive which action, given each action's measured effect, its cost and the value of the outcome, within a budget.

plan

Checks on proposed actions

Allow, hold or block an action proposed by an agent or a person, from the measured effect of that action and rule flags; unmeasured actions are held for a person.

guard

Why a number changed

Splits a change between two periods into groups whose own rate moved and groups whose share moved, with false-discovery control.

diagnose

What happened

The last period against the one before: counts, values, active, new and quiet entities and the groups that moved, as figures and sentences.

summary · narrate

Automatic tuning

Proposes candidate features from a fixed menu (counts, recency and shares by event type and attribute value), tries them and learner settings one change at a time, keeps those that improve validation folds of training entities consistently, and lets the gate decide on held-out entities.

autotune · menu

Rule-based checks

Repeat events, overdue tasks, consumption above specification and incomplete records.

rules

Plain-language descriptions

Predictions, gate decisions and effect estimates written as sentences from the result's own fields; an optional local model can rewrite them, and a rewrite with any number not in the description is rejected.

narrate

Design principles

Structural intelligence, causal measurement, defensive deployment

Each principle is implemented in a specific module and can be inspected and configured.

Structural intelligence

Language-model output is constrained by verification against the data.

  • Local schema resolution. Vertiq LM, a 4-billion-parameter model fine-tuned with LoRA, proposes a mapping from the column headers and sample rows. It runs on the user's machine; source data is not sent to an external service.
  • Deterministic validation. vertiq.mapping.repair checks the proposal against the rows: names are matched to existing columns, roles are checked against value types and the date format is inferred. It never introduces a column that does not exist.
  • Bounded data contract. Every record is expressed as an entity, a timestamp, an event type, a value and attributes. Rows that fail validation are reported to the caller, so models train only on records that loaded.

Causal measurement

Intervention effects are estimated against control groups rather than inferred from correlation.

  • Control-group uplift. vertiq.uplift compares treated entities with a randomly held-out group over the same window and ranks entities by estimated incremental effect. In the benchmark it estimated a planted −20% offer effect at -20.2%.
  • Configurable horizons. window_days sets the prediction horizon, cutoffs the number of historical training points and history the event types used as inputs, so each task matches the operating cycle of the industry.
  • Small footprint. The decision engine has no third-party dependencies and no network layer. It runs wherever Python 3.10 runs; the full benchmark suite completes in 196 seconds on a laptop using 4 cores.

Defensive deployment

A candidate model is treated as unproven until it has been evaluated.

  • Held-out evaluation. Candidates are scored on entities excluded from training, using features built only from events recorded before each cutoff.
  • Champion–challenger gate. A candidate must outperform the rule-based baseline and the production model, and its gain over the baseline must be clear at 90% confidence by default. min_gain sets a required margin: an AUC margin for event tasks and a relative error reduction for value tasks.
  • Explicit rejection. A rejected candidate returns status "kept" with the reason, such as the AUC it reached against the required threshold. The production model remains in service.
PrincipleMechanismConfigurationOperational value
Structural intelligenceLocal mapping proposal, validated against the rowsFine-tune Vertiq LM on your naming conventions (lm/); vertiq.mapping.repairSource data stays on premises; new sources are onboarded without hand-written mappings
Causal measurementControl-group uplift and point-in-time taskswindow_days, cutoffs and history in vertiq.tasks; a hold-out share on every campaignIntervention effects are measured rather than assumed; horizons match each industry's cycle
Defensive deploymentEntity-level holdout with champion–challenger comparisonmin_gain in vertiq.tasks and vertiq.harnessWeaker or unstable candidates are not promoted; the production model stays in service
Extensibility

Domain logic through plugins

Feature functions, validation rules, custom learners and industry profiles are registered under a named pack. Feature functions receive only events recorded before each training cutoff, which prevents look-ahead bias, and the evaluation gate measures whether a plugin improves performance. In the equipment benchmark, one maintenance feature raised AUC from 0.735 to 0.767.

  • @plugins.feature(pack): domain features
  • @plugins.rule(pack), vertiq.rules: validation rules
  • plugins.register_learner(name, cls): external estimators such as gradient boosting
  • verticals.register(...): industry windows and terminology
  • Teacher endpoints: any OpenAI-compatible server
from datetime import timedelta
from vertiq import plugins
from vertiq.tasks import predict_event

@plugins.feature("plants")
def skipped_maintenance(entity, before, cut):
    # `before` contains only events recorded before the training cutoff
    return {"skipped_pm_60": sum(1 for e in before
                                 if e.type == "pm" and e.attrs.get("PM Done") == "no"
                                 and e.at >= cut - timedelta(days=60))}

task = predict_event(ds, target="breakdown", window_days=30, pack="plants")
Security and governance

Controls built into the system

Local execution

The decision engine performs no network or file I/O. Data is passed in by the host application, which retains control of storage and access.

Point-in-time correctness

Features, including plugin features, are computed only from events recorded before each cutoff.

Explainability

Each prediction lists the factors that raised and lowered it. Each rule flag includes its supporting evidence.

Reproducibility

Benchmarks, documentation and the README are generated from committed results. Continuous integration fails if they diverge.

Industries

Implementation guides by industry

Each guide documents the data mapping, supported analyses, recommended plugins, validation rules and test coverage for one industry.

Get started

Install Vertiq

Python 3.10 or later; no third-party dependencies.

pip install git+https://github.com/BiswajitBiswa/vertiq

Industry guidesQuick start