Automation results in duplicate contact scoring - how to fix?

I’m trying to create simple counters using scoring. Our contacts have a number of date-based custom fields that are populated based on interactions with our product - ‘Last Booked Session Date’, ‘Last Completed Session Date’, ‘Last Positive Session Date’, which are consistently updated to reflect the latest relevant interaction.

Contacts are added to ActiveCampaign via the API after they book a session, with the field ‘Last Booked Session Date’ populated and the tag ‘Booked Session’ added. The other fields are initially empty. When they’re populated at varying later points in time, the contact is tagged via an automation (‘Completed Session’, ‘Positive Session’, etc.) trigged by the field changes.

Contacts are scored based on the tags - ‘If Tag exists [Booked Session] add 1 point’ - to start the counters for how many sessions they’ve booked, how many they’ve completed, how many have been positive.

To incrementally adjust the scores, my approach was to create automations triggered by the field changes that would add a point to the relevant counter every time that field was updated. There’s no issues with the ‘Booked Session’ field because the contact is added with that field/tag existing so the initial scoring rule runs but the automation doesn’t run until the next time the field is updated. The issue is with the other fields that are initially empty - when they’re finally populated, the field change triggers the ‘add tag’ that triggers the scoring rule to add the initial point, and at the same time triggers the automation that adds an additional point.

Any advice on how to correct this?

Why not triggering with a specific field or even field value?