Report

Dashboard

A basic dashboard for your accounting data

GnuCash's Dashboard (Reports › Multicolumn › Dashboard): four reports on one page, in two columns. The expense and income pie charts sit side by side, the Income/Expense Chart fills the next row and the Account Summary the last, each with its own defaults. Use it for a quick look at where money comes from and goes, and what the accounts hold.

The Dashboard is not a template but a built-in saved configuration of the Multicolumn View: "Report name" Dashboard, two columns, and the four children in GnuCash's order and spans. report.list lists it with kind: "saved" and readOnly: true, under GnuCash's menu path. Run it by its name or by its GUID, ad80271c890b11dfa79f2dcedfd72085 (the GnuCash menu item's).

Changing it

options change the Dashboard for one run, as for any report. It can't be changed for good, renamed or deleted: report.updateConfiguration, report.renameConfiguration and report.deleteConfiguration refuse it with conflict (data.reason: "built-in"). Copy it instead with report.saveConfiguration under a name of your own, then change the copy.

Its name is not reserved. If you save or import a configuration also called "Dashboard" (GnuCash names a saved dashboard after its "Report name"), the name matches both and is refused with conflict, its data.matches giving both GUIDs; name each by its GUID.

Key options

  • General › Number of columns: 2. A row is closed once the column spans of its children reach it.
  • __general › report-list: the four children, each a template GUID with its column and row spans: the Expense Accounts pie (1×1), the Income Accounts pie (1×1), the Income/Expense Chart (2×1) and the Account Summary (2×1). A child given no options runs on its template's defaults.

Examples

The Dashboard of a fixture book: three rows, the two pies in the first.

Example: with a copy of the reports/test-data example book open as book.gnucash.

JSON-RPC

Request:

{"jsonrpc":"2.0","id":1,"method":"report.run","params":{"report":"Dashboard"}}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "report": {
      "guid": "d8ba4a2e89e8479ca9f6eccdeb164588",
      "name": "Multicolumn View",
      "configuration": "ad80271c890b11dfa79f2dcedfd72085"
    },
    "title": "",
    "sections": [
      {
        "blocks": [
          {
            "kind": "grid",
            "rows": [
              {
                "cells": [
                  {
                    "colspan": 1,
                    "rowspan": 1,
                    "result": {
                      "title": "Expense Accounts",
                      "…": "…"
                    },
                    "…": "…"
                  },
                  {
                    "colspan": 1,
                    "rowspan": 1,
                    "result": {
                      "title": "Income Accounts",
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              },
              {
                "cells": [
                  {
                    "colspan": 2,
                    "rowspan": 1,
                    "result": {
                      "report": {
                        "guid": "80769921e87943adade887b9835a7685",
                        "name": "Income/Expense Chart",
                        "configuration": null
                      },
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              },
              {
                "cells": [
                  {
                    "colspan": 2,
                    "rowspan": 1,
                    "result": {
                      "report": {
                        "guid": "3298541c236b494998b236dfad6ad752",
                        "name": "Account Summary",
                        "configuration": null
                      },
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              }
            ],
            "…": "…"
          }
        ],
        "…": "…"
      }
    ],
    "…": "…"
  }
}

Command line

red-ale exec --book book.gnucash report.run '{"report":"Dashboard"}'

It prints:

{
  "report": {
    "guid": "d8ba4a2e89e8479ca9f6eccdeb164588",
    "name": "Multicolumn View",
    "configuration": "ad80271c890b11dfa79f2dcedfd72085"
  },
  "title": "",
  "sections": [
    {
      "blocks": [
        {
          "kind": "grid",
          "rows": [
            {
              "cells": [
                {
                  "colspan": 1,
                  "rowspan": 1,
                  "result": {
                    "title": "Expense Accounts",
                    "…": "…"
                  },
                  "…": "…"
                },
                {
                  "colspan": 1,
                  "rowspan": 1,
                  "result": {
                    "title": "Income Accounts",
                    "…": "…"
                  },
                  "…": "…"
                }
              ]
            },
            {
              "cells": [
                {
                  "colspan": 2,
                  "rowspan": 1,
                  "result": {
                    "report": {
                      "guid": "80769921e87943adade887b9835a7685",
                      "name": "Income/Expense Chart",
                      "configuration": null
                    },
                    "…": "…"
                  },
                  "…": "…"
                }
              ]
            },
            {
              "cells": [
                {
                  "colspan": 2,
                  "rowspan": 1,
                  "result": {
                    "report": {
                      "guid": "3298541c236b494998b236dfad6ad752",
                      "name": "Account Summary",
                      "configuration": null
                    },
                    "…": "…"
                  },
                  "…": "…"
                }
              ]
            }
          ],
          "…": "…"
        }
      ],
      "…": "…"
    }
  ],
  "…": "…"
}

MCP tool call

Tool call:

{"name":"report.run","arguments":{"report":"Dashboard"}}

Result:

{
  "structuredContent": {
    "report": {
      "guid": "d8ba4a2e89e8479ca9f6eccdeb164588",
      "name": "Multicolumn View",
      "configuration": "ad80271c890b11dfa79f2dcedfd72085"
    },
    "title": "",
    "sections": [
      {
        "blocks": [
          {
            "kind": "grid",
            "rows": [
              {
                "cells": [
                  {
                    "colspan": 1,
                    "rowspan": 1,
                    "result": {
                      "title": "Expense Accounts",
                      "…": "…"
                    },
                    "…": "…"
                  },
                  {
                    "colspan": 1,
                    "rowspan": 1,
                    "result": {
                      "title": "Income Accounts",
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              },
              {
                "cells": [
                  {
                    "colspan": 2,
                    "rowspan": 1,
                    "result": {
                      "report": {
                        "guid": "80769921e87943adade887b9835a7685",
                        "name": "Income/Expense Chart",
                        "configuration": null
                      },
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              },
              {
                "cells": [
                  {
                    "colspan": 2,
                    "rowspan": 1,
                    "result": {
                      "report": {
                        "guid": "3298541c236b494998b236dfad6ad752",
                        "name": "Account Summary",
                        "configuration": null
                      },
                      "…": "…"
                    },
                    "…": "…"
                  }
                ]
              }
            ],
            "…": "…"
          }
        ],
        "…": "…"
      }
    ],
    "…": "…"
  }
}

A copy to change, and the Dashboard itself refused:

Example: with a copy of the reports/test-data example book open as book.gnucash.

JSON-RPC

Request:

{"jsonrpc":"2.0","id":1,"method":"report.saveConfiguration","params":{"name":"My dashboard","report":"Dashboard","options":{"General":{"Number of columns":3}}}}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "name": "My dashboard",
    "kind": "saved",
    "template": "d8ba4a2e89e8479ca9f6eccdeb164588",
    "inMenu": false,
    "…": "…"
  }
}

Request:

{"jsonrpc":"2.0","id":2,"method":"report.updateConfiguration","params":{"configuration":"Dashboard","options":{"General":{"Number of columns":3}}}}

Response:

{
  "jsonrpc": "2.0",
  "id": 2,
  "error": {
    "code": 2003,
    "message": "…",
    "data": {
      "kind": "configuration",
      "reason": "built-in",
      "guid": "ad80271c890b11dfa79f2dcedfd72085",
      "name": "Dashboard",
      "help": "error/conflict"
    }
  }
}

Command line

red-ale exec --book book.gnucash --script - <<'EOF'
report.saveConfiguration {"name":"My dashboard","report":"Dashboard","options":{"General":{"Number of columns":3}}}
report.updateConfiguration {"configuration":"Dashboard","options":{"General":{"Number of columns":3}}}
EOF

It fails with exit status 2, printing on standard error:

{
  "error": {
    "code": 2003,
    "message": "…",
    "data": {
      "kind": "configuration",
      "reason": "built-in",
      "guid": "ad80271c890b11dfa79f2dcedfd72085",
      "name": "Dashboard",
      "help": "error/conflict"
    }
  }
}

MCP tool call

Tool call:

{"name":"report.saveConfiguration","arguments":{"name":"My dashboard","report":"Dashboard","options":{"General":{"Number of columns":3}}}}

Result:

{
  "structuredContent": {
    "name": "My dashboard",
    "kind": "saved",
    "template": "d8ba4a2e89e8479ca9f6eccdeb164588",
    "inMenu": false,
    "…": "…"
  }
}

Tool call:

{"name":"report.updateConfiguration","arguments":{"configuration":"Dashboard","options":{"General":{"Number of columns":3}}}}

Result:

{
  "isError": true,
  "structuredContent": {
    "error": {
      "code": 2003,
      "name": "conflict",
      "message": "…",
      "data": {
        "kind": "configuration",
        "reason": "built-in",
        "guid": "ad80271c890b11dfa79f2dcedfd72085",
        "name": "Dashboard",
        "help": "error/conflict"
      }
    }
  }
}

Built-in saved configuration GUID: ad80271c890b11dfa79f2dcedfd72085, read-only · Configures: Multicolumn View · Script: standard/view-column.rhai

Options

General

  • Report name (string, default "Dashboard"): Enter a descriptive name for this report.
  • Stylesheet (multichoice, default "Default"): Select a stylesheet for the report.
  • Add options summary (multichoice, default "never"): Add summary of options.
  • Number of columns (numberRange, default 2): Number of columns before wrapping to a new row.

__general

  • report-list (reportPlacement, default [{"report":"9bf1892805cb4336be6320fe48ce5446","colspan":1,"rowspan":1},{"report":"e1bd09b8a1dd49dd85760db9d82b045c","colspan":1,"rowspan":1},{"report":"80769921e87943adade887b9835a7685","colspan":2,"rowspan":1},{"report":"3298541c236b494998b236dfad6ad752","colspan":2,"rowspan":1}]): The reports to show, in order: each a report template or saved report configuration by GUID, with the columns and rows it spans.