# Reports And Charts

This section is a "work in process" all of the material has not been reviewed for V2.0. While it may not be strictly accurate, it is at least a "guide".

Reports and Charts give GnuCash the ability to present an overview of financial data in various ways. This can range from a simple summary of account totals to an advanced portfolio view. This section will present an explanation of the main GnuCash reports and how to adjust them.

GnuCash has classified the main types of reports into four major classes. These are all available under the Reports menu.

## General Reports

The General Reports includes the Tax Report and TXF Export, the Account Summary and the Transaction Reports and also the reports in the Sample & Custom menu.

- Account Summary:

- Tax Report and TXF Export: The tax report is used to export all tax related Income and Expenses to a TXF (Tax eXchange Format) file. This is in addition to the HTML format that all reports allow. The TXF file can be imported into tax filing programs such as TaxCut or TurboTax.

  For this to work, the user has to segregate taxable and non taxable income to different accounts, as well as deductible and non deductible expenses. The Tax Information dialog is used for this. To access the Tax Information dialog go to Edit -> Tax Options. The user also must set the TXF category of each tax related account. The Tax Information dialog is described in the Setting Tax Options section.

- Transaction Report:

- Welcome Sample Report:

- Custom Multicolumn Report: This report is used to place multiple reports into a single report window to examine a set of financial information at a glance.

- Sample Graphs

- Sample Report with Examples:

## Assets & Liabilities

The Assets & Liabilities reports includes the Balance Sheet report, Investment reports and the Net Worth report.

- Advanced Portfolio:

- Asset Barchart:

- Asset Piechart:

- Average Balance:

- Balance Sheet: This report summarizes assets, liabilities, and equity. When properly maintained, assets should equal the sum of liabilities and equity. If that is not the case, there is some kind of internal imbalance in the accounts.

- General Journal:

- General Ledger:

- Investment Portfolio: This report summarizes the value of the stocks in the current portfolio.

- Liability Barchart:

- Liability Piechart:

- Net Worth Barchart: Net worth is the difference between the value of assets or liabilities.

- Price Scatterplot:

## Income & Expense

The Income & Expense reports includes the Cash Flow and Income Statement reports.

- Budget Report:

- Cash Flow:

- Equity Statement:

- Expense Barchart:

- Expense Piechart:

- Expense vs Day of Week:

- Income Barchart:

- Income & Expense Chart:

- Income Statement: This report summarizes sources of income and expenditure. (This report was called Profit & Loss in gnucash-1.8.)

- Income Statement:

- Income vs Day of Week:

- Trial Balance: This report summarizes sources of income and expenditure.

## Business Reports

The Business Reports includes Customer and Vendor Reports and Printable Invoices as well as Aging reports.

- Customer Report:

- Easy Invoice:

- Employee Report:

- Fancy Invoice:

- Payable Aging:

- Printable Invoice:

- Receivable Aging:

- Vendor Report:

## Customizing Reports and Graphs

GnuCash reports have many options for customization. To access report options choose the Options button on the toolbar.

Check changed Graphic Engine Options and describe Saving Customized Reports

Many reports share similar sorts of options. Some common ones include:

- Report Name: Set the title of the report. This is also used to print the report for later viewing.

- Date Options: Reports typically specify either a single date, or a date range, for the report. Dates can be specified in two ways, either directly (using the date selector), or by selecting a relative date from the menu. Relative dates allow you to specify dates like "Beginning of this year" or "Today".

- Step Size: This option is used on bar charts to determine the interval which each bar represents. Typical values are daily, weekly, monthly, and yearly.

- Accounts: Select the appropriate accounts for the report. Note that in some reports only certain types of accounts can be selected. For example, an expense piechart only allows expense accounts to be selected.

- Show Long Account Names: This option allows displaying either short account names (for example, Power) or long account names (for example, Utilities:Power).

- Include Subaccounts?: Summary reports typically have an include all subaccounts option, which if selected ensures that all subaccounts are included if the parent account is.

- Depth: This option allows the selection of how many levels the report displays subaccounts. If the subaccounts go deeper than selected, an overall value for all the subaccounts is calculated and included in a total. To make sure every account selected is individually displayed, select All.

- Style Sheet: Select a Style Sheet. Style sheets control how reports are displayed. At the moment, there are three style sheets, "default", "Easy" and "technicolor". You can customize each of these from the Edit -> Style Sheets... menu item. This is described in the Changing Style Sheets section.

- Plot Dimensions: There are width and height options for most graphs, which specify the displayed dimensions (in pixels).

- Report Currency: Select the report currency. Generally, values will be converted to this currency for display.

- Price Source: Select how stock and currency prices are calculated in this report. Choose between a weighted average of prices over all transactions, prices at current values, or prices at the time of the report date.

- Totals: Charts display totals in the chart legend if this option is selected.

- Maximum Slices: Controls the maximum number of slices displayed in a piechart - other accounts will be placed in a slice marked Other.

- Maximum Bars: Controls the maximum number of bars displayed in a barchart.

- Display Columns: Choose columns to show from the register.

## Printing or Exporting Reports and Graphs

Verify !!! How customize printing with Gnome?

GnuCash is able to print reports and to export the reports to HTML (web) pages. The Print GnuCash Document dialog is accessed from the Print button on the toolbar or go to File -> Print in the menu. To Export a report to a web page (HTML) select the Export button on the toolbar and type in a file name.

The Print GnuCash Document dialog is used to select which Printer to send the print job to or to print to a File. It also contains a Preview button to view the document before printing. Press Print to send the job to the selected printer or Cancel to dismiss the Print dialog.

Printing from an open register prints the Account Report, which is also called the Register Report. This lists transactions in the account with a total. Other reports print as viewed in the Report screen.

## Creating Reports and Graphs

This section may need updating !!!

It is possible to write reports if the current ones are not suitable. To do this you will need to know Scheme (a LISP-like programming language), and it is an excellent idea to have a copy of the GnuCash source code available.

The reporting interface is documented in the source code file src/report/report-system/doc/report-html.txt. The file src/report/utility-reports/hello-world.scm in the GnuCash source distribution provides a good example of how reports are developed.

It is also necessary to access data from the engine to get information for your report. This is performed by a set of Scheme wrapper functions that are documented in the file src/g-wrap/gnc.html. Examine some of the other reports in src/scm/report for an indication of how they are used.

At present, reports are produced by calling a HTML-generation API, which outputs a dialect of HTML and rendering this with a HTML widget. This has limitations, particularly when trying to align objects precisely, as might be necessary for printing onto pre-printed invoices for example.