I discovered a bunch of contacts have incorrect wmf_donor data for last_donation_currency
This is set in the Contribution:pre hook so that must be being by-passed - although I have not spotted where...
They seem to be almost all recurring
select original_currency, last_donation_currency, gateway, count(*),SUM(IF(ISNULL(contribution_recur_id),0,1)) as count_recurring,contact_id FROM wmf_contribution_extra e LEFT JOIN civicrm_contribution c ON e.entity_id = c.id LEFT JOIN wmf_donor d ON d.entity_id = c.cont
act_id WHERE receive_date > '2025-09-01' AND original_currency <> last_donation_currency AND receive_date = last_donation_date GROUP BY e.original_curre
+-------------------+------------------------+-----------+----------+-----------------+------------+
| original_currency | last_donation_currency | gateway | count(*) | count_recurring | contact_id |
| AUD | USD | adyen | 14029 | 14029 | 40894327 |
| AUD | USD | gravy | 717 | 717 | 27078924 |
| AUD | USD | paypal | 392 | 392 | 4734817 |
| AUD | USD | paypal_ec | 20418 | 20418 | 4893269 |
| BBD | USD | adyen | 1 | 1 | 49478785 |
| BGN | USD | adyen | 19 | 19 | 68033325 |
| BGN | USD | gravy | 2 | 2 | 67739237 |
| BHD | USD | adyen | 1 | 1 | 932352 |
| BMD | USD | adyen | 4 | 4 | rOMWC1046398460dc |
| BOB | USD | adyen | 1 | 1 | 53681132 |
| BRL | USD | adyen | 1249 | 1249 | 3994198 |
| BRL | USD | dlocal | 2159 | 2159 | 63372165 |
| BRL | USD | gravy | 888 | 888 | 22189361 |
| BZD | USD | adyen | 1 | 1 | 23404724 |
| CAD | USD | adyen | 21261 | 21261 | 9108511 |
| CAD | USD | gravy | 1120 | 1120 | 1484947 |
| CAD | USD | paypal | 484 | 484 | 6018171 |
| CAD | USD | paypal_ec | 17330 | 17330 | 67341374 |
| CHF | USD | adyen | 20 | 20 | 60532536 |
| CHF | USD | paypal_ec | 5 | 5 | 51708023 |
| CLP | USD | adyen | 86 | 86 | 63386350 |
| CLP | USD | dlocal | 744 | 744 | 51121239 |
| CLP | USD | gravy | 195 | 195 | 20911880 |
| CNY | USD | adyen | 12 | 12 | 48565864 |
| COP | USD | adyen | 31 | 31 | 44339735 |
| COP | USD | dlocal | 213 | 213 | 63732283 |
| COP | USD | gravy | 69 | 69 | 68161731 |
| CRC | USD | adyen | 7 | 7 | 59804216 |
| CRC | USD | gravy | 1 | 1 | 68025395 |
| CZK | USD | adyen | 6956 | 6956 | 26294707 |
| CZK | USD | gravy | 109 | 109 | 40604486 |
| CZK | USD | paypal | 10 | 10 | 1212807 |
| CZK | USD | paypal_ec | 682 | 682 | 59536379 |
| DKK | USD | adyen | 3417 | 3417 | 6524559 |
| DKK | USD | gravy | 866 | 866 | 3993597 |
| DKK | USD | paypal | 8 | 8 | 10795246 |
| DKK | USD | paypal_ec | 1217 | 1217 | 31094663 |
| DOP | USD | adyen | 1 | 1 | 65163169 |
| EGP | USD | adyen | 2 | 2 | 63214520 |
| EUR | CAD | benevity | 1 | 0 | 19947808 |
| EUR | USD | adyen | 57228 | 57228 | 14594532 |
| EUR | USD | gravy | 4006 | 4006 | 7953159 |
| EUR | USD | paypal | 1430 | 1430 | 7814385 |
| EUR | USD | paypal_ec | 51983 | 51983 | 67717672 |
| GBP | EUR | benevity | 3 | 0 | 40956573 |
| GBP | USD | adyen | 46617 | 46617 | 25224520 |
| GBP | USD | gravy | 2425 | 2425 | 44848460 |
| GBP | USD | paypal | 1679 | 1679 | 18936946 |
| GBP | USD | paypal_ec | 47521 | 47521 | 49093214 |
| GTQ | USD | adyen | 1 | 1 | 64418148 |
| HKD | USD | adyen | 44 | 44 | 6319279 |
| HKD | USD | gravy | 2 | 2 | 67727989 |
| HKD | USD | paypal | 3 | 3 | rEPTR2074720fdec8 |
| HKD | USD | paypal_ec | 28 | 28 | 26205568 |
| HNL | USD | adyen | 2 | 2 | 63247306 |
| HUF | USD | adyen | 157 | 157 | 59433112 |
| HUF | USD | gravy | 28 | 28 | 41476928 |
| HUF | USD | paypal | 11 | 11 | 1286983 |
| HUF | USD | paypal_ec | 315 | 315 | 20765286 |
| ILS | USD | adyen | 840 | 840 | 7586785 |
| ILS | USD | gravy | 4 | 4 | 56444929 |
| ILS | USD | paypal | 45 | 45 | 7079088 |
| ILS | USD | paypal_ec | 1006 | 1006 | 15646735 |
| INR | USD | adyen | 1 | 1 | 10864532 |
| JMD | USD | adyen | 1 | 1 | 57092020 |
| JOD | USD | adyen | 3 | 3 | 59936247 |
| JPY | USD | adyen | 24001 | 24001 | 34487676 |
| JPY | USD | gravy | 178 | 178 | 67789528 |
| JPY | USD | paypal | 9 | 9 | 6683144 |
| JPY | USD | paypal_ec | 3870 | 3870 | 35535811 |
| KES | USD | adyen | 2 | 2 | 66596131 |
| KHR | USD | adyen | 1 | 1 | 66085369 |
| KZT | USD | adyen | 3 | 3 | 59229402 |
| KZT | USD | gravy | 1 | 1 | 22937350 |
| LKR | USD | adyen | 4 | 4 | 66197825 |
| MAD | USD | adyen | 2 | 2 | 30469953 |
| MKD | USD | adyen | 1 | 1 | 26998538 |
| MXN | USD | adyen | 303 | 303 | 67520074 |
| MXN | USD | dlocal | 1253 | 1253 | 59662360 |
| MXN | USD | gravy | 148 | 148 | 68044058 |
| MXN | USD | paypal | 1 | 1 | 821664 |
| MXN | USD | paypal_ec | 1579 | 1579 | 67524316 |
| MYR | USD | adyen | 373 | 373 | 207723 |
| MYR | USD | gravy | 3 | 3 | 67965219 |
| NIO | USD | adyen | 1 | 1 | 67621256 |
| NOK | USD | adyen | 4308 | 4308 | 31188513 |
| NOK | USD | gravy | 690 | 690 | 41611225 |
| NOK | USD | paypal | 30 | 30 | 11372318 |
| NOK | USD | paypal_ec | 2355 | 2355 | 67718291 |
| NZD | USD | adyen | 4109 | 4109 | 959337 |
| NZD | USD | gravy | 234 | 234 | 52492224 |
| NZD | USD | paypal | 15 | 15 | 189321 |
| NZD | USD | paypal_ec | 1578 | 1578 | 39098131 |
| PAB | USD | adyen | 4 | 4 | 60474248 |
| PEN | USD | adyen | 11 | 11 | 67525721 |
| PEN | USD | dlocal | 60 | 60 | 51111949 |
| PEN | USD | gravy | 31 | 31 | 67539398 |
| PHP | USD | adyen | 6 | 6 | 1023752 |
| PHP | USD | paypal | 1 | 1 | 255905 |
| PHP | USD | paypal_ec | 13 | 13 | 61752916 |
| PKR | USD | adyen | 4 | 4 | 67533903 |
| PKR | USD | gravy | 1 | 1 | 3417009 |
| PLN | USD | adyen | 239 | 239 | 31929903 |
| PLN | USD | gravy | 9 | 9 | 68198202 |
| PLN | USD | paypal | 31 | 31 | 4671981 |
| PLN | USD | paypal_ec | 332 | 332 | 418835 |
| RON | USD | adyen | 427 | 427 | 3988800 |
| RON | USD | gravy | 12 | 12 | 67990494 |
| SEK | USD | adyen | 5833 | 5833 | 1394049 |
| SEK | USD | gravy | 2333 | 2333 | 6843892 |
| SEK | USD | paypal | 114 | 114 | 6417013 |
| SEK | USD | paypal_ec | 2755 | 2755 | 3699619 |
| SGD | USD | adyen | 96 | 96 | 13028921 |
| SGD | USD | gravy | 8 | 8 | 66280489 |
| THB | USD | adyen | 9 | 9 | 53187759 |
| THB | USD | gravy | 1 | 1 | 10484961 |
| THB | USD | paypal | 1 | 1 | 2009426 |
| THB | USD | paypal_ec | 11 | 11 | 67340410 |
| TTD | USD | adyen | 1 | 1 | 1917872 |
| TWD | USD | adyen | 26 | 26 | 60921583 |
| TWD | USD | gravy | 1 | 1 | 58726137 |
| TWD | USD | paypal | 1 | 1 | 4774453 |
| TWD | USD | paypal_ec | 10 | 10 | 10243526 |
| USD | AUD | gravy | 13 | 0 | 8509266 |
| USD | CAD | gravy | 14 | 1 | 62210011 |
| USD | GBP | gravy | 16 | 1 | 9695875 |
| UYU | USD | adyen | 67 | 67 | 63732368 |
| UYU | USD | dlocal | 249 | 249 | 63735602 |
| UYU | USD | gravy | 72 | 72 | 20659147 |
| XCD | USD | adyen | 2 | 2 | 47594149 |
| ZAR | USD | adyen | 207 | 207 | 41833019 |
| ZAR | USD | dlocal | 443 | 443 | 7585794 |
| ZAR | USD | gravy | 51 | 51 | 67830186 |