EIGENN.
docsguidesapichangelogpricingsign in
EIGENN.

Formulas

A formula says how one variable is calculated, and Eigenn runs it for every period and every dimension item.

In a plain spreadsheet, a forecast row is a chain of cell formulas. You write =C4*(1+$B$2) in one cell and copy it across 24 month columns. If you plan by region, you copy the block again for each region. A change to the logic means that you must edit every copy. A missed copy gives a wrong number and no error.

In Eigenn, a formula belongs to the variable, not to a cell. You write it one time. It names other variables, and Eigenn calculates it for every period in the model and for every item of the variable's dimensions. To change the logic, you edit one formula.

To write a formula, select the ƒ button (Add formula) in the Formula column of a variable row. Press Enter to save. Press Shift+Enter to start a new line. Use Formula templates to insert a starting expression, then press Tab to move to the next placeholder.

1. A formula reads other variables by name

You write variable names, not cell addresses. A name can contain spaces, such as Operating expenses. The editor suggests variables, functions, and keywords while you type.

VariableFormula
Gross profitRevenue - COGS
Net incomeGross profit - Operating expenses

When you rename a variable, Eigenn rewrites every formula in the model that uses the old name. Eigenn also finds the calculation order from the references, so the order of rows in the grid does not change a result.

Three Statement Model grid. The formula cells show Revenue - COGS for Gross profit, Gross profit - Operating expenses (cut off at the cell edge) for Net income, and Cash [previous] + Net income for Cash. Cash grows from 20,000 in Sep '26 to 60,000 in Nov '26.

2. One formula runs in every period

A formula has no column address. Eigenn evaluates the same formula in each period of the model. In each period, a plain reference reads the value of the same period.

PeriodRevenueCOGSGross profit (Revenue - COGS)
Sep '26100,00030,00070,000
Oct '26100,00030,00070,000
Nov '26100,00030,00070,000

When a connected source supplies actuals for a variable, the actual values stay in the actual periods. The formula calculates the forecast periods.

Sometimes one period needs different logic. On a formula row, select that period's cell and press F2. Write the formula for that period only. The cell then shows a small ƒ mark. Actual cells cannot take a period formula. To remove the period formula, open it again and select Use all-period formula.

3. Time references read other periods

Put a time reference in square brackets after a variable name. The reference moves with the period that Eigenn calculates.

ReferenceReads
Cash[previous]The period before
Revenue[t-12]12 periods back
Revenue[final]The last period of the model
sum(Revenue[t-2:t])The sum of this period and the two periods before
Revenue[all]The sum of every period

A running balance uses [previous]:

Cash[previous] + Net income

The first period has no previous value. Use a test for blank to set a start value:

if Customers[previous] = blank then Starting customers else Customers[previous] + New customers

This test works when Blanks in data for Customers is Treat as blank. With Treat as zero, the first period reads 0, not blank.

If a variable names itself without brackets, Eigenn reads its previous period. Write [previous] anyway, because it makes the formula easier to read.

4. Conditionals choose between two results

Write a conditional as if <test> then <result> else <result>. The else part is necessary.

  • Compare values with =, <>, <, <=, >, and >=.
  • Join tests with and and or. Reverse a test with not.
  • Use = to test for blank.
  • Put a second if after else to test more cases.
if month = 12 then Annual bonus else 0

month gives the calendar month of the period, from 1 to 12. The formula gives the bonus in December and zero in the other months.

Long conditionals are easier to read on several lines. Add a note after // on a line. Eigenn ignores the note when it calculates.

5. A formula runs for each dimension item

When you break a variable down by a dimension, Eigenn runs the same formula one time for each item. In each run, a reference to a variable with the same dimension reads the same item. A reference to a variable without that dimension reads its single value.

For example, Revenue is broken down by Region and uses Units sold * Price per unit. Units sold has the Region dimension. Price per unit does not.

RegionUnits soldPrice per unitRevenue
North America1,0005050,000
Europe6005030,000

To read one item from any formula, name the item after the dimension: Revenue by Region[Europe]. The Dimensions concept explains breakdowns and totals.

Related

  • Dimensions
  • Data
  • Scenarios
  • Planning Models and Formulas
  • Build a Driver-Based Planning Model
  • Revenue forecasting

Formula syntax

The rules for names, numbers, text, operators, comments, and the order of operations in a planning formula.

Formulas

Write one formula for a variable, and Eigenn calculates it for every period and every dimension item.

On this page

1. A formula reads other variables by name2. One formula runs in every period3. Time references read other periods4. Conditionals choose between two results5. A formula runs for each dimension itemRelated

