Rollup job - should and minimum_should_match not working

A ‘should’ clause clause is only mandatory if it is on its own in a ‘bool’ clause. When it is alongside a must/filter/must_not it is relegated to an optional clause that gives extra points to scores of docs matching the other mandatory clauses.
To make a should act as a mandatory set of ORed choices it can often be necessary to wrap it in a bool container on its own and then embed that as a must inside the main bool query.