Wouldn’t the “within” keep options be useful? E.g. --keep-within-hourly 14d --keep-within-weekly 1m --keep-within-monthly 1y.
Please run that but with the --dry-run flag so that you can determine whether or not the policy is working as intended. I’m not sure if you need to increment each of the options by one (e.g. 15d instead of 14d, and so on), I know you need to do that with the non-within options. But the dry-run should let you know, as long as you have enough snapshots for the last 15 or more days to verify.