The public holiday check
To check whether our weekday is a public holiday, we need to see whether it matches any of the records in our public holiday data. We can do this with a Filter array activity:

The From input is an array from our Parse JSON activity – specifically, this is:
body(‘Parse_JSON:_UK_public_holiday_data’)?[‘england-and-wales’]?[‘events’])
For the filter criteria, we’re returning only items where the date property matches the running date. We have to format the running date to match the format of the bank holiday data – in advanced mode, the filter array expression is:
@equals(item()?[‘date’], formatDateTime(variables(‘runningDate’), ‘yyyy-MM-dd’))
If our filtered array contains more than zero items (use the length operator to check), we know our running date is a public holiday:

If this is true, we do nothing and let the loop go back to the start. If it’s false, we know that our running day is (1) not a weekend, and (2) not a public holiday. In this case, we increment our counter (workingDaysAdded) before the loop goes back to the start.