Skip to content

Active development environment: you may notice changes or incomplete features.

JAOT
Open source optimization platform

Your routes, shifts and budgets,solved to the best possible answer— and proven.

JAOT turns your problem into a mathematical model, solves it, and proves that no better answer exists. Build it with AI, start from a community template, or drive it from your own agent over MCP.

The optimization platform for humans and AI agents alike.

routing · 48 stops · SCIP
First solution 2092.6
Optimal 452.678.4%
Proven optimal
Route length452.6
Gap to optimal0.00%
Search nodes843
Variables2304
Open source solver100+ templatesOptimization model marketplaceMCP-nativeView on GitHub
The platform

Three ways to optimize

Build models with AI, use proven solutions from the community marketplace, or connect your AI agent via MCP.

AI Builder

Describe your optimization problem in plain English. Our AI translates it into a mathematical model and solves it.

“Plan next week's deliveries: 4 vans, 60 stops, every van back by 18:00.”

Model Marketplace

Browse the optimization model marketplace. Use proven community models or publish your own.

Fertilizer Mix Optimizer — agriculture

MCP for AI Agents

Connect Claude, GPT, or any MCP-compatible agent — solve problems, fork marketplace models, and author versioned models end-to-end.

solve_with_template(template_id="fertilizer_mixing")

AI Builder
The JAOT AI assistant formulating an optimization model from a plain-English problem description
Write the model, not the rows

Fourteen lines. The data decides the size.

JModel describes your problem with sets and indexed families, and JAOT renders it as mathematics before it touches a single number. The same source below covers one plant for a quarter or four hundred products for a year — you do not rewrite a line.

What you write

set PRODUCTS;set RESOURCES;set WEEKS; param margin{PRODUCTS};param usage{RESOURCES, PRODUCTS};param capacity{RESOURCES, WEEKS};param ceiling{PRODUCTS, WEEKS}; var build{PRODUCTS, WEEKS} integer >= 0; maximize contribution:  sum{p in PRODUCTS, w in WEEKS} margin[p] * build[p, w]; subject to plant{r in RESOURCES, w in WEEKS}:  sum{p in PRODUCTS} usage[r, p] * build[p, w] <= capacity[r, w]; subject to market{p in PRODUCTS, w in WEEKS}:  build[p, w] <= ceiling[p, w];

What it means

maxpPRODUCTS,  wWEEKSmarginpbuildp,w\max \quad \sum_{p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}} \mathrm{margin}_{p} \, \mathrm{build}_{p,w}
pPRODUCTSusager,pbuildp,wcapacityr,wrRESOURCES,  wWEEKS\sum_{p \in \mathrm{PRODUCTS}} \mathrm{usage}_{r,p} \, \mathrm{build}_{p,w} \le \mathrm{capacity}_{r,w} \quad \forall\, r \in \mathrm{RESOURCES},\; w \in \mathrm{WEEKS}
buildp,wceilingp,wpPRODUCTS,  wWEEKS\mathrm{build}_{p,w} \le \mathrm{ceiling}_{p,w} \quad \forall\, p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}
buildp,wZ,  buildp,w0pPRODUCTS,  wWEEKS\mathrm{build}_{p,w} \in \mathbb{Z},\; \mathrm{build}_{p,w} \ge 0 \quad \forall\, p \in \mathrm{PRODUCTS},\; w \in \mathrm{WEEKS}
7 products × 6 resources × 13 weeks91 variables · 169 constraints
400 products × 40 resources × 52 weeks20800 variables · 22880 constraints

Same 14 lines, both times. Spreadsheets and hand-written models grow with the data; an indexed model does not.

After the solve

The three highest-margin products never make the plan

One quarter of a power-electronics plant, solved and proven optimal. The three richest families are exactly the ones the optimum refuses to build — and the component everyone blames for the bottleneck ends the quarter almost half untouched. This is the part a spreadsheet gets wrong.

Quarterly build plan

22,410 units · SCIP, proven optimal
  • 800 V traction inverter€2,450 / unit
    0 units
  • Battery management unit€1,780 / unit
    0 units
  • DC fast-charge module€1,320 / unit
    0 units
  • Grid-tie solar inverter€960 / unit
    7,460 units
  • Industrial motor drive€740 / unit
    6,290 units
  • Fleet telemetry unit€410 / unit
    8,660 units
  • Machine sensor hub€260 / unit
    0 units
