<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div> Sherlock,</div><div><br></div>What’s this part for? It seems irrelevant to Chang Wang’s example as that doesn’t use trading accounts:<div><div>-</div><div>-       ;; However skip splits in trading accounts as these counterbalance</div><div>-       ;; the actual value and share amounts back to zero</div><div>-       ((eqv? (xaccAccountGetType (xaccSplitGetAccount (car comm-splits)))</div><div>-              ACCT-TYPE-TRADING)</div><div>-        (loop (cdr comm-splits)</div><div>-              sumlist))</div><div> </div><div>I guess you did a bisect to arrive at the 2019 change date. There were 8 changes to gnc-commodity-utils.scm that day. Which one was the culprit?</div><div><br></div><div>Regards,</div><div>John Ralls</div><div><br></div><div><br><blockquote type="cite"><div>On Aug 23, 2025, at 20:18, Sherlock Holmes <sh025622@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div>

  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <div><p>I concur.</p><p>There are significant differences in the implementation between
      gnc:get-exchange-totals and gnc:get-exchange-cost-totals that I
      believe are the root cause of the issue.  These differences appear
      to date back to May 3, 2019.    As a WAG, I modified
      gnc:get-exchange-cost-totals to match gnc:get-exchange-totals in
      the attached patch and the issue you've raised appears to be
      resolved.  I have not done any further testing,</p><p>Regards,</p><p>Sherlock</p><p><br>
    </p>
    <div class="moz-cite-prefix">On 8/23/25 2:20 PM, Chang Wang wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAGyuYwAVUyknUp=af6_31Ga8+qPh5g7xjREV+NK6iy5tmn_wYw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Thanks for the reminder. I'll post to the user list in the
          future.</div>
        <div>However, in the above example, there is no gain or loss due
          to currency exchange as the exchange rates are set to 1 so no
          currency gain/loss needs to be booked. And the price source is
          set to be Last up through report date instead of average cost.
          Therefore, I think these are different issues.</div>
      </div>
      <br>
      <div class="gmail_quote gmail_quote_container">
        <div dir="ltr" class="gmail_attr">On Sat, Aug 23, 2025 at
          3:51 PM John Ralls <<a href="mailto:jralls@ceridwen.us" moz-do-not-send="true" class="moz-txt-link-freetext">jralls@ceridwen.us</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Oddly
          I just told somebody on IRC the same answer: <a href="https://bugs.gnucash.org/show_bug.cgi?id=797796" rel="noreferrer" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.gnucash.org/show_bug.cgi?id=797796</a><br>
          <br>
          Unless you’re willing to submit a PR, this is a user-list
          topic, so in the future please use gnucash-user instead of
          gnucash-devel.<br>
          <br>
          Regards,<br>
          John Ralls<br>
          <br>
          > On Aug 23, 2025, at 1:43 PM, Chang Wang <<a href="mailto:wangchang327@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">wangchang327@gmail.com</a>>
          wrote:<br>
          > <br>
          > Hi all,<br>
          > I noticed an issue with the Trial Balance report when
          using stock trading and multiple currencies. Even when
          transactions are balanced, the Trial Balance report appears to
          break due to incorrect calculation of unrealized gains.<br>
          > <br>
          > I've attached an uncompressed minimal example to
          illustrate the problem.<br>
          > <br>
          > Steps to reproduce:<br>
          > Open the attached book.<br>
          > Generate a Trial Balance report with reporting currency
          set to USD, price source set to Last up through report date,
          and enable Show Foreign Currencies and Exchange Rates.<br>
          > <br>
          > Observed behavior:<br>
          > The report shows an Unrealized Gain of $20,800, which is
          incorrect.<br>
          > <br>
          > Expected behavior:<br>
          > The Unrealized Gain should be $200.<br>
          > <br>
          > Explanation:<br>
          > The example contains three transactions:<br>
          > 1) 08/02/2025 - Buy one stock for 10,200 JPY.<br>
          > 2) 08/03/2025 - Exchange 100,000 JPY for 100,000 USD.<br>
          > 3) 08/04/2025 - Buy one stock for 10,400 JPY.<br>
          > <br>
          > The JPY/USD rate is fixed at 1 on all days, so there
          should be no realized or unrealized currency gains. Stock
          prices are set at 10X00 JPY on 08/0X/2025, where X = 1, 2, 3,
          4.<br>
          > <br>
          > Therefore, in USD reporting currency, the Trial Balance
          should show unrealized gains as:<br>
          > (10,400 * 2) - 10,200 - 10,400 = 200 JPY = 200 USD<br>
          > <br>
          > Notably, the Balance Sheet report does display the
          correct unrealized gain. And if transaction 3) or transaction
          2) is removed, the Trial Balance turns out to be correct.<br>
          > <br>
          > I'm not familiar with Scheme, so I wasn't able to locate
          the problem in the source code. I also wasn't able to file a
          bug on Bugzilla, since the registration function appears to be
          broken.<br>
          > <br>
          > Thanks for your attention,<br>
          > Chang<br>
          >
          <tb.gnucash>_______________________________________________</blockquote>
      </div>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
gnucash-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gnucash-devel@gnucash.org">gnucash-devel@gnucash.org</a>
<a class="moz-txt-link-freetext" href="https://lists.gnucash.org/mailman/listinfo/gnucash-devel">https://lists.gnucash.org/mailman/listinfo/gnucash-devel</a>
</pre>
    </blockquote>
  </div>

<span id="cid:632AE56A-9961-4768-948E-F974F6A6A20C"><commodity-utilities.scm.patch></span>_______________________________________________<br>gnucash-devel mailing list<br>gnucash-devel@gnucash.org<br>https://lists.gnucash.org/mailman/listinfo/gnucash-devel<br></div></blockquote></div><br></div></body></html>