gnucash-docs stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Mon Jul 13 15:01:35 EDT 2026


Updated	 via  https://github.com/Gnucash/gnucash-docs/commit/a58f731a (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/3449ddfd (commit)
	 via  https://github.com/Gnucash/gnucash-docs/commit/671d92e5 (commit)
	from  https://github.com/Gnucash/gnucash-docs/commit/7829a8d6 (commit)



commit a58f731a217287c600911180631140bb57169da8
Merge: 7829a8d6 3449ddfd
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Jul 13 11:49:48 2026 -0700

    Merge Brent McBride's 'investment-lots-cagr-docs' into stable.

diff --cc C/manual/ch_Reports.docbook
index 18d3494c,25b53858..8f109eab
--- a/C/manual/ch_Reports.docbook
+++ b/C/manual/ch_Reports.docbook
@@@ -2492,10 -2554,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 -2569,10 +2574,15 @@@
                        <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>

commit 3449ddfd1aacedb335569ff49a735811083835b8
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Sun Jul 12 22:24:23 2026 -0700

    Fix Investment Lots figure sizing in PDF output
    
    The FO imagedata used depth=450mm, which the stylesheet maps to
    fo:external-graphic height=450mm. Since 450mm exceeds the 297mm A4 page
    height, FOP cannot place the viewport and the image is dropped. Drop the
    oversized vertical constraint and keep width=160mm align=center, which
    emits height=auto with content scaled to fit.

diff --git a/C/guide/ch_reports.docbook b/C/guide/ch_reports.docbook
index 6454e7a0..e0b7c664 100644
--- a/C/guide/ch_reports.docbook
+++ b/C/guide/ch_reports.docbook
@@ -342,7 +342,7 @@
               <imageobject role="fo">
                 <imagedata fileref="figures/Report_Investment_Lots.png"
                             srccredit="Brent McBride"
-                            width="160mm" depth="450mm" align="center"/>
+                            width="160mm" align="center"/>
               </imageobject>
             </mediaobject>
           </screenshot>
diff --git a/C/manual/ch_Reports.docbook b/C/manual/ch_Reports.docbook
index 2c4b5c60..25b53858 100644
--- a/C/manual/ch_Reports.docbook
+++ b/C/manual/ch_Reports.docbook
@@ -2113,7 +2113,7 @@ Income (type INCOME)
                 <imageobject role="fo">
                   <imagedata fileref="figures/Report_Investment_Lots.png"
                              srccredit="Brent McBride"
-                             width="160mm" depth="450mm" align="center"/>
+                             width="160mm" align="center"/>
                 </imageobject>
               </mediaobject>
             </screenshot>

commit 671d92e540d0b875eb9b8749c3cb7d6e74dece88
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Sun Jul 5 14:47:03 2026 -0700

    Document CAGR columns in Investment Lots report
    
    Add Realized and Unrealized CAGR documentation to the Investment Lots report in the Help Manual and Tutorial & Concepts Guide, refresh the report screenshot to show the CAGR columns, and add a sample data file that reproduces the figure.

diff --git a/C/guide/ch_reports.docbook b/C/guide/ch_reports.docbook
index ee3b893b..6454e7a0 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" depth="450mm" 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..2c4b5c60 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" depth="450mm" 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>
 
