Indeed it does! You can pass a numeric value to trigger_switch and it works fine, however, as you guessed it tests the usual greater-than-or-equal, and it breaks at the first case which returns true, so if you do use it with numeric values, you have to order your cases from largest number to smallest.
For example, assume you have 7 buildings in a holding:
trigger_switch = {
on_trigger = num_of_buildings
1 = { FROM = { wealth = 10 } } < --- breaks here because it's checking num_of_buildings >= 1
2 = { FROM = { wealth = 20 } }
3 = { FROM = { wealth = 30 } }
....
So, you need to reverse the order:
trigger_switch = {
on_trigger = num_of_buildings
10 = { FROM = { wealth = 100 } }
9 = { FROM = { wealth = 90 } }
8 = { FROM = { wealth = 80 } }
7 = { FROM = { wealth = 70 } } <---- correctly breaks here, because it's the first case which returns true, num_of_buildings >= 7
6 = { FROM = { wealth = 60 } }
5 = { FROM = { wealth = 50 } }
4 = { FROM = { wealth = 40 } }
3 = { FROM = { wealth = 30 } }
....
I've built a pretty cool Instant Pillage mod using this logic :-D