Go beyond spreadsheets

Financial Models as Code

Fewer errors and faster iteration at any scale.

Dynamic picture of a cyclist riding downhill

Financial model orchestration designed for agents.
Deterministic. Traceable. Open.

Financial model orchestration designed for agents.
Deterministic. Traceable. Open.

40%+

Fewer tokens than spreadsheet automation

Faster analysis at scale

Because outcomes aren't defined by two-dimensional grids

Because outcomes aren't defined by two-dimensional grids

Complex analysis
faster

Rapidly build and update models with AI automation. Manage large models with confidence. All calculations are deterministic, transparent, and verifiable.

Detail at portfolio scale

Run organized analysis at any scale.

Drill down into infinite sub-line detail. Logical, modular model structure keeps your data intuitively organized, even at massive scale.

Integration with any system

Fully exploit your proprietary data, even if it's locked across silos.

Native, secure integration internal and external APIs, databases, PDFs, spreadsheets, and more using Orcaset's open environment.

Abstract pattern of vertical purple wavy lines

Developer

The modern financial toolkit

The modern financial toolkit

Orcaset builds models in code using an open, intuitive, robust framework. Every calculation is transparent and auditable.

model.ml
open Orcaset
let start_period = Period.make (Date.make 2025 12 31) (Date.make 2026 3 31)
let offset = Offset.make ~months:3 ~month_end:true ()
let revenue =
Series.Spans.unfold ~label:"Revenue" ~agg:Series.Agg.sum
~init:(start_period, 1_000.0)
~cells:(fun (period, value) ->
let next_period = Period.next offset period in
let next_value = value *. 1.05 in
Some
( Series.Spans.cell ~period ~split:Split.daily (Series.Formula.pure (Some value)),
(next_period, next_value) ))
()
let expenses = Series.Spans.scale ~label:"Expenses" (-0.30) revenue
let income = Series.Spans.sum ~label:"Income" ~agg:Series.Agg.sum
[ Series.Spans.pack revenue; Series.Spans.pack expenses ]
model.ml
open Orcaset
let start_period = Period.make (Date.make 2025 12 31) (Date.make 2026 3 31)
let offset = Offset.make ~months:3 ~month_end:true ()
let revenue =
Series.Spans.unfold ~label:"Revenue" ~agg:Series.Agg.sum
~init:(start_period, 1_000.0)
~cells:(fun (period, value) ->
let next_period = Period.next offset period in
let next_value = value *. 1.05 in
Some
( Series.Spans.cell ~period ~split:Split.daily (Series.Formula.pure (Some value)),
(next_period, next_value) ))
()
let expenses = Series.Spans.scale ~label:"Expenses" (-0.30) revenue
let income = Series.Spans.sum ~label:"Income" ~agg:Series.Agg.sum
[ Series.Spans.pack revenue; Series.Spans.pack expenses ]

By building models in code, Orcaset can efficiently manage complex, multi-dimensional models with built-in safeguards to verify accuracy.

Type Safe Verification

Verify models are properly constructed at definition. Make changes confidently at scale.

Type Safe Verification

Verify models are properly constructed at definition. Make changes confidently at scale.

Open & Flexible

No black boxes. Auditable and traceable. Integrate directly into your existing flows.

Open & Flexible

No black boxes. Auditable and traceable. Integrate directly into your existing flows.

Ready to try Orcaset with your own data?

Spend more time on the questions that matter

aerial view of highway during daytime

Ready to try Orcaset with your own data?

Spend more time on the questions that matter

aerial view of highway during daytime

Ready to try Orcaset with your own data?

Spend more time on the questions that matter

aerial view of highway during daytime