Images with difference sizes on Public repository

Hello,

I’m having trouble understanding, why images that are built at the same time for the same architecture have different file sizes?

 |                                      | 180a5fa92eaf | yes    | Ubuntu groovy amd64 (20201213_07:42)         | x86_64       | CONTAINER       | 119.20MB  | Dec 13, 2020 at 12:00am (UTC) |
 |                                      | b11b6f68fb6d | yes    | Ubuntu groovy amd64 (20201213_07:42)         | x86_64       | CONTAINER       | 102.82MB  | Dec 13, 2020 at 12:00am (UTC) |

What accounts for those size differences?

EDIT: Regarding the auto-update feature, out of pure curiosity, how does LXD keep track, which newer image to download?

Images are published as both squashfs and tar.xz.
Recent LXD will favor the slightly larger but much easier to diff and decompress squashfs variant, older LXDs will take the tar.xz one.

I believe lxc image show will show you the file type difference.