It is my assumption that compression is used in the APK you download from the store. Perhaps a separate layer of compression is used by the app builder before creating the APK, for the purpose of reducing the transfer file size even further. As lots of people are paying for data transfers, it makes sense to use whatever compression is available. This may lead to much larger install sizes, but should not affect your data transfer costs.
To prevent issues like this, I have set the Android version (10) on my phone to download only when connected to WiFi. This works for me, because I don't care about playing games, or watch video or shoot pictures or visit internet sites. My requirements would be met with a semi-smart phone that is capable of WhatsApp, Skype, Teams and Google Maps. Maybe 2 times a year I have a need to use the camera on my phone. On occasion I do use WiFi analyzer software, to see if there are problems with WiFi, which channels are free (enough) etc. But that is my use case for it. So the option 'Only download on WiFi' is perfectly usable for me and as a bonus, not waste any more money on such devices than I have to.
It might be a good setting for yourself as well, if you have a plan with (severe) limitations for your phone.
Also, file size of the application to download is not the same as the file size of the application when stored. The file system of any operating system reports only the size when stored. File systems divide the storage capacity up into certain size of blocks and it reserves enough of those blocks to store the application. The file system will also try to fill these blocks with file data as efficiently as possible, but you should expect sometimes big differences there. Block sizes that are large improve file read/write access, but at the cost of available storage space. Block sizes that are small are great for storage space, but your file read/write access suffers greatly.
Updates for all the apps on my phone do appear to report the correct file size. My phone is a Huawei P20 Pro and it uses EMUI as a shell around Android. Perhaps the manufacturer of your phone uses their shell around Android which might have a problem reporting the correct file size. The EMUI shell I never found so intrusive as other shells on different brands of phones/tablets I have seen. But that might not be the same for you.