Eigenn docs

current product

Overview
Overview
OverviewAccount PreferencesApproval PoliciesAssistant AutomationAssistant Command CenterAssistant Workspace and Saved WorkBank ConnectionsBilling and UsageBudgets and ForecastCommand CenterCustomer FieldsCustomer LifecycleCustomer RecordsCustomersDeveloper PlatformDocument Processing and ExtractionFiles and Document VaultFinancial Analytics and ReportsFinancial OverviewInbox and ApprovalsInvoice InsightsInvoice ProductsInvoicesMarketplace IntegrationsNotifications and BrandingOnboarding and SupportOverviewPlanning Data and DimensionsPlanning Models and FormulasPlanning Time and ActualsPlanning UncertaintyPlanning Versions and CollaborationPlanning Views and ExportsPlans and AdjustmentsReceivablesReceivables AnalyticsReceivables ControlsRolling Budget CloseScenario PlanningSecurity and AccessSettings OverviewStress TestsTeams and OrganizationsTone Profiles and ExperimentsTransaction Categories and RulesTransaction CodingTransactionsWeekly Finance RitualWorkflow ExecutionsWorkflow OutcomesWorkflow PausesWorkflows
OverviewBudget vs. ActualsBuild a Driver-Based Planning ModelBuild and Review a ForecastBuild Your First WorkflowCollaborate on a Planning ModelCompare and Share Planning ScenariosConfigure Approval PoliciesConfigure Assistant OperationsConfigure Customer FieldsConfigure Notifications and BrandingConfigure Planning Time and ActualsConfigure Receivables ControlsConnect Planning Data and ActualsConnect Transaction RecordsConsolidationCreate and Manage CustomersCreate and Send InvoicesCreate Your First Planning ModelDeveloper API SetupFirst Cash ReviewHeadcount PlanningInvoice Collection WorkflowMaintain Transaction RulesManage Security and BillingManage Team AccessManage the Invoice LifecycleMCP WorkflowsMonitor and Recover WorkflowsOrganize and Share DocumentsProcess Inbox ItemsReconcile and Categorize TransactionsRevenue ForecastingReview a Customer Finance RecordReview, Restore, and Export a Planning ModelRun a Finance Operating ReviewRun a Receivables Tone ExperimentRun a Runway Stress TestRun Planning Uncertainty AnalysisRun Your First Command Center ReviewSave and Share Assistant WorkSet Up a WorkspaceTroubleshoot Account AccessWebhook DeliveryWeekly CFO Review
Overview

Concepts

DataDimensionsFormulasScenarios

Variables

VariablesChange an input over timeCreate a variableFormat a variableOrganize variablesTime totalsUse a variable from another modelVariable types

Time

TimeLast actual dateRoll the model forwardTime granularityTime settings

Formulas

FormulasBlanks and helpersCommon formulas: cash and balance sheetCommon formulas: cohortsCommon formulas: currency and multiple entitiesCommon formulas: headcount and payrollCommon formulas: SaaS metricsCommon formulas: seasonalityConditionalsDimension referencesFormula syntaxFunctionsTime referencesTroubleshoot formulasValues with uncertaintyWrite a formula

Charts and Dashboards

Charts and dashboardsCompare scenarios and versionsCreate a chartExport and shareTablesTime aggregation in charts

Dimensions

DimensionsApply a dimensionCreate a dimensionDimension examplesDimension totalsThe Dimensions page

Data

DataChoose cash or accrual for XeroConnect a data sourceLink a variable to dataRefresh and check actualsUse transaction categories as actuals

Data Integrations

Data integrationsBank transactionsCSV importFortnoxQuickBooksStripeXero

Views

ViewsCreate and edit a viewFilter a viewShare a view

Versions

VersionsCompare versionsRestore a versionSave a version

Scenarios

ScenariosCompare scenariosCreate a scenarioPlans and adjustmentsStress tests and shocks

Collaboration

CollaborationComment on a modelShare a model and set accessTeam roles and planning access

Managing Models

Managing modelsDuplicate a modelExport a modelModel limits and performanceStart from a templateThe models home and foldersTrash, restore, and delete a model
OverviewIntegrationsMCPSDKsWebhooks
OverviewAuthenticationBank Accounts APICustomers APIErrorsForecasts and Stress Tests APIInvoice Payments APIInvoices APIPaginationRate LimitsRemote Tracker API StatusTracker Categories APITracker Entries and Timers APITracker Projects APITransactions APIWebhooks API StatusWorkflows API
Overview
Overview