Recursion is all you need
This solution assumes that the order the suppliers appear in the spreadsheet source is the order of preference… i.e. first supplier gets projects allocated first, then second etc. Threshold is also the same across all suppliers.
Prototype:
supplierAllocation.knwf (135.4 KB)
Overview: