Improving the "Advanced Portfolio" report

Scott Armitage account+gnucash at
Tue Jan 28 00:06:00 EST 2014

Hi everyone, I tried to submit this suggestion last week but it appears to
have been eaten somewhere along the line. I would like to improve the
"Advanced Portfolio" report. At this time it is lacking some key
functionality (or I have failed to discover how to use it) that would make
it a complete solution for all of my financial management needs. My
understanding is that Mike Alexander has been working on this report
recently, so perhaps he can provide some feedback as to the feasibility of

The report lets you select a report date and selection criteria for which
price to use for stocks and funds. With this, I have been able to
successfully create a report that, for a given date, will calculate my cost
basis, realized and unrealized gains, income, and total rate of return for
all time up to the report date. This has worked great and I have been able
to reconcile it with my by-hand calculations, with my brokerage's records,
and with Google Finance. Sweet!

The report does not, however, let you select a "report from" date. This has
been fine for me so far as I only started investing in early 2013. Now that
2014 has rolled around, I have come across two new use-cases for this type
of report that I *require* in order for GnuCash to be my one-stop-shop.
These use-cases are:

   1. Year-to-date -- all of the same report information but with gains,
   income, and total return computed from the beginning of the current year to
   2. Income tax -- all of the same report information but computed from 01
   January of a given year to 31 December of the same year.

The report date is arbitrary (provided you have price information for the
report date for all of your holdings). If a "report from" date were added,
you could run case 1 as "FROM beginning of current year TO today", and you
could run case 2 as "FROM 01 January YYYY TO 31 December YYYY". With a
generic report-from date, you could also run arbitrary portfolio reports
for any period, for example Q3 of 2013, or last 6 months, or previous
quarter, or indeed whatever the user's heart desires.

I am looking for someone to assist with modifying the "Advanced Portfolio"
report to support this functionality; I believe it is incredibly useful for
DIY and passive investors such as myself, many of whom would be the type of
people to use GnuCash in the first place =) I can provide report
definitions, test cases, and perform functional testing of the report, but
I am looking for someone who can dig into the guts to do the coding. I
unfortunately don't have the time at the moment to dedicate to learning a
couple new languages to accomplish this myself.

I see a few key changes to the report that would be required:

   - Modify the single "Date" report option to two options, "Start Date"
   and "End Date"
      - To maintain backward compatibility, the "Start Date" should include
      an option for "All" or something similar, giving the functionality of the
      current report
   - Modify the "Basis" column to represent "Opening value", i.e. the
   valuation of the holding on the report start date (and probably rename the
   "Value" column to "Closing value", i.e. the same on the report end date)
   - Filter money in, money out, income, and brokerage fees (i.e.
   transactions on the holdings) to include only those that are within the
   report period

If anyone else is interested in this, please let me know!

More information about the gnucash-devel mailing list