3 ms·
> Orcaset takes an entirely different approach to financial modeling. It builds financial models in pure Python code rather than attempting to interpret xlsx fi
by bko 1mo ago
> Orcaset takes an entirely different approach to financial modeling. It builds financial models in pure Python code rather than attempting to interpret xlsx files. Model calculations are fully traceable, deterministic, and programmatically accessible by agents. Additionally, since Orcaset isn't limited to a spreadsheet's two-dimensional grid of A1:B2 cells, it can leverage software best practices like type checks to guard against invalid models.
Note that this is just an ad for Orcaset. But more interesting, if you look at Orcaset, they say its product is "Financial Models as Code". So instead of using Excel, you use Python. Reasonable and most serious models are in code. But I still can't figure out what Orcaset adds. It looks like the worst of both worlds. You have this cell concept, but it doesn't relate to an actual workbook so it's not transparent. And then you have the magic formulas and decorators that you have to learn.
@PeriodSeries.define("Revenue", accrual(YF.cmonthly))
def revenue():
for k in Period.seq(date(2026, 1, 1), relativedelta(months=1)):
def cell(p: Period = k):
prior = yield from get_at(revenue, p.shift(-relativedelta(months=1)))
return prior * 1.10 if not isna(prior) else 100.0
yield k, factory
costs = (revenue * -0.50).named("Costs")
profit = (revenue + costs).named("Profit")
- jrdnh 1mo agoThanks for reading the article! Responding to what orcaset adds, it lets users define line items than can be composed fluently and safely with strong type annotations. It also adds dependency tracing, memoization, and an iterative solver for cyclic dependencies. Working on better documentation, the compositional form is probably easier to understand than then decorator. `Cell` might be a bad name as well. It doesn't map 1:1 to a spreadsheet cell, it just lifts a value into a wrapped object that the effect handler can work with.