There's something about prune I must not understand

This is from a Windows environment running Restic 0.18.
I run a weekly prune command on my repository to delete old snapshots and hopefully keep my repository as small as possible. I use this command to do that:
restic.exe forget --keep-within-daily 7d --keep-within-weekly 1m --keep-within-monthly 6m --prune >> $outlog 2>&1

Here’s a snippet from my most recent forget/prune command run on 7/20:
keep 5 snapshots:
ID Time Host Tags Reasons Paths Size

ce222bfe 2024-09-10 14:21:14 HessNet-HS oldest daily within 7d D:\ServerFolders\Documents 11.609 GiB
oldest weekly within 1m
oldest monthly within 6m
2f752e9f 2024-09-10 14:32:08 HessNet-HS daily within 7d D:\ServerFolders\Documents 11.609 GiB
e0b8fa3c 2024-09-11 02:00:03 HessNet-HS daily within 7d D:\ServerFolders\Documents 11.609 GiB
bc8b9266 2024-09-12 02:00:04 HessNet-HS daily within 7d D:\ServerFolders\Documents 11.609 GiB
318bd7a7 2024-09-13 02:00:02 HessNet-HS daily within 7d D:\ServerFolders\Documents 11.609 GiB
weekly within 1m
monthly within 6m

Why would forget be keeping snapshots from last September? It seems like they should be deleted because they’re outside my 6 month window. Am I missing something?

" If there are not enough snapshots to keep one for each duration related --keep-{within-,}* option, the oldest snapshot is kept additionally and marked as oldest in the output (e.g. oldest hourly snapshot )."

Potentially that?

Thanks for the explanation. That’s logical.

You may check snapshots’ paths. By default restic forget groups snapshots by host+paths. If you change backup directory list, restic forget will process these snapshots as separated groups and apply –keep-within* to every group.

Also you may run restic forget … –group-by=host –dry-run and check the difference.