function generate() year = date.now().year accounts = get_accounts() t = tabulation.new(12) t:title(year .. " Monthly Cash Flow") series = t:series("Income minus expenses") for month=1,12 do begin_date = date.new(year, month, 1) end_date = date.new(year, month+1, 1) t:label(month, tostring(begin_date)) cash_flow = 0 for id, acct in pairs(accounts) do if acct.type == account.Expense or acct.type == account.Income then balance = acct:balance(begin_date, end_date) cash_flow = cash_flow - balance.amount end end series:value(month, cash_flow) end return t end