ourresearch / journalsdb

Open database of scholarly journals
https://journalsdb.org
MIT License
10 stars 0 forks source link

GBP APC prices #24

Closed sckott closed 2 years ago

sckott commented 2 years ago

Related to #23 - curious about when JournalsDB API has a USD APC price why we don't have a GBP price too for that journal. That is, why can't we just do the conversion from USD to GBP? I think I can see reasoning for subscription pricing being in certain currencies, but I imagine anyone can pay an APC from any country, yes?

Still learning 😬

caseydm commented 2 years ago

Great question! We capture the actual prices shown by the publisher. Sometimes they list several currencies, and the exchange rate is fairly close, like this: https://github.com/ourresearch/journalsdb/blob/main/ingest/apc/files/taylor_apc_final.csv. But regardless of exchange rate fluctuations, they are setting the price for the year for that country/region. Other times they are just setting a USD price and like you said, no matter where you are you are you pay in USD and need to convert.

My opinion is it's better for a front-end process to convert the currency on the fly rather than storing it in the database. So if the only APC price for a journal is USD and I convert and set a GBP price in the database on Jan 15th, that GBP price is slightly different on July 1st and no longer accurate. But if the publisher sets the GBP price as 3100 then it is still 3100 no matter the date of that year, so it is recorded in the database.

sckott commented 2 years ago

Thanks! I agree, would make the most sense for the Unsub frontend to do the currency conversion.

If we did the conversion on the Unsub frontend, do you think it makes the most sense to do the conversion using the latest conversion rate when the reader is on the Unsub page looking at APCs or use a conversion rate from the beginning of the year (e.g., Jan 15th)?

caseydm commented 2 years ago

I would use the latest conversion rate but have the rate update once per day, so the APC is not changing each time you refresh the page.