Contribution margin€15,366,800

What runs out

  • SMT line hoursat capacity
  • Burn-in chamber hoursat capacity
  • Automotive-grade MCUs112,570 spare
  • SiC power modulesat capacity
  • Final-test hours7,930 spare
  • Conformal-coating hours3,290 spare
  • Fleet telemetry contract8,660 shipped, 3,500 required

800 V traction inverter: €2,450 a unit — and the plan builds none. It is the heaviest draw on every one of the 3 limits that ran out, while 112,570 automotive-grade microcontrollers go untouched, so buying more would change nothing. Both facts come from the integer solution you will actually run, not from a relaxation.

What-if, measured

Ask what one more unit would buy you: JAOT re-solves the perturbed model and reports the real change — measured on your MIP, not estimated from a relaxation.

Decisions, not a wall of numbers

Solutions come back grouped by the model's real index structure, with an honest summary of how the solve went — root node, branching, or time limit.

One-click AI explanation

Turn the analysis into plain language, grounded strictly in your actual numbers — never invented ones.

When there is no answer

It names the two rules that clash — and clears the other five

A customer wants a quarter's worth of traction inverters the line cannot carry. A solver says “infeasible” and leaves you auditing the whole model. JAOT removes each rule and re-solves until only the contradiction is left, so you know exactly where to look.

How far each limit reaches

7 rules · 2 in the conflict
  • SMT line hours 7,700 invertersnot the problem
  • Burn-in chamber hours 5,240 invertersin conflict
  • Automotive-grade MCUs 7,900 invertersnot the problem
  • SiC power modules 6,600 invertersnot the problem
  • Final-test hours 6,900 invertersnot the problem
  • Conformal-coating hours 6,600 invertersnot the problem
contract needs 6,000

There are only enough burn-in chamber hours for 5,240 inverters, and the contract asks for 6,000. Nothing else is at fault: JAOT clears the other 5 limits by name. Find 7,600 more — a second chamber for the quarter — and the model solves. That is the number to take into the negotiation.

The exact conflict set

JAOT isolates the minimal set of constraints and bounds that can't all hold at once — and highlights them on the result page.

How to fix it, in plain language

A one-click AI explanation names the conflicting requirements and suggests concrete fixes: which bound to widen, which limit to relax.

Honest by design

When a model is too large for an exact conflict set, JAOT says so and clearly flags the explanation as heuristic — never a confident guess.

Choosing a solver

Which solver is quickest depends on the model

JAOT ships SCIP, HiGHS, CBC and GLPK. None of them is best. The ranking changes with the model, so JAOT runs your problem on all of them under identical terms and shows what each one did. Below is one quarter of burn-in chamber loading at the plant.

Total time, logarithmic scale

1,342 variables, 3,558 constraints
  • scipProved 17 chambers
    12.25 s

    201 nodes, 73,617 simplex iterations

  • highsProved 17 chambers
    1.51 s

    1 nodes, 4,214 simplex iterations

  • cbcProved 17 chambers
    1.53 s

    507 nodes, 11,575 simplex iterations

  • glpkOut of time
    58.68 s

    Proved nothing beats 17 chambers, after 38,952 nodes, and never found a plan

The scale is logarithmic: each step is ten times the one before, so bar length is not proportional to the number beside it.

highs finished first. scip reached the same answer 8.1 times slower. On another model the order changes, which is why a measurement answers this and a recommendation cannot.

glpk ran the full 60 seconds and never found a plan, although it did prove that nothing beats 17 chambers. That is what the bound is for.

Every solver received the same 60-second limit and the same 4 threads, one run after another on one 12-core server. The seconds are comparable inside this run and nowhere else.

Identical terms

The same time limit, the same gap tolerance, the same thread count, one machine, one run at a time. Two solvers sharing a machine fight for cores, and then the seconds stop meaning anything.

A whole matrix

Cross your model's datasets with the solvers: datasets down the side, solvers across the top. A model whose data changes every month has no single fastest solver, and one month's numbers pick the wrong one.

The bound, not only the answer

Each row carries the best bound the solver proved beside the answer it found. A run stopped by its time limit is reporting the distance between the two, and the answer on its own does not say it.

AI Agents Meet Optimization

JAOT is an optimization platform natively accessible to AI agents. Connect any MCP-compatible agent to solve optimization problems end-to-end.

1

Discover

