Ok, so now I understand why it was yelling at you about Text and Lists.
MAINTENANCECALL OUT CONTRACTS[Maintenance Visit Status]
This expression here returns the List of every row’s [Maintenance Visit Status]. As a side note, since you have these two tables already linked, you don’t need the superfluous information. For example, you shouldn’t need customer name in both. Because the records are linked by Customer ID. However, in the Live table, I think it would be easier to have ID as the Key but Name be the Label. That way anytime you reference the Key it will display their Name. Also, MaintenceCall out Contract should have its own unique ID as its Key.
I don’t know if it will be any faster, but try this as the expression:
[Maintenance Call out Contracts][Maintenance Visit Status]="Visit Due"
And if it is still yelling about lists (I suppose there could be multiple contract for the same customer), try:
IN("Visit Due", [Maintenance Call out Contracts][Maintenance Visit Status])
The reason the Select is adding so much time is because you already have VCs doing that work for you, so it’s basically doubling the time needed, or worse.