Skip to content
Corridor V1.26.08 is out, see what's new

User Guide

Register a Framework

Ask AI

Register a Framework to define a reusable, parameterized calculation, such as a loan cash flow schedule, once.

TL;DR
A Framework is a reusable calculation with named inputs, written in Python. Open Product Framework → Frameworks, click + New Framework, set an Alias, add the Inputs it needs, write the Definition, and create. A Framework is versioned and goes through approval like a Model or Policy.

A Framework is a reusable parameterized definition that Policies or Models can consume as input, so shared calculation logic is defined once. It lives in the Product Framework module alongside Products.

A Framework declares its Inputs (each with a name, an alias, and a type) and a Python Definition that computes a result from them.

For example, a Cash Flow Framework For 36 Months Installment Loans takes a loan amount, an interest rate, a loan term, and arrays of monthly default and prepayment probabilities. Its definition returns the month-by-month schedule: beginning balance, ending balance, interest payment, principal payment, prepayment, and payment.

Unlike a Product, a Framework is a governed object. It has a version and a status (it starts as Draft), an Approvals tab, and a place in the Product Framework Approval Queue. It can also be shared; see Share an Object.

On the Product Framework → Frameworks page, click + New Framework.

Frameworks registry page with a search box, a Status filter, one framework listed under the Default group, and the New Framework button.

The registry lists frameworks by Group, with Name, Description, Created Date, Created By, and Status columns. Use the search box and the Status filter to narrow the list.

The form opens with an editable name at the top left (New Framework). Click the pencil icon and type a descriptive name.

Field What it holds
Group Required The group the framework is filed under. See Organize Objects.
Alias Required The name used to refer to the framework in code (for example, cash_flow_framework). See Common Registration Info.
Description Required What the framework calculates. Type / for headings and lists, and @ to insert a link to another platform object.

Under Definition → Inputs, click Add Input once for each value the calculation needs. Each input has three required fields:

Field What it holds
Name Required A readable label (for example, Loan Amount).
Alias Required The variable name the definition uses (for example, loan_amount).
Type Required The data type: Numerical, String, DateTime, Boolean, Array[..], Map[..,..], or Struct[..]. Use an array type for a value per period, such as Array[Numerical] for monthly probabilities.

In the Definition editor, write the calculation in Python. Each input is in scope under its alias. Return the result of the calculation.

For example, a cash flow framework reads its inputs and returns one list per schedule column:

term = int(loan_term)
if interest_rate is None or loan_amount is None or term is None:
return {
"beginning_balance": [],
"ending_balance": [],
"interest_payment": [],
"principal_payment": [],
}

Click Create at the bottom right. The Framework is saved as a draft, at Version 1, and you land on its details page.

Framework details page showing the Version 1 and Draft badges, the Details, Change History, Approvals, and More tabs, Framework Information, and the Inputs table.
  • Details: Framework Information and the Definition (inputs and code).
  • Change History: the record of edits.
  • Approvals: where you send the framework for review. See Approve an Object.
  • More: additional tabs for the object.