DECCF · Cash Flow Modeler and Calculator

Choose a timeline and schedules

The timeline defines the periods the engine calculates. Calendars can be daily, weekly, monthly, quarterly, or annual.

count is the published result horizon. projection adds calculation periods after it. The engine evaluates those extra periods, but the current result limits public dates, series, and built-in metrics to count periods. Custom metrics are evaluated at the last calculated date.

Schedules

Factories include once, daily, weekly, monthly, quarterly, annual, yearEnd, and every(frequency, options). Recurring schedules accept inclusive from, optional to, a positive interval, except, and also. yearEnd places one occurrence on December 31 of each represented calendar year. Monthly schedules can use either dayOfMonth or endOfMonth; a requested day is clamped to that month's last day when needed.

An occurrence maps to a model period. The engine rejects a schedule finer than the timeline can represent: a monthly model cannot preserve separate daily occurrences. Amount functions still run at most once per scheduled period.

Placement within a period

placement can be "start", "mid", or "end". A one-time schedule with an exact date uses the date's position within the period when no placement is set. Placement affects present-value timing and weighted average life, not how often the amount function runs.

Phases

Phases cannot overlap and must fit inside the timeline. In callbacks, ctx.time.phase contains the active phase name and ctx.inPhase(operations) checks a phase reference. schedule.phaseStart, phaseEnter, and phaseEnd place an occurrence at the phase start, entry, or end.

Next: Use preconditions and run inputs.