Sherlock,

What’s this part for? It seems irrelevant to Chang Wang’s example as that 
doesn’t use trading accounts:
-
-       ;; However skip splits in trading accounts as these counterbalance
-       ;; the actual value and share amounts back to zero
-       ((eqv? (xaccAccountGetType (xaccSplitGetAccount (car comm-splits)))
-              ACCT-TYPE-TRADING)
-        (loop (cdr comm-splits)
-              sumlist))
 
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?

Regards,
John Ralls


> On Aug 23, 2025, at 20:18, Sherlock Holmes <[email protected]> wrote:
> 
> I concur.
> 
> 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,
> 
> Regards,
> 
> Sherlock
> 
> 
> 
> On 8/23/25 2:20 PM, Chang Wang wrote:
>> Thanks for the reminder. I'll post to the user list in the future.
>> 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.
>> 
>> On Sat, Aug 23, 2025 at 3:51 PM John Ralls <[email protected] 
>> <mailto:[email protected]>> wrote:
>>> Oddly I just told somebody on IRC the same answer: 
>>> https://bugs.gnucash.org/show_bug.cgi?id=797796
>>> 
>>> 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.
>>> 
>>> Regards,
>>> John Ralls
>>> 
>>> > On Aug 23, 2025, at 1:43 PM, Chang Wang <[email protected] 
>>> > <mailto:[email protected]>> wrote:
>>> > 
>>> > Hi all,
>>> > 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.
>>> > 
>>> > I've attached an uncompressed minimal example to illustrate the problem.
>>> > 
>>> > Steps to reproduce:
>>> > Open the attached book.
>>> > 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.
>>> > 
>>> > Observed behavior:
>>> > The report shows an Unrealized Gain of $20,800, which is incorrect.
>>> > 
>>> > Expected behavior:
>>> > The Unrealized Gain should be $200.
>>> > 
>>> > Explanation:
>>> > The example contains three transactions:
>>> > 1) 08/02/2025 - Buy one stock for 10,200 JPY.
>>> > 2) 08/03/2025 - Exchange 100,000 JPY for 100,000 USD.
>>> > 3) 08/04/2025 - Buy one stock for 10,400 JPY.
>>> > 
>>> > 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.
>>> > 
>>> > Therefore, in USD reporting currency, the Trial Balance should show 
>>> > unrealized gains as:
>>> > (10,400 * 2) - 10,200 - 10,400 = 200 JPY = 200 USD
>>> > 
>>> > 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.
>>> > 
>>> > 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.
>>> > 
>>> > Thanks for your attention,
>>> > Chang
>>> > <tb.gnucash>_______________________________________________
>> 
>> _______________________________________________
>> gnucash-devel mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> <commodity-utilities.scm.patch>_______________________________________________
> gnucash-devel mailing list
> [email protected]
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to