Contract algorithms

I have found that the algorithm picks a random destination and airline that is local, and then takes the leftmost available contract to that destination, so you will ONLY generate BA E170s in local LHR except for a few situations:
A, you already have all BA planes to the left of your contract roll from that route, or
B, I believe there are a very small handful of destinations that do not have BA E170 as their first local contract.
This appears to hold true at all airports and for all stars.
This explains why you only roll E170s at LHR local, and the reason why only BA appears is literally because they are the only local contracts in all of LHR.