gnucash-docs stable: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Mon Jul 13 15:27:41 EDT 2026
Updated via https://github.com/Gnucash/gnucash-docs/commit/23fac47b (commit)
via https://github.com/Gnucash/gnucash-docs/commit/7a678f51 (commit)
from https://github.com/Gnucash/gnucash-docs/commit/a58f731a (commit)
commit 23fac47b020106e4459cbee51d1b108cc70b67af
Merge: a58f731a 7a678f51
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Jul 13 12:27:09 2026 -0700
Merge Chris Good's 'import-match-append' into stable
commit 7a678f5155021746c038b69b97cd94d2b489026a
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Jul 13 12:15:58 2026 -0700
Update adjust-dpi.sh so rerun does nothing
Slight rounding issues previously meant some files were updated but
not actually changed. Increase the no of decimals in the existing and
future pixels per centimeter from 1 to 2 and check for a difference of
more than 0.02 pixels per centimeter before running convert on a file.
Included in this commit are images that have not been previously
updated by adjust-dpi.sh.
diff --git a/C/guide/ch_reports.docbook b/C/guide/ch_reports.docbook
index ee3b893b..e0b7c664 100644
--- a/C/guide/ch_reports.docbook
+++ b/C/guide/ch_reports.docbook
@@ -331,17 +331,18 @@
<title>The Investment Lots Report</title>
<screenshot id="InvestmentLotsScreenShot">
- <screeninfo>1720x982</screeninfo>
+ <screeninfo>1024x469</screeninfo>
<mediaobject>
<imageobject role="html">
<imagedata fileref="figures/Report_Investment_Lots.png"
- srccredit="Brent McBride" width="&img-w;"/>
+ srccredit="Brent McBride" width="1024"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="figures/Report_Investment_Lots.png"
- srccredit="Brent McBride"/>
+ srccredit="Brent McBride"
+ width="160mm" align="center"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -351,8 +352,8 @@
<emphasis>Stock</emphasis> or <emphasis>Mutual Fund</emphasis> (see
<xref linkend="invest-sellLots" />). It includes an optional capital gains summary chart
and a table with columns for dates, purchases, sales, end balances, capital gains
- (realized and unrealized, short term and long term), and return on investment (ROI). It
- also performs optional lot validation checks.
+ (realized and unrealized, short term and long term), return on investment (ROI), and
+ compound annual growth rate (CAGR). It also performs optional lot validation checks.
</para>
<para>The report can help answer questions such as:
diff --git a/C/guide/figures/Report_Investment_Lots.png b/C/guide/figures/Report_Investment_Lots.png
index 8cc3218e..8a375b9f 100644
Binary files a/C/guide/figures/Report_Investment_Lots.png and b/C/guide/figures/Report_Investment_Lots.png differ
diff --git a/C/manual/ch_Reports.docbook b/C/manual/ch_Reports.docbook
index 18d3494c..8f109eab 100644
--- a/C/manual/ch_Reports.docbook
+++ b/C/manual/ch_Reports.docbook
@@ -2102,17 +2102,18 @@ Income (type INCOME)
<title>The Investment Lots Report</title>
<screenshot id="InvestmentLotsScreenShot">
- <screeninfo>1720x982</screeninfo>
+ <screeninfo>1024x469</screeninfo>
<mediaobject>
<imageobject role="html">
<imagedata fileref="figures/Report_Investment_Lots.png"
- srccredit="Brent McBride" width="&img-w;"/>
+ srccredit="Brent McBride" width="1024"/>
</imageobject>
<imageobject role="fo">
<imagedata fileref="figures/Report_Investment_Lots.png"
- srccredit="Brent McBride"/>
+ srccredit="Brent McBride"
+ width="160mm" align="center"/>
</imageobject>
</mediaobject>
</screenshot>
@@ -2129,7 +2130,8 @@ Income (type INCOME)
<link linkend="investment-lots-report-column-e">end balances</link>, capital gains
(<link linkend="investment-lots-report-column-r">realized</link> and
<link linkend="investment-lots-report-column-r">unrealized</link>, short term and long
- term), and return on investment (ROI). It also performs optional lot
+ term), return on investment (ROI), and compound annual growth rate (CAGR). It also
+ performs optional lot
<link linkend="investment-lots-report-options-val">validation checks</link>.
</para>
</abstract>
@@ -2353,11 +2355,36 @@ Income (type INCOME)
</listitem>
<listitem id="investment-lots-report-column-rr">
- <para><guilabel>Realized ROI</guilabel>: The realized return on investment.
+ <para><guilabel>Realized ROI</guilabel>: The realized return on investment: the
<link linkend="investment-lots-report-column-rg"><guilabel>Realized
- Gain</guilabel></link> divided by
+ Gain</guilabel></link> as a fraction of the amount originally invested in the
+ sold shares. Expressed as a percentage:
+ </para>
+
+ <informalequation>
+ <mathphrase>Realized ROI = Realized Gain / Sold Basis = (Sold Value − Sold Basis) / Sold Basis</mathphrase>
+ </informalequation>
+ </listitem>
+
+ <listitem id="investment-lots-report-column-rc">
+ <para><guilabel>Realized CAGR</guilabel>: The compound annual growth rate realized on sold shares. Whereas
+ <link linkend="investment-lots-report-column-rr"><guilabel>Realized
+ ROI</guilabel></link> measures the total return regardless of how long the
+ shares were held, <guilabel>Realized CAGR</guilabel> annualizes that return: it
+ is the constant yearly rate at which the
<link linkend="investment-lots-report-column-sb"><guilabel>Sold
- Basis</guilabel></link>, as a percentage.
+ Basis</guilabel></link> would have had to grow, compounding each year, to reach
+ the <link linkend="investment-lots-report-column-sv"><guilabel>Sold
+ Value</guilabel></link> over the holding period. Expressed as a percentage:
+ </para>
+
+ <informalequation>
+ <mathphrase>Realized CAGR = (Sold Value / Sold Basis)<superscript>(1 / years)</superscript> − 1</mathphrase>
+ </informalequation>
+
+ <para>where <emphasis>years</emphasis> is the length of time the shares were held before being sold.
+ Annualizing the return this way lets lots held for different lengths of time be
+ compared on an equal footing.
</para>
</listitem>
</itemizedlist>
@@ -2379,11 +2406,34 @@ Income (type INCOME)
</listitem>
<listitem id="investment-lots-report-column-ur">
- <para><guilabel>Unrealized ROI</guilabel>: The unrealized return on investment.
+ <para><guilabel>Unrealized ROI</guilabel>: The unrealized return on investment: the
<link linkend="investment-lots-report-column-ug"><guilabel>Unrealized
- Gain</guilabel></link> divided by
+ Gain</guilabel></link> as a fraction of the amount currently invested in the
+ remaining shares. Expressed as a percentage:
+ </para>
+
+ <informalequation>
+ <mathphrase>Unrealized ROI = Unrealized Gain / End Basis = (End Value − End Basis) / End Basis</mathphrase>
+ </informalequation>
+ </listitem>
+
+ <listitem id="investment-lots-report-column-uc">
+ <para><guilabel>Unrealized CAGR</guilabel>: The compound annual growth rate that would be realized if the
+ remaining shares were sold on the end date. It is the annualized counterpart of
+ <link linkend="investment-lots-report-column-ur"><guilabel>Unrealized
+ ROI</guilabel></link>: the constant yearly rate at which the
<link linkend="investment-lots-report-column-eb"><guilabel>End
- Basis</guilabel></link>, as a percentage.
+ Basis</guilabel></link> would have had to grow, compounding each year, to reach
+ the <link linkend="investment-lots-report-column-ev"><guilabel>End
+ Value</guilabel></link> over the holding period. Expressed as a percentage:
+ </para>
+
+ <informalequation>
+ <mathphrase>Unrealized CAGR = (End Value / End Basis)<superscript>(1 / years)</superscript> − 1</mathphrase>
+ </informalequation>
+
+ <para>where <emphasis>years</emphasis> is the length of time the shares have been held as of the end
+ date.
</para>
</listitem>
</itemizedlist>
@@ -2401,6 +2451,18 @@ Income (type INCOME)
</para>
</note>
+ <note>
+ <para>Unlike the gain and ROI columns, the
+ <link linkend="investment-lots-report-column-rc"><guilabel>Realized
+ CAGR</guilabel></link> and
+ <link linkend="investment-lots-report-column-uc"><guilabel>Unrealized
+ CAGR</guilabel></link> columns are left blank in the <guilabel>Grand Total</guilabel>
+ row. A compound annual growth rate is an annualized rate of return rather than a
+ monetary amount, so it cannot be meaningfully summed or averaged across accounts that
+ hold different commodities.
+ </para>
+ </note>
+
<para id="investment-lots-report-options">Report Options
</para>
@@ -2492,10 +2554,15 @@ Income (type INCOME)
<screeninfo>800x630</screeninfo>
<mediaobject>
- <imageobject>
+ <imageobject role="html">
<imagedata fileref="figures/Report_Investment_Lots_StackedBar.png"
srccredit="Brent McBride"/>
</imageobject>
+ <imageobject role="fo">
+ <imagedata fileref="figures/Report_Investment_Lots_StackedBar.png"
+ srccredit="Brent McBride"
+ width="160mm" align="center"/>
+ </imageobject>
</mediaobject>
</screenshot>
</figure>
@@ -2507,10 +2574,15 @@ Income (type INCOME)
<screeninfo>800x667</screeninfo>
<mediaobject>
- <imageobject>
+ <imageobject role="html">
<imagedata fileref="figures/Report_Investment_Lots_Bar.png"
srccredit="Brent McBride"/>
</imageobject>
+ <imageobject role="fo">
+ <imagedata fileref="figures/Report_Investment_Lots_Bar.png"
+ srccredit="Brent McBride"
+ width="160mm" align="center"/>
+ </imageobject>
</mediaobject>
</screenshot>
</figure>
@@ -2689,6 +2761,34 @@ Income (type INCOME)
disabled. Default: 1 year.
</para>
</listitem>
+
+ <listitem id="investment-lots-report-options-columns-roi">
+ <para><guilabel>Show ROI columns</guilabel>: Show the
+ <link linkend="investment-lots-report-column-rr"><guilabel>Realized
+ ROI</guilabel></link> and
+ <link linkend="investment-lots-report-column-ur"><guilabel>Unrealized
+ ROI</guilabel></link> percentage columns. This option is ignored unless at
+ least one of the
+ <link linkend="investment-lots-report-options-columns-r"><guilabel>Show
+ realized gain columns</guilabel></link> or
+ <link linkend="investment-lots-report-options-columns-u"><guilabel>Show
+ unrealized gain columns</guilabel></link> options is enabled. Default: off.
+ </para>
+ </listitem>
+
+ <listitem id="investment-lots-report-options-columns-cagr">
+ <para><guilabel>Show CAGR columns</guilabel>: Show the
+ <link linkend="investment-lots-report-column-rc"><guilabel>Realized
+ CAGR</guilabel></link> and
+ <link linkend="investment-lots-report-column-uc"><guilabel>Unrealized
+ CAGR</guilabel></link> percentage columns. This option is ignored unless at
+ least one of the
+ <link linkend="investment-lots-report-options-columns-r"><guilabel>Show
+ realized gain columns</guilabel></link> or
+ <link linkend="investment-lots-report-options-columns-u"><guilabel>Show
+ unrealized gain columns</guilabel></link> options is enabled. Default: on.
+ </para>
+ </listitem>
</itemizedlist>
</listitem>
</itemizedlist>
diff --git a/C/manual/figures/Report_Investment_Lots.png b/C/manual/figures/Report_Investment_Lots.png
index 8cc3218e..8a375b9f 100644
Binary files a/C/manual/figures/Report_Investment_Lots.png and b/C/manual/figures/Report_Investment_Lots.png differ
diff --git a/util/adjust-dpi.sh b/util/adjust-dpi.sh
index 6bd05590..d404952e 100755
--- a/util/adjust-dpi.sh
+++ b/util/adjust-dpi.sh
@@ -4,7 +4,7 @@ ls *.png > list
for figure in $(cat list);
do
- # get width in pixels of the figure
+ # get width in pixels of the figure 1 inch = 2,54 centimeters
width=$(identify -format "%w" "$figure")
if [ "$width" -lt 496 ]; then
# width is less than 90x14cm/2,54
@@ -22,19 +22,20 @@ do
fi
fi
# convert dpi from pixelsperinch to pixelspercentimeter
- # Note: bc truncates to scale decimals so use awk to round to 1 decimals
- dpi_cm=$(echo "scale=8; $dpi/2.54" | bc | awk '{ printf("%.1f",$1); }')
+ # Note: bc truncates to scale decimals so use awk to round to 2 decimals
+ dpi_cm=$(echo "scale=8; $dpi/2.54" | bc | awk '{ printf("%.2f",$1); }')
# get the existing dpi from figure as XX PixelsPerCentimeter
existing_dpi=$(identify -format "%x" "$figure")
# some vers of identify suffix the returned dpi with " PixelsPerCentimeter"
# and/or do not round the return value of identify -format "%x"
- existing_dpi=$( echo "$existing_dpi" | awk '{ printf("%.1f",$1); }')
+ existing_dpi=$( echo "$existing_dpi" | awk '{ printf("%.2f",$1); }')
# set the future dpi figure to XX.XX (PixelsPerCentimeter)
future_dpi="$dpi_cm"
- # apply new dpi only if it's changed from the existing
- if [ "$existing_dpi" != "$future_dpi" ]; then
+ # apply new dpi only if it's changed from the existing by more than 0.02
+ abs_diffx100=$( echo "scale=4; ($existing_dpi - $future_dpi) * 100" | bc | tr -d - | awk '{ printf("%.0f",$1); }')
+ if [ "$abs_diffx100" -gt 2 ]; then # really .02
convert -units PixelsPerInch -density "$dpi" "$figure" "$figure"
- echo "File $figure converted from $existing_dpi to $dpi dpi"
+ echo "File $figure PixelsPerCentimeter converted from $existing_dpi to $future_dpi (dpi=$dpi)"
fi
done
rm list
diff --git a/zh/guide/figures/currency_AfterGetOnlineQuotes.png b/zh/guide/figures/currency_AfterGetOnlineQuotes.png
index 9aae9de4..12da0369 100644
Binary files a/zh/guide/figures/currency_AfterGetOnlineQuotes.png and b/zh/guide/figures/currency_AfterGetOnlineQuotes.png differ
diff --git a/zh/guide/figures/currency_BeforeGetOnlineQuotes.png b/zh/guide/figures/currency_BeforeGetOnlineQuotes.png
index 93dc270e..42b34d57 100644
Binary files a/zh/guide/figures/currency_BeforeGetOnlineQuotes.png and b/zh/guide/figures/currency_BeforeGetOnlineQuotes.png differ
diff --git a/zh/guide/figures/currency_addcurr.png b/zh/guide/figures/currency_addcurr.png
index 0bcecc4e..796edbb8 100644
Binary files a/zh/guide/figures/currency_addcurr.png and b/zh/guide/figures/currency_addcurr.png differ
diff --git a/zh/guide/figures/currency_main1.png b/zh/guide/figures/currency_main1.png
index 074d9c3b..a1941bad 100644
Binary files a/zh/guide/figures/currency_main1.png and b/zh/guide/figures/currency_main1.png differ
diff --git a/zh/guide/figures/currency_main2.png b/zh/guide/figures/currency_main2.png
index 493ac390..a677d6ab 100644
Binary files a/zh/guide/figures/currency_main2.png and b/zh/guide/figures/currency_main2.png differ
diff --git a/zh/guide/figures/currency_main3.png b/zh/guide/figures/currency_main3.png
index c80fc313..81d8127f 100644
Binary files a/zh/guide/figures/currency_main3.png and b/zh/guide/figures/currency_main3.png differ
diff --git a/zh/guide/figures/currency_peditor.png b/zh/guide/figures/currency_peditor.png
index c7d86349..892ccc12 100644
Binary files a/zh/guide/figures/currency_peditor.png and b/zh/guide/figures/currency_peditor.png differ
diff --git a/zh/guide/figures/currency_trading_Price_Database_initial.png b/zh/guide/figures/currency_trading_Price_Database_initial.png
index f4ccf8fd..210058cc 100644
Binary files a/zh/guide/figures/currency_trading_Price_Database_initial.png and b/zh/guide/figures/currency_trading_Price_Database_initial.png differ
diff --git a/zh/guide/figures/currency_trading_prices_after_trf_back.png b/zh/guide/figures/currency_trading_prices_after_trf_back.png
index cc0b8e66..c5b08493 100644
Binary files a/zh/guide/figures/currency_trading_prices_after_trf_back.png and b/zh/guide/figures/currency_trading_prices_after_trf_back.png differ
diff --git a/zh/guide/figures/currency_trading_transfer_trans1.png b/zh/guide/figures/currency_trading_transfer_trans1.png
index 23936ef5..7010565d 100644
Binary files a/zh/guide/figures/currency_trading_transfer_trans1.png and b/zh/guide/figures/currency_trading_transfer_trans1.png differ
diff --git a/zh/guide/figures/currency_trading_transfer_trans2.png b/zh/guide/figures/currency_trading_transfer_trans2.png
index 69323388..e2d33e90 100644
Binary files a/zh/guide/figures/currency_trading_transfer_trans2.png and b/zh/guide/figures/currency_trading_transfer_trans2.png differ
diff --git a/zh/guide/figures/currency_trading_trf_back.png b/zh/guide/figures/currency_trading_trf_back.png
index 6cc52949..619bd5d2 100644
Binary files a/zh/guide/figures/currency_trading_trf_back.png and b/zh/guide/figures/currency_trading_trf_back.png differ
Summary of changes:
util/adjust-dpi.sh | 15 ++++++++-------
zh/guide/figures/currency_AfterGetOnlineQuotes.png | Bin 48062 -> 45512 bytes
zh/guide/figures/currency_BeforeGetOnlineQuotes.png | Bin 38338 -> 35978 bytes
zh/guide/figures/currency_addcurr.png | Bin 35411 -> 32711 bytes
zh/guide/figures/currency_main1.png | Bin 69994 -> 67107 bytes
zh/guide/figures/currency_main2.png | Bin 70131 -> 67204 bytes
zh/guide/figures/currency_main3.png | Bin 74032 -> 71714 bytes
zh/guide/figures/currency_peditor.png | Bin 24004 -> 23284 bytes
.../currency_trading_Price_Database_initial.png | Bin 24169 -> 24953 bytes
.../currency_trading_prices_after_trf_back.png | Bin 28993 -> 29715 bytes
.../figures/currency_trading_transfer_trans1.png | Bin 56718 -> 58083 bytes
.../figures/currency_trading_transfer_trans2.png | Bin 63095 -> 64436 bytes
zh/guide/figures/currency_trading_trf_back.png | Bin 62770 -> 64233 bytes
13 files changed, 8 insertions(+), 7 deletions(-)
More information about the gnucash-changes
mailing list