hledger-lib-1.20.1: A reusable library providing the core functionality of hledger
Safe HaskellNone






type BudgetCell = (Maybe Change, Maybe BudgetGoal) Source #

A budget report tracks expected and actual changes per account and subperiod.

budgetReport :: ReportSpec -> Bool -> DateSpan -> Journal -> BudgetReport Source #

Calculate per-account, per-period budget (balance change) goals from all periodic transactions, calculate actual balance changes from the regular transactions, and compare these to get a BudgetReport. Unbudgeted accounts may be hidden or renamed (see journalWithBudgetAccountNames).

budgetReportAsText :: ReportOpts -> BudgetReport -> String Source #

Render a budget report as plain text suitable for console output.

budgetReportAsCsv :: ReportOpts -> BudgetReport -> CSV Source #

Render a budget report as CSV. Like multiBalanceReportAsCsv, but includes alternating actual and budget amount columns.


reportPeriodName :: BalanceType -> [DateSpan] -> DateSpan -> String Source #

Make a name for the given period in a multiperiod report, given the type of balance being reported and the full set of report periods. This will be used as a column heading (or row heading, in a register summary report). We try to pick a useful name as follows:

  • ending-balance reports: the period's end date
  • balance change reports where the periods are months and all in the same year: the short month name in the current locale
  • all other balance change reports: a description of the datespan, abbreviated to compact form if possible (see showDateSpan).