brightway-lca / brightway2-analyzer

BSD 3-Clause "New" or "Revised" License
7 stars 13 forks source link

multi_traverse_tagged_databases does not yield same result as simple LCA when activity with negative production exchange is included #29

Open Gilla-DC opened 11 months ago

Gilla-DC commented 11 months ago

Hi, I am using the multi_traverse_tagged_databases function to generate a more detailed breakdown of LCA results, but noticed that the cumulative impact (calculated on the result of multi_traverse_tagged_databases with get_multi_cum_impact) of the resulting graph did not equal the impact score of the LCA function applied to the same reference flow.

After some analysis, I found out that the problem is linked to the occurrence of activities that have a production exchange of "-1" (i.e. a waste treatment record from the ecoinvent database). Changing the production exchange into "1" solves the discrepancy betwee both ways of calculating the impact.

Searching online brought me to this thread about the use of negative production exchanges in Brightway vs Simapro: https://stackoverflow.com/questions/68133565/negative-production-for-end-of-life-treatment-process

Now my question is: which calculation correctly processes the negative production exchange: the standard LCA function or the multi_traverse_tagged_databases function? Or on other words: is there a bug in the code, or should I adapt negative production exchanges in background records before using them in Brightway? If the latter is the case, then why can't I find any guidance on this issue anywhere in the Brightway documentation, as it is a problem any user of "waste treatment" records of Ecoinvent will experience, without knowing?

Thank you for looking into this!