01 The reactive data plane

One change.
Every answer.

CalcGraph turns business logic into a living dependency graph. Publish once, and every affected value is invalidated, recomputed, and made consistent—automatically.

NASDAQ / AAPL 14:32:08.042
AAPL $192.84 +0.18%
Option Value $10.55
Desk Risk $81.4m
Monte Carlo VaR $2.80m
02 Live dependency graph

Watch change find
its consequences.

CalcGraph follows only the affected edges, keeps the order deterministic, and brings the graph back to fresh.

Reactive market risk dependency graph MarketTick, Position, and VolSurface flow into Python-backed OptionValue and Greeks calculators and the embedded-arithmetic Exposure calculator, then into DeskRisk and Python-backed MonteCarloVaR. SOURCE MarketTick 192.84 SOURCE Position +25k SOURCE VolSurface 24.6% CALCULATION OptionValue $10.55 CALCULATION Exposure $5.29m CALCULATION Greeks Δ 0.62 Γ 0.019 Θ -0.038 V 0.112 ρ 0.047 AGGREGATE DeskRisk $81.43m CALCULATION MonteCarloVaR $2.8m
03 Graph as code

The picture begins
with a definition.

cg-lang, CalcGraph's own language, defines identity, inputs, triggers, and outputs. Modular Python implementations plug in as calculators and run as part of the reactive graph.

source MarketTick {
  symbol   String @id
  price    Float
  currency String
  observed Timestamp
}

source Position {
  desk     String @id
  symbol   String @id
  quantity Float
}

source VolSurface {
  underlying   String @id
  expiry       Date   @id
  implied_vol  Float
}

calc OptionValue {
  input { tick MarketTick  vol VolSurface }
  on { update(tick)  update(vol) }
  output { value Float }
}

calc Exposure {
  input { position Position  option_value OptionValue }
  on { update(position)  update(option_value) }
  output {
    desk         String = position.desk
    market_value Float = position.quantity * option_value.value
  }
}

calc Greeks {
  input { tick MarketTick  position Position  vol VolSurface }
  on { update(tick)  update(position)  update(vol) }
  output {
    delta Float
    gamma Float
    theta Float
    vega  Float
    rho   Float
  }
}

aggregate DeskRisk {
  input { exposure Exposure }
  group { exposure.desk }
  output { gross_exposure Float = sum(exposure.market_value) }
}

calc MonteCarloVaR {
  input { exposure Exposure  greeks Greeks  risk DeskRisk }
  on { update(exposure)  update(greeks)  update(risk) }
  output { var Float  expected_shortfall Float }
}
04 Queryable state

A graph you can
query like a database.

CalcGraph exposes every source, calculation, and aggregate as a table. Ordinary SQL joins their latest values from one pinned snapshot.

SQL query Latest · pinned snapshot
SELECT
  mt.symbol,
  mt.price AS market_price,
  p.quantity AS position,
  ov.value AS option_value,
  e.market_value AS exposure,
  dr.gross_exposure AS desk_risk,
  v.var AS monte_carlo_var
FROM market_tick AS mt
JOIN position AS p
  ON p.symbol = mt.symbol
JOIN option_value AS ov
  ON ov.symbol = mt.symbol
JOIN exposure AS e
  ON e.symbol = p.symbol AND e.desk = p.desk
JOIN desk_risk AS dr
  ON dr.desk = e.desk
JOIN monte_carlo_var AS v
  ON v.symbol = e.symbol AND v.desk = e.desk
WHERE mt.symbol = 'AAPL'
  AND p.desk = 'EQUITY-OPTIONS';
Result set Version 12,840,231
Live SQL result for the AAPL risk graph
symbol market_price position option_value exposure desk_risk monte_carlo_var
AAPL $192.84 +25k $10.55 $5.29m $81.40m $2.80m
05 Live notifications

Subscribe to exactly
what matters.

Match graph events by definition, identity fields, and event kind. CalcGraph replays and delivers the resulting feed over one long-lived, bidirectional gRPC stream.

Choose a subscription pattern Matched server-side
NotificationService.Subscribe gRPC stream
12840231:0 MarketTickSOURCE_PUBLISHED symbol=AAPL · price=$192.84
12840230:0 MarketTickSOURCE_PUBLISHED symbol=AAPL · price=$192.80
12840229:0 MarketTickSOURCE_PUBLISHED symbol=AAPL · price=$192.77
06 The complete system

No glue required.

CalcGraph sits between the data an organization publishes and every application that needs a fresh, consistent answer.

Inside your organization One deployment
Published data Market data Positions Curves & scenarios
CalcGraph Reactive data plane
Delivered to Risk APIs Dashboards Reports & alerts

One system owns the dependencies, recompute, history, and delivery.