rgriebl / brickstore

An offline BrickLink inventory management tool.
https://www.brickstore.dev/
GNU General Public License v3.0
119 stars 26 forks source link

Priceguide data is different from BL #675

Open xaraxarax opened 1 year ago

xaraxarax commented 1 year ago

Hello,

Unfortunately, I don't understand what exactly is happening here, but the result is not as i expected. As an example 1246-1. The average price for the last 6 months sales an BL is €9.99, only sold 2 in the last six monthx, so far so easy. It doesn't matter which settings I choose for the tax (and it shouldn't matter here either), it turns out to be €9.367.

Can you please help me to understand this, or is this a BL issue?

Thanks and regards, Martin

rgriebl commented 1 year ago

Sorry for the late reply - this one slipped through the cracks. At least it'll be a longer reply, as I want to forward this bug-report to the BrickLink devs.

I did however finally figure out where a lot of these discrepancies come from. For 1246-1 all of the BL web pages, the old PG download mechanism (https://www.bricklink.com/priceGuideSummary.asp) as well as the new one (AffilateV1) agree on a max. price of USD 9.9009

AffiliateV1, with currency_code=USD

PG for S 1246-1 in (Not Applicable)  |  VAT: BrickLink::VatType::EU  |  retriever: Batched Affiliate API
PastSix New:        9 (      2)  6.8000   8.3505   7.4891   9.9009
PastSix Used:       0 (      0)  0.0000   0.0000   0.0000   0.0000
Current New:       14 (      8)  9.9900  13.8316  15.0941  22.0000
Current Used:       8 (      7)  3.7045   4.2432   4.3825   5.3580

The problem here is that this is the USD price at the date of sale (yours was in Oct 22, so the USD/EUR rate was >1), but BrickStore is converting it back to EUR using the current exchange rate (which is < 1 right now). The reason why BrickStore is downloading the PG data in USD is both for historic reasons (the old mechanism only allowed for USD) and also for practical reasons: the idea is to cache the data once, regardless of the document's currency settings.

That being said, I can request a specific currency directly from BrickLink using the new AffiliateV1 API, so I tried to request EUR: this showed the same problem. Now BL is converting from USD to EUR (instead of BrickStore) using the current exchange rate (which is slightly different: BL uses xe.com, while BrickStore uses the rates from the ECB)

AffiliateV1, with currency_code=EUR

PG for S 1246-1 in (Not Applicable)  |  VAT: BrickLink::VatType::EU  |  retriever: Batched Affiliate API
PastSix New:        9 (      2)  6.3329   7.7769   6.9747   9.2208
PastSix Used:       0 (      0)  0.0000   0.0000   0.0000   0.0000
Current New:       14 (      8)  9.3038  12.8815  14.0573  20.4889
Current Used:       8 (      7)  3.4500   3.9517   4.0815   4.9900