You can model anything.
You just have to learn how.
As the Actuary, you are the architect of the logic engine. You don't write formulas — you build graphs. Each graph is a precise, unambiguous representation of a clause that the Manager can apply to real contracts.
Your role in the chain
Four roles — one direction. Each step unlocks the next.
| Step | Profile | What they do | What you receive |
|---|---|---|---|
| 1 | Junior | Deconstructs clause text — creates structured clauses with wording, family, treaty types, dependencies | Clauses in draft |
| 2 | Senior | Validates clauses and designs the dimension catalogue — axes you will attach to graph nodes | Validated clauses + dimension palette |
| 3 | Actuary ← you | Builds DAG graphs per validated clause. Attaches dimensions node by node. Links graphs across clauses. | Graphs ready for Manager |
| 4 | Manager | Creates contracts, instantiates a graph, fills in dimension values per node | — |
Building a DAG
A Directed Acyclic Graph encodes the computational logic of a clause as a traversable structure of nodes and directed links.
A reinsurance clause contains nested formulas — "net retained loss, net of recoveries, in excess of the retention, capped at the limit." Each element becomes a node. Each dependency becomes a directed link. The root node holds the clause's final value.
The graph is not a calculator. It is a documentation structure. The Manager reads it, understands exactly what to fill in, and the result is an unambiguous record of the clause's parametrisation on a contract.
Workflow
Inspector panel
Clicking any node opens the inspector on the right — three tabs, one node at a time.
| Tab | What you do here |
|---|---|
| Properties | Set the node label, operand, and value type. Click Apply to confirm — changes are local until you save the graph. |
| Dimensions | Add or remove documentary dimension attachments. Each dimension you attach here becomes a fill form the Manager must complete for this node. |
| Ext. links | Manage incoming contributions from nodes in other graphs. See the External parents section for the full workflow. |
Node operands
The operand defines the role of a node and determines how it is rendered — colour and border style.
Every node must have a value type — the kind of value the Manager will enter: amount, percentage, duration, count, etc. Value types are configured by the Senior.
Link operands
A link connects a parent node to a child node. Its operand describes how the parent contributes to the child's expression.
| Node type | Expected incoming link operands | Example |
|---|---|---|
| SUM | PLUS + MINUS | Gross loss + ALAE − salvage |
| DIFFERENCE | PLUS (minuend) + MINUS (subtrahend) | Losses − Retention |
| PRODUCT | FACTOR × n | Rate × Base premium |
| QUOTIENT | NUMERATOR × 1 + DENOMINATOR × 1 | Net loss / Days in year |
| IF | Any operand — forms the expression in the label | PLUS A, PLUS B → label "A ≤ B" |
| THEN / ELSE | FACTOR from IF (routing) + any operand from value sources | FACTOR from IF + FACTOR from CONSTANT Rate |
| LOOKUP | ARGUMENT × 1 (lookup key) | Loss ratio → sliding scale rate |
| RESULT | PLUS from upstream output node | PLUS from SUM Event Aggregate |
| INPUT / CONSTANT | None — leaves | — |
Dimensions — the creative engine
Dimensions are why RI-TOOL adapts to any organisation without imposing a template. This is where your tenant's identity lives.
Four layers, three roles
Attaching a dimension to a node
Select a node → open the Dimensions tab → click + Add dimension → choose from the catalogue built by the Senior. The attachment is local until you save the graph. You can attach multiple dimensions to the same node.
Typical attachment choices by node type
| Node type | Typical dimension choices | Reasoning |
|---|---|---|
| INPUT (amount) | Currency + Risk + Time | Leaf values are the primary documentation target — always contextualise them. |
| INPUT (date / count) | Temporal (event window) or Time (period) | Dates and day counts document the temporal scope of the value. |
| INPUT (market rate) | Time (fixing period) | A market rate is always associated with an observation period. |
| CONSTANT (rate) | Rate + Table (if sliding scale) | Document the contractual rate and any associated scale. |
| SUM (event aggregate) | Peril + Spatial + Temporal | The Cat event aggregate is defined by its peril, geographic boundary and time window. |
| SUM / DIFFERENCE (other) | Amount (result) — optionally scope axes if context changes | Aggregation nodes may need a result annotation; context is usually inherited from children. |
| IF / THEN / ELSE | Usually none — logic lives in the label and link structure | Attach a dimension only if the condition itself needs documentary context. |
| LOOKUP | Table (the schedule) | The schedule lives in the Table dimension; the key is documented on the ARGUMENT parent. |
| RESULT | Usually none — context lives upstream | Terminal node — documentation is on the nodes feeding it. |
| PRODUCT / QUOTIENT | Usually none | Structural nodes — documentation is on INPUT/CONSTANT parents. |
The protection chain
The platform prevents silent data loss in both directions. You cannot remove a dimension attachment if the Manager has already filled values against it. The Senior cannot delete a dimension you have attached to a node. Every layer protects the one below it.
External parents
A node in one graph can receive a contribution from a node in a completely different graph — the mechanism for cross-clause reuse.
Example: Clause A — Net Retained Loss and Clause B — Reinstatement Premium. The reinstatement formula depends on the net retained loss. Instead of duplicating nodes, declare the root of graph A as an external parent of the relevant node in graph B.
How to add an external parent
To remove an existing external parent, click the ✕ button next to it in the Ext. links tab. If the child graph is instantiated, a warning is shown — the phantom node referencing this link becomes invalid for existing instances.
Risk links
A Risk link connects an Actuary node to a Risk Modeler node, bringing exposure description into the clause graph.
The Risk Modeler builds graphs of exposure — sites, perils, coverage conditions. Your role is to bridge their work with your clause graphs by declaring which of your nodes relates to which Risk node, and how. This connection is stored in m_graph_risk_link and is qualified by a Risk link operand.
| Operand | Meaning | Example |
|---|---|---|
EXPOSED_TO | Actuary node relates to a peril | Cat XL loss node ← Windstorm peril |
LOCATED_AT | Actuary node relates to a site | Property node ← Lyon industrial plant |
COVERED_BY | Actuary node relates to a coverage condition | Retention node ← Property All Risks coverage |
AGGREGATES | Actuary node aggregates multiple risk objects | Accumulation node ← Portfolio site |
How to add a Risk link
Once created, the Risk node appears as a coloured phantom on the canvas — style varies by node type (blue for site, red for peril, green for coverage), with a dashed red-brick border and a label showing the Risk Graph name. The phantom appears immediately, without page reload.
Effect on the Manager
Every Risk link you create generates a Risk Dimensions block in the Manager's fill drawer for that node. The Manager sees the Risk node label, the operand, the Risk Graph name, and the exact fill fields defined by the Risk Modeler (address, peril type, insured value…). The Risk dimensions are saved separately from the Actuary dimensions but in a single save action.
Cycle detection
A DAG must be acyclic — no node can be its own ancestor. RI-TOOL detects cycles automatically on every save.
After saving, the platform checks the full graph structure. If a cycle is found, an orange banner appears at the top of the editor and the graph row in the sidebar shows a ♻ cycle badge.
Instance lock
Once a Manager instantiates a graph on a contract, that graph's structure is frozen.
The platform blocks any structural modification to an instantiated graph — you cannot save changes or delete it. This protects the Manager's existing data entry from silent invalidation.
Graph Explorer
A production-level view of all your graphs in one place — filterable, inspectable, and exportable.
Click 🔭 Graph Explorer in the Analytics section of the sidebar to open the fullscreen explorer. The inspector panel on the right stays visible throughout — click any card to load its detail.
Filter bar
Six combinable filters apply in real time:
| Filter | What it targets |
|---|---|
| Clause Family | Family of the clause linked to the graph (from the tenant's reference list) |
| Clause Status | Validation status of the clause — e.g. filter to VALIDATED only |
| Treaty Type | Any treaty type code associated with the clause |
| Instances | Instanced (≥ 1 active Manager instance) or Not instanced |
| Cycle | Graphs flagged with a reference cycle by the last save |
| Dimensions | Coverage level — Full (100%), Partial, No coverage, or Empty graph (no nodes) |
Use ↺ Reset filters to clear all at once. Filter state is persisted in localStorage and restored on your next visit.
Cards and inspector
Each card shows the graph id and label, its clause, and a row of semantic badges — node count, instance count, cycle flag, inter-graph links, and dimension coverage percentage with colour coding. Click a card to load the full detail in the right-hand inspector: graph identity, clause wording, treaty type pills, and a visual coverage bar.
From the inspector, click ↗ Open in DAG editor to jump directly to that graph on the canvas.
Export
The ⬇ Export CSV button in the Explorer header exports the currently filtered view as a CSV — not all graphs, only what the active filters show. Columns: graph id, label, clause id, clause title, clause family, clause status, treaty types (pipe-separated), node count, nodes with dimensions, dimension coverage %, instance count, inter-graph links, cycle flag.
Data Checks
Live queries on your tenant data, each exportable as CSV — accessible from the Analytics section of the sidebar.
Click 📊 Data Checks to open the fullscreen panel. Each configured view shows a description and a ▶ Run button. Results display as a paginated table with a ⬇ Download CSV link. The DAG toolbar also offers a per-graph ⬇ CSV export of the current graph's nodes and links.
Maintenance
Four cleanup operations accessible from the sidebar footer. Always run the diagnostic first — it shows exactly what will be removed without touching anything.
| Code | What it cleans | When it occurs |
|---|---|---|
| A1 | Nodes whose parent graph was deleted — cascades to their links and dimension attachments | Graph deleted outside normal flow |
| A2 | Orphan intra-graph links whose parent or child node no longer exists | Node deleted but links not cascaded |
| A3 | Ghost inter-graph links pointing to a deleted graph (parent or child side) | A graph involved in a cross-link was deleted |
| A4 | Orphan dimension attachments (node or dimension deleted) — may also remove associated Manager values | Node or dimension deleted leaving stale attachments |
Recommended order: A1 → A2 → A3 → A4. Running A1 first eliminates nodes whose links A2 and A3 would otherwise also catch.