Business Planning & Financial Modeling

Build P&L statements, budgets, and financial projections with CalcMark.

Revenue forecasts, cost breakdowns, margin analysis, budget health checks — financial models are just calculations embedded in narrative. CalcMark makes the narrative and the math live in one document.

Try it now: Open the Household Budget in Lark or run cm remote household-budget in the editor.


Key Features for This Domain #

FeatureWhat It DoesReference
Currency arithmetic ($100 + $50)Add, subtract, multiply currencies naturallyCurrency
sum of a, b, cSum multiple line items without long + chainsFunctions
number() for ratiosStrip currency for dimensionless ratios: number($500) / number($1000)0.5Formatting
% of syntax20% of income → percentage calculationPercentages
{{variable}} interpolationEmbed results in prose: “Total: {{revenue}}”Templates
Exchange ratesConvert between currencies with frontmatter ratesCurrency
Growth functionscompound($1000, 7%, 10 years) for projectionsGrowth Functions

Walkthrough: Budget Health Check #

Step 1: Income #

Start with gross income and deductions:

salary_1 = $6500
salary_2 = $5200
total_gross = salary_1 + salary_2

tax_rate = 0.24
net_income = total_gross * (1 - tax_rate)
Results
salary_1 = $6500$6,500.00
salary_2 = $5200$5,200.00
total_gross = salary_1 + salary_2$11.7K
tax_rate = 0.240.24
net_income = total_gross * (1 - tax_rate)$8,892.00

Currency arithmetic preserves the $ through every operation.

Step 2: Expenses with sum of #

Group expenses and total them without long addition chains:

rent = $1800
utilities = $250
insurance = $150
groceries = $600
dining_out = $300

fixed_costs = sum of rent, utilities, insurance
variable_costs = sum of groceries, dining_out
total_expenses = fixed_costs + variable_costs
Results
rent = $1800$1,800.00
utilities = $250$250.00
insurance = $150$150.00
groceries = $600$600.00
dining_out = $300$300.00
fixed_costs = sum of rent, utilities, insurance$2,200.00
variable_costs = sum of groceries, dining_out$900.00
total_expenses = fixed_costs + variable_costs$3,100.00

Step 3: Ratios with number() #

Dividing currency by currency is an error — dollars divided by dollars doesn’t produce a dollar amount. Wrap both sides with number() to get a dimensionless ratio:

savings = net_income - total_expenses
savings_rate = number(savings) / number(net_income) * 100
Results
savings = net_income - total_expenses$5,792.00
savings_rate = number(savings) / number(net_income) * 10065.1

savings_rate is a plain number (e.g., 41.5) representing a percentage. Which side you wrap matters — $100 / number($50) gives $2.00 (currency), while number($100) / number($50) gives 2 (plain number). See number() reference for the full type rules.

Step 4: Inline Results with Templates #

Put a summary at the top of your document that updates automatically:

## Monthly Summary

Net income: {{net_income}}
Total expenses: {{total_expenses}}
Savings: {{savings}} ({{savings_rate}}%)

The {{variable}} tags are replaced with formatted values after all calculations run. Forward references work — your summary can appear before the calculations.