Loading documentation…
Loading documentation…
This page lists the 23 functions of the financial family. Taxonomy/source: Financial functions. The formula function contract has every family, the engine builds, and the evaluation limits.
All functions
| Function (aliases) | Engine | Contract |
|---|---|---|
PV | Default + full | |
FV | Default + full | |
PMT | Default + full | |
NPV | Default + full | |
IRR | Default + full | |
RATE | Default + full | |
IPMT | Default + full | |
PPMT | Default + full | |
CUMIPMT | Full only | |
CUMPRINC | Full only | |
DB | Full only | |
DDB | Full only | |
EFFECT | Full only | |
FVSCHEDULE | Full only | |
MIRR | Full only | |
NOMINAL | Full only | |
NPER | Full only | |
PDURATION | Full only | |
RRI | Full only | |
SLN | Full only | |
SYD | Full only | |
XIRR | Full only | |
XNPV | Full only |
Argument order, required/default state, accepted shapes, repetition, and return shape come directly from the inventory.
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
nper | yes | none | scalar, reference | once |
paymentOrPresentValue | yes | none | scalar, reference | once |
futureValue | no | 0 | scalar, reference | once |
type | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
value | yes | none | scalar, range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
values | yes | none | range, array, reference | once |
guess | no | 0.1 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
nper | yes | none | scalar, reference | once |
payment | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
futureValue | no | 0 | scalar, reference | once |
type | no | 0 | scalar, reference | once |
guess | no | 0.1 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
period | yes | none | scalar, reference | once |
nper | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
futureValue | no | 0 | scalar, reference | once |
type | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
nper | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
startPeriod | yes | none | scalar, reference | once |
endPeriod | yes | none | scalar, reference | once |
type | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
cost | yes | none | scalar, reference | once |
salvage | yes | none | scalar, reference | once |
life | yes | none | scalar, reference | once |
period | yes | none | scalar, reference | once |
month | no | 12 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
cost | yes | none | scalar, reference | once |
salvage | yes | none | scalar, reference | once |
life | yes | none | scalar, reference | once |
period | yes | none | scalar, reference | once |
factor | no | 2 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number1 | yes | none | scalar, reference | once |
number2 | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
principal | yes | none | scalar, reference | once |
schedule | yes | none | scalar, range, array, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
values | yes | none | scalar, range, array, reference | once |
financeRate | yes | none | scalar, reference | once |
reinvestRate | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
payment | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
futureValue | no | 0 | scalar, reference | once |
type | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
futureValue | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
nper | yes | none | scalar, reference | once |
presentValue | yes | none | scalar, reference | once |
futureValue | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
cost | yes | none | scalar, reference | once |
salvage | yes | none | scalar, reference | once |
life | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
cost | yes | none | scalar, reference | once |
salvage | yes | none | scalar, reference | once |
life | yes | none | scalar, reference | once |
period | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
values | yes | none | scalar, range, array, reference | once |
dates | yes | none | scalar, range, array, reference | once |
guess | no | 0.1 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
rate | yes | none | scalar, reference | once |
values | yes | none | scalar, range, array, reference | once |
dates | yes | none | scalar, range, array, reference | once |
These values are normative for the listed Sheetwrite subset. function-defined and contextual are explicit limitations: consult the formula guides' function-specific sections rather than assuming another spreadsheet's edge behavior.
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: contextual array: contextual broadcast: function-defined result: scalar |
| coercion | blank: zero text: number-if-parseable boolean: number error: propagate |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: binary64 domain: bounded iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: accepted array: accepted broadcast: none result: scalar |
| coercion | blank: zero text: number-if-parseable boolean: number error: propagate |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: binary64 domain: bounded iteration: kind: bounded maximum: 100 |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dialect | Status |
|---|---|
| Microsoft Excel | documented |
| Google Sheets | unverified |
| OpenFormula | unverified |
Limitations: Google Sheets and OpenFormula results require producer evidence before compatibility is claimed.
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/mod.rspackages/wasm/src/eval/functions.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedpackages/wasm/src/tests.rspackages/core/test/formula-assist.test.ts |
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/analysis/finance.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedscripts/formula-contract.test.ts |