@@ -2689,6 +2751,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/data/C/manual/investment_lots.gnucash b/data/C/manual/investment_lots.gnucash
new file mode 100644
index 00000000..1f9c3c7f
--- /dev/null
+++ b/data/C/manual/investment_lots.gnucash
@@ -0,0 +1,740 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<gnc-v2
+     xmlns:gnc="http://www.gnucash.org/XML/gnc"
+     xmlns:act="http://www.gnucash.org/XML/act"
+     xmlns:book="http://www.gnucash.org/XML/book"
+     xmlns:cd="http://www.gnucash.org/XML/cd"
+     xmlns:cmdty="http://www.gnucash.org/XML/cmdty"
+     xmlns:price="http://www.gnucash.org/XML/price"
+     xmlns:slot="http://www.gnucash.org/XML/slot"
+     xmlns:split="http://www.gnucash.org/XML/split"
+     xmlns:sx="http://www.gnucash.org/XML/sx"
+     xmlns:trn="http://www.gnucash.org/XML/trn"
+     xmlns:ts="http://www.gnucash.org/XML/ts"
+     xmlns:fs="http://www.gnucash.org/XML/fs"
+     xmlns:bgt="http://www.gnucash.org/XML/bgt"
+     xmlns:recurrence="http://www.gnucash.org/XML/recurrence"
+     xmlns:lot="http://www.gnucash.org/XML/lot"
+     xmlns:addr="http://www.gnucash.org/XML/addr"
+     xmlns:owner="http://www.gnucash.org/XML/owner"
+     xmlns:billterm="http://www.gnucash.org/XML/billterm"
+     xmlns:bt-days="http://www.gnucash.org/XML/bt-days"
+     xmlns:bt-prox="http://www.gnucash.org/XML/bt-prox"
+     xmlns:cust="http://www.gnucash.org/XML/cust"
+     xmlns:employee="http://www.gnucash.org/XML/employee"
+     xmlns:entry="http://www.gnucash.org/XML/entry"
+     xmlns:invoice="http://www.gnucash.org/XML/invoice"
+     xmlns:job="http://www.gnucash.org/XML/job"
+     xmlns:order="http://www.gnucash.org/XML/order"
+     xmlns:taxtable="http://www.gnucash.org/XML/taxtable"
+     xmlns:tte="http://www.gnucash.org/XML/tte"
+     xmlns:vendor="http://www.gnucash.org/XML/vendor">
+<gnc:count-data cd:type="book">1</gnc:count-data>
+<gnc:book version="2.0.0">
+<book:id type="guid">f0000000000000000000000000000001</book:id>
+<gnc:count-data cd:type="commodity">1</gnc:count-data>
+<gnc:count-data cd:type="account">6</gnc:count-data>
+<gnc:count-data cd:type="transaction">14</gnc:count-data>
+<gnc:commodity version="2.0.0">
+  <cmdty:space>NYSE</cmdty:space>
+  <cmdty:id>RIO</cmdty:id>
+  <cmdty:name>Rio Tinto</cmdty:name>
+  <cmdty:fraction>10000</cmdty:fraction>
+</gnc:commodity>
+<gnc:commodity version="2.0.0">
+  <cmdty:space>CURRENCY</cmdty:space>
+  <cmdty:id>USD</cmdty:id>
+  <cmdty:get_quotes/>
+  <cmdty:quote_source>currency</cmdty:quote_source>
+  <cmdty:quote_tz/>
+</gnc:commodity>
+<gnc:account version="2.0.0">
+  <act:name>Root Account</act:name>
+  <act:id type="guid">aa000000000000000000000000000001</act:id>
+  <act:type>ROOT</act:type>
+  <act:commodity>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Broker</act:name>
+  <act:id type="guid">aa000000000000000000000000000002</act:id>
+  <act:type>ASSET</act:type>
+  <act:commodity>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Broker</act:description>
+  <act:slots>
+    <slot>
+      <slot:key>placeholder</slot:key>
+      <slot:value type="string">true</slot:value>
+    </slot>
+  </act:slots>
+  <act:parent type="guid">aa000000000000000000000000000001</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>RIO</act:name>
+  <act:id type="guid">aa000000000000000000000000000003</act:id>
+  <act:type>STOCK</act:type>
+  <act:commodity>
+    <cmdty:space>NYSE</cmdty:space>
+    <cmdty:id>RIO</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>10000</act:commodity-scu>
+  <act:description>Rio Tinto</act:description>
+  <act:parent type="guid">aa000000000000000000000000000002</act:parent>
+  <act:lots>
+    <gnc:lot version="2.0.0">
+      <lot:id type="guid">10000000000000000000000000000001</lot:id>
+      <lot:slots>
+        <slot>
+          <slot:key>title</slot:key>
+          <slot:value type="string">Lot 0</slot:value>
+        </slot>
+      </lot:slots>
+    </gnc:lot>
+    <gnc:lot version="2.0.0">
+      <lot:id type="guid">10000000000000000000000000000000</lot:id>
+      <lot:slots>
+        <slot>
+          <slot:key>title</slot:key>
+          <slot:value type="string">Lot 1</slot:value>
+        </slot>
+      </lot:slots>
+    </gnc:lot>
+  </act:lots>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Cash</act:name>
+  <act:id type="guid">aa000000000000000000000000000004</act:id>
+  <act:type>BANK</act:type>
+  <act:commodity>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Cash</act:description>
+  <act:parent type="guid">aa000000000000000000000000000001</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Realized Gains</act:name>
+  <act:id type="guid">aa000000000000000000000000000005</act:id>
+  <act:type>INCOME</act:type>
+  <act:commodity>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Realized Gains</act:description>
+  <act:parent type="guid">aa000000000000000000000000000001</act:parent>
+</gnc:account>
+<gnc:account version="2.0.0">
+  <act:name>Opening Balances</act:name>
+  <act:id type="guid">aa000000000000000000000000000006</act:id>
+  <act:type>EQUITY</act:type>
+  <act:commodity>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </act:commodity>
+  <act:commodity-scu>100</act:commodity-scu>
+  <act:description>Opening Balances</act:description>
+  <act:parent type="guid">aa000000000000000000000000000001</act:parent>
+</gnc:account>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000009</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2020-07-03 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2020-07-03 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Opening Balance</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2020-07-03</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000001</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>-500000/100</split:value>
+      <split:quantity>-500000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000006</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000002</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>500000/100</split:value>
+      <split:quantity>500000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000001</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-02-01 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-02-01 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Buy RIO</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-02-01</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000003</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Buy</split:action>
+      <split:value>100000/100</split:value>
+      <split:quantity>100000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000001</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000004</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>-100000/100</split:value>
+      <split:quantity>-100000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000002</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-02-03 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-02-03 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-02-03</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000005</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-83000/100</split:value>
+      <split:quantity>-50000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000001</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000006</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>83000/100</split:value>
+      <split:quantity>83000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000003</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-02-04 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-02-04 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-02-04</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000007</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-83000/100</split:value>
+      <split:quantity>-50000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000001</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000008</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>83000/100</split:value>
+      <split:quantity>83000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000004</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-02-03 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-02-03 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Realized Gain/Loss</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-02-03</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000009</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>33000/100</split:value>
+      <split:quantity>0/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000001</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000a</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>-33000/100</split:value>
+      <split:quantity>-33000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000005</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000005</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-02-04 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-02-04 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Realized Gain/Loss</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-02-04</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000b</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>33000/100</split:value>
+      <split:quantity>0/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000001</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000c</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>-33000/100</split:value>
+      <split:quantity>-33000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000005</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000006</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-02-02 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-02-02 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Buy RIO</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-02-02</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000d</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Buy</split:action>
+      <split:value>144000/100</split:value>
+      <split:quantity>120000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000000</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000e</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>-144000/100</split:value>
+      <split:quantity>-144000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000007</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-10-08 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-10-08 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-10-08</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000000f</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-108000/100</split:value>
+      <split:quantity>-60000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000000</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000010</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>108000/100</split:value>
+      <split:quantity>108000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b0000000000000000000000000000008</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2023-10-08 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2023-10-08 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Realized Gain/Loss</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2023-10-08</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000011</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>36000/100</split:value>
+      <split:quantity>0/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+      <split:lot type="guid">10000000000000000000000000000000</split:lot>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000012</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:memo>Realized Gain/Loss</split:memo>
+      <split:value>-36000/100</split:value>
+      <split:quantity>-36000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000005</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b000000000000000000000000000000a</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-11-01 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-11-01 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Buy RIO (unscrubbed)</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-11-01</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000013</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Buy</split:action>
+      <split:value>30000/100</split:value>
+      <split:quantity>20000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000014</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>-30000/100</split:value>
+      <split:quantity>-30000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b000000000000000000000000000000b</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-11-02 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-11-02 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO (unscrubbed)</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-11-02</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000015</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-30000/100</split:value>
+      <split:quantity>-20000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000016</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>30000/100</split:value>
+      <split:quantity>30000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b000000000000000000000000000000c</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-11-03 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-11-03 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Buy RIO (unscrubbed)</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-11-03</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000017</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Buy</split:action>
+      <split:value>45000/100</split:value>
+      <split:quantity>30000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000018</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>-45000/100</split:value>
+      <split:quantity>-45000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b000000000000000000000000000000d</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-11-04 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-11-04 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO (unscrubbed)</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-11-04</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c0000000000000000000000000000019</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-15000/100</split:value>
+      <split:quantity>-10000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000001a</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>15000/100</split:value>
+      <split:quantity>15000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:transaction version="2.0.0">
+  <trn:id type="guid">b000000000000000000000000000000e</trn:id>
+  <trn:currency>
+    <cmdty:space>CURRENCY</cmdty:space>
+    <cmdty:id>USD</cmdty:id>
+  </trn:currency>
+  <trn:date-posted>
+    <ts:date>2022-11-07 12:00:00 +0000</ts:date>
+  </trn:date-posted>
+  <trn:date-entered>
+    <ts:date>2022-11-07 12:00:00 +0000</ts:date>
+  </trn:date-entered>
+  <trn:description>Sell RIO (unscrubbed)</trn:description>
+  <trn:slots>
+    <slot>
+      <slot:key>date-posted</slot:key>
+      <slot:value type="gdate">
+        <gdate>2022-11-07</gdate>
+      </slot:value>
+    </slot>
+  </trn:slots>
+  <trn:splits>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000001b</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:action>Sell</split:action>
+      <split:value>-30000/100</split:value>
+      <split:quantity>-20000/10000</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000003</split:account>
+    </trn:split>
+    <trn:split>
+      <split:id type="guid">c000000000000000000000000000001c</split:id>
+      <split:reconciled-state>n</split:reconciled-state>
+      <split:value>30000/100</split:value>
+      <split:quantity>30000/100</split:quantity>
+      <split:account type="guid">aa000000000000000000000000000004</split:account>
+    </trn:split>
+  </trn:splits>
+</gnc:transaction>
+<gnc:pricedb version="1">
+  <price>
+    <price:id type="guid">d0000000000000000000000000000001</price:id>
+    <price:commodity>
+      <cmdty:space>NYSE</cmdty:space>
+      <cmdty:id>RIO</cmdty:id>
+    </price:commodity>
+    <price:currency>
+      <cmdty:space>CURRENCY</cmdty:space>
+      <cmdty:id>USD</cmdty:id>
+    </price:currency>
+    <price:time>
+      <ts:date>2023-10-08 12:00:00 +0000</ts:date>
+    </price:time>
+    <price:source>user:price</price:source>
+    <price:type>last</price:type>
+    <price:value>18000/100</price:value>
+  </price>
+  <price>
+    <price:id type="guid">d0000000000000000000000000000002</price:id>
+    <price:commodity>
+      <cmdty:space>NYSE</cmdty:space>
+      <cmdty:id>RIO</cmdty:id>
+    </price:commodity>
+    <price:currency>
+      <cmdty:space>CURRENCY</cmdty:space>
+      <cmdty:id>USD</cmdty:id>
+    </price:currency>
+    <price:time>
+      <ts:date>2023-11-07 12:00:00 +0000</ts:date>
+    </price:time>
+    <price:source>user:price</price:source>
+    <price:type>last</price:type>
+    <price:value>15000/100</price:value>
+  </price>
+</gnc:pricedb>
+</gnc:book>
+</gnc-v2>



Summary of changes:
 C/guide/ch_reports.docbook                  |  11 +-
 C/guide/figures/Report_Investment_Lots.png  | Bin 110648 -> 90390 bytes
 C/manual/ch_Reports.docbook                 | 124 ++++-
 C/manual/figures/Report_Investment_Lots.png | Bin 110648 -> 90390 bytes
 data/C/manual/investment_lots.gnucash       | 740 ++++++++++++++++++++++++++++
 5 files changed, 858 insertions(+), 17 deletions(-)
 create mode 100644 data/C/manual/investment_lots.gnucash



More information about the gnucash-changes mailing list