HEADLESS SPREADSHEET CALCULATION

Your business logic.
In every workflow.

Give AI agents and ETL pipelines the spreadsheet calculations your business already runs.

Bring your workbook. Keep your formulas.

Runtime dependencies. Not a static graph.
YOUR WORKFLOW. ONE CALCULATION STEP.
01
An agent requests a scenarioModel inputs from a tool call
evaltraCALCULATE
Your existing workbookFormulas · rules · dependencies
03
Calculated values return to the agentTyped results with calculation diagnostics
One Rust calculation core.
Browser SDKNative Rust + HTTPPython via HTTP Native library planned
BUILT INTO THE WAY YOU WORK

The rules already exist.
Put them to work.

Pricing, commissions, allocations, forecasts.
Connect the model to the work around it.

01 / AI AGENTS

Give agents a
calculation tool.

Let your agent choose the scenario. Evaltra evaluates the workbook and returns the numbers, so the answer comes from your business model.

Tool callEvaltraModel result
Scenario analysis · pricing · planningTry a scenario ↗
02 / ETL & DATA PIPELINES

Make the model
a pipeline step.

Run spreadsheet rules on fresh data inside a scheduled job. Feed calculated results into the next step, without opening the Excel application.

Prepared dataEvaltraResults table
Commissions · allocations · reportingTry sales rules ↗
FIT THE ENGINE INTO YOUR STACK

Add calculation.
At the step you need it.

Inside an app, behind an API or in a notebook.
Your workflow owns the orchestration.

In the browser

JavaScript / TypeScript SDK

Build interactive planning and what-if experiences with calculation running in the browser.

Explore the SDK ↗

On your server

Rust library / HTTP service

Embed the Rust core or run it as a service. Call the same model from agents, jobs and application backends.

See the server interface ↗

In Python

HTTP today Native library planned

Call the API from notebooks and batch jobs today. A native Python library is planned for direct embedding.

Explore workflow integration ↗
THE ENGINE DIFFERENCE

Runtime dependencies.
Not a static graph.

Dependencies follow the calculation as it runs.
Conditional formulas can use the path they actually need.

A SMALL EXAMPLE. A REAL DIFFERENCE.

Keep the logic
that already works.

This SUMIF selects one row and leaves a circular reference unused. Evaltra and Excel calculate it. A static dependency check can reject it.

Explore the example ↗
A4=SUMIF(B4:B5,1,C4:C5)
Illustrative Evaltra values beside recorded Excel and static-dependency reference results.
Cell / formulaEvaltraExample outputExcelVerified referenceOther engines*Static dependencies
EXAMPLE RESULTSSame formulas. Same inputs.

SUMIF selects C4 = 7. The excluded row contains a reference back to the result, but it is never needed for this calculation.

Static preview: Evaltra shows prepared example outputs; Excel and the static engine show recorded reference results. *One tested static-dependency example, not every engine.

About these examples +

The Excel reference was recorded with iterative calculation disabled. This public preview uses prepared results and does not call the Evaltra engine.

Microsoft's SUMIF reference ↗

Loading the example details…
INTERACTIVE EXAMPLES

Change an input.
See the model respond.

Explore a scenario, a sales rule or a formula example.
Sample data, running right here in your browser.

Sample demo
THE SCENARIO

Your next six months.

Explore how pricing and customer growth shape a subscription business.

users
$
%
$

Illustrative demo with synthetic data. No API connection.

REVENUE OVERVIEW
6-month revenue—
6-month profit—
Loading example…
Loading sample data…
SAMPLE INPUTS → INTERACTIVE EXAMPLE → ILLUSTRATIVE RESULTSSee how it connects
BRING THE WORKBOOK. KEEP THE LOGIC.

From spreadsheet
to software.

Open a supported workbook, update its inputs and read the results. Keep the formulas your team understands.

01 Open your model
02 Supply the inputs
03 Read calculated values
Check workbook compatibility ↗
JAVASCRIPT SDK / BROWSER
import { Evaltra } from "@evaltra/engine";

const engine = Evaltra.browser();

try {
  const book = await engine.open(workbookBytes);
  await book.range("Inputs!B2")
    .setCellContents([[59]]);
  const result = await book
    .range("Summary!B8").read();
  console.log(result);
} finally {
  await engine.close();
}

Example for a workbook with Inputs and Summary sheets. Uses the locally built SDK package.

A FEW PRACTICAL DETAILS
Where does Evaltra fit in an agent or ETL workflow?+

Your application maps a tool call or prepared dataset to model inputs, requests calculation and reads typed results and diagnostics. You control model access, orchestration and downstream actions.

A notebook, Databricks job or AWS Lambda function can be a client of the HTTP service where its runtime and network allow it. These are integration patterns; ready-made platform connectors and a native Python library are planned.

How do I run it on a server?+

The native Rust executable exposes workbook sessions and isolated calculations through HTTP. The server does not require Node.js or Python at runtime. Keep the service token in your application backend; sessions and job results belong to one server process.

EVALTRA_SERVICE_TOKEN=… ./evaltra-server

POST /v1/sessions
POST /v1/sessions/{id}/commands
GET  /v1/jobs/{id}
Can I use my existing Excel workbook?+

Evaltra opens XLSX workbooks and runs supported formulas with the same Rust core in native and browser environments. Validate your model's formulas and workbook features before production use.

VBA and UDF execution, Power Query, automatic external-link refresh and iterative circular calculation are outside the runtime scope. Numeric and XLSX preservation compatibility has open work; successful import is not a guarantee that every formula or feature is supported.

How do these demos work?+

This website is a static preview. Revenue and sales examples use simple browser calculations on synthetic data. The formula section implements four presets, and the comparison table displays prepared example outputs alongside recorded reference results.

No Evaltra API or engine runs on this page. The integration examples describe how you can use the product in your own application.

YOUR NEXT CALCULATION STEP

Keep your logic.
Move your work forward.

Explore the demos ↗