Agent finds JAOT via MCP or /.well-known/llms.txt

2

Authenticate

Secure access with API key authentication

3

Solve

Create model, set parameters, run the solver

4

Results

Get optimized solution programmatically

30 Tools

Problem Solving

  • solve_problem
  • validate_problem
  • solve_multi_objective
  • list_available_solvers

Templates

  • list_templates
  • get_template
  • solve_with_template

File I/O

  • import_preview
  • import_and_solve
  • export_model
  • export_execution

Marketplace

  • list_catalog_models
  • get_catalog_model
  • get_catalog_model_schema

Model Projects

  • create_model_project
  • create_model_project_from_marketplace
  • update_model_project_draft
  • commit_model_version
  • list_project_versions
  • get_model_stats
  • solve_model_project
  • get_model_project
  • list_model_projects

Execution

  • execute_model
  • get_execution
  • get_execution_insights

Analysis

  • get_execution_exact_analysis
  • analyze_infeasibility
  • start_execution_scenario_analysis
  • get_execution_scenario_analysis

Solver Comparison

  • compare_solvers
  • get_solver_comparison
  • compare_solvers_on_datasets
  • get_solver_comparison_matrix

34 tools, all callable by an agent

Works with Claude, GPT, and any MCP-compatible agent

Built for everyone who optimizes

For Teams & Enterprises

  • Solve complex optimization problems at scale
  • REST API integration with any tech stack
  • Team collaboration and shared model library
  • Enterprise-grade security and access controls

For Contributors & Consultants

  • Publish your models to the community marketplace
  • Share your optimization expertise with teams worldwide
  • Reach teams and enterprises globally
  • Track adoption and impact in your analytics

For Students & Researchers

  • Learn optimization with AI-assisted model building
  • Educational templates from LP to MIP
  • Start simple and grow into complex models
  • Free and open source — ideal for learning

Real-world optimization, solved

Build custom models with AI or start from proven community models in the marketplace.

102 templates across 34 sectors

Browse the marketplace
  • Finance & Investment5
  • Logistics & Distribution5
  • Human Resources & Workforce4
  • Manufacturing & Production4
  • Aerospace3
  • Agriculture & Farming3
  • Chemical Engineering3
  • Construction3
  • Cutting & Packing3
  • Energy & Utilities3
  • Facility Location3
  • Food & Beverage3
  • Forestry3
  • General Purpose3
  • Government3
  • Healthcare & Nutrition3
  • Maritime3
  • Mining3
  • Network & Graph Optimization3
  • Pharmaceutical3
  • Railway3
  • Real Estate3
  • Retail & Commerce3
  • Supply Chain Management3
  • Telecommunications3
  • Transportation & Logistics3
  • Warehouse3
  • Water Management3
  • Advertising & Media2
  • Education & Academic2
  • Environmental & Sustainability2
  • Insurance2
  • Sports & Recreation2
  • Textile2

Vehicle Routing

A logistics company delivers to 50 locations with 8 trucks. Optimized routes reduced total distance by 23%, saving fuel and driver hours.

From Marketplace

Employee Scheduling

A hospital schedules 120 nurses across 3 shifts while respecting availability and labor regulations. Automated scheduling cut planning time from 8 hours to minutes.

Built with AI

Budget Allocation

A marketing team distributes $2M across 12 channels to maximize conversions. Optimization found a 31% better allocation than manual planning.

Built with AI

Production Planning

A manufacturer plans weekly production across 5 lines with material constraints. Optimized plans increased throughput 15% without additional capacity.

From Marketplace

Supply Chain Network

A retailer selects warehouse locations to serve 200 stores at minimum cost. Network optimization reduced logistics spend by 18%.

From Marketplace

Resource Assignment

A consulting firm assigns 80 consultants to 25 projects matching skills and availability. Optimization improved utilization from 72% to 89%.

Built with AI

Up and running in minutes

Choose a template or start from scratch

Browse 100+ pre-built templates or start a blank model in the studio — visual canvas, AI assistant, JSON editor, or the JModel DSL.

Set variables and constraints visually

Use the drag-and-drop interface to define your optimization model. Set objectives, add constraints, and configure variable types.

Solve and explore results

Hit solve and watch results come in real-time. Analyze variable values, sensitivity data, and export your solution.

Start optimizing

Free and open source. Create an account and solve your first model in minutes — or self-host the whole platform yourself.