Compound rank in one call
POST /v1/query with a rank_areas plan. Up to 8 AND-joined filters on stored signal keys, 11 comparison operators (eq, lt, lte, gt, gte, between, plus the five percentile variants). Sort by any signal, scope by country or local authority district, cap at 1000 rows. One round trip.
POST /v1/query
{ "plan": { "op": "rank_areas", "params": {
"signals": [
{ "key": "property.median_price", "filter": { "lte": 300000 } },
{ "key": "crime.total_12m", "filter": { "percentile_lte": 25 } },
{ "key": "property.price_change_pct_yoy",
"filter": { "gt": 0 } } ],
"sort_by": { "signal": "property.price_change_pct_yoy",
"direction": "desc" },
"country": "England", "limit": 50 } } }