{"version":"delay-index-1","generated":"2026-11-04","as_of_month":"2026-11","history_starts":"2026-11","licence":"CC BY 4.0 (credit: Kolaboro, kolaboro.com)","what":"How far tracked off-plan projects are behind the first handover date we have on record, by market.","rules":{"min_sample":5,"quantile":"linear interpolation between order statistics (type 7, as numpy and spreadsheet PERCENTILE.INC)","month_now":"2026-11","current_handover":"month index of the currently advertised handover: today minus the overdue watcher months when overdue, else December of the advertised year","first_handover":"current handover minus the recorded months the date has moved (delay)","months_late":"month now minus first handover, for projects not completed whose first handover has passed","share_past_first":"projects past the first handover / projects not completed with a usable handover date","share_past_current":"projects past the currently advertised handover / the same denominator"},"caveats":["History starts in November 2026: one monthly snapshot is stored each month from now on, so trends need time.","Where only a year is public we assume December, and where no date move is recorded we assume none. Both can only understate lateness.","Dates are what developers and agents advertise, read by a language model and checked by our research agent. A misread date changes a project's figure.","The tracked projects are the ones being marketed now, not every project in a market. Projects that were finished and stopped marketing are under-represented."],"all_markets":{"market":"All markets","tracked":1011,"with_date":844,"past_first":63,"past_current":31,"completed":12,"moved":105,"no_date":152,"inconsistent":5,"share_past_first":7.5,"share_past_current":3.7,"median_late":10.0,"p90_late":35.0,"late_months":[1,2,2,2,2,2,2,2,2,2,4,5,5,5,5,5,5,5,5,5,5,5,5,5,7,8,8,8,8,8,9,10,11,11,11,11,11,11,11,11,11,14,14,15,17,17,17,20,23,23,23,23,23,26,26,35,35,42,44,47,50,74,119]},"markets":[{"market":"Dubai","tracked":71,"with_date":71,"past_first":8,"past_current":4,"completed":0,"moved":11,"no_date":0,"inconsistent":0,"share_past_first":11.3,"share_past_current":5.6,"median_late":11.0,"p90_late":31.1,"late_months":[5,9,10,11,11,17,23,50]},{"market":"Bali","tracked":76,"with_date":64,"past_first":9,"past_current":6,"completed":2,"moved":9,"no_date":10,"inconsistent":0,"share_past_first":14.1,"share_past_current":9.4,"median_late":5.0,"p90_late":9.4,"late_months":[2,2,5,5,5,5,7,8,15]},{"market":"Abu Dhabi","tracked":19,"with_date":19,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Phuket","tracked":21,"with_date":19,"past_first":2,"past_current":1,"completed":0,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":10.5,"share_past_current":5.3,"median_late":null,"p90_late":null,"late_months":[5,5]},{"market":"Lombok","tracked":24,"with_date":18,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":6,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Malaysia","tracked":19,"with_date":18,"past_first":1,"past_current":0,"completed":0,"moved":13,"no_date":1,"inconsistent":0,"share_past_first":5.6,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[11]},{"market":"Ras Al Khaimah","tracked":17,"with_date":17,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Egypt","tracked":13,"with_date":13,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Miami","tracked":13,"with_date":13,"past_first":1,"past_current":0,"completed":0,"moved":3,"no_date":0,"inconsistent":0,"share_past_first":7.7,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[11]},{"market":"Costa del Sol","tracked":20,"with_date":12,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":8,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Oman","tracked":14,"with_date":12,"past_first":1,"past_current":0,"completed":0,"moved":2,"no_date":2,"inconsistent":0,"share_past_first":8.3,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[14]},{"market":"Pattaya","tracked":12,"with_date":12,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Georgia","tracked":12,"with_date":11,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Philippines","tracked":14,"with_date":11,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":3,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Greece","tracked":11,"with_date":10,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Istanbul","tracked":13,"with_date":10,"past_first":3,"past_current":0,"completed":1,"moved":4,"no_date":1,"inconsistent":1,"share_past_first":30.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[5,11,11]},{"market":"Puerto Vallarta","tracked":12,"with_date":10,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":10.0,"share_past_current":10.0,"median_late":null,"p90_late":null,"late_months":[26]},{"market":"Cambodia","tracked":9,"with_date":9,"past_first":2,"past_current":0,"completed":0,"moved":2,"no_date":0,"inconsistent":0,"share_past_first":22.2,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[23,23]},{"market":"Los Cabos","tracked":15,"with_date":9,"past_first":2,"past_current":1,"completed":1,"moved":1,"no_date":5,"inconsistent":0,"share_past_first":22.2,"share_past_current":11.1,"median_late":null,"p90_late":null,"late_months":[2,47]},{"market":"Bangkok","tracked":8,"with_date":8,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Cyprus","tracked":9,"with_date":8,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Gold Coast","tracked":8,"with_date":8,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Koh Samui","tracked":12,"with_date":8,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":4,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Northern Cyprus","tracked":8,"with_date":8,"past_first":2,"past_current":2,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":25.0,"share_past_current":25.0,"median_late":null,"p90_late":null,"late_months":[5,17]},{"market":"Riviera Maya","tracked":21,"with_date":8,"past_first":1,"past_current":0,"completed":3,"moved":1,"no_date":12,"inconsistent":0,"share_past_first":12.5,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[23]},{"market":"Sharjah","tracked":10,"with_date":8,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Spain","tracked":11,"with_date":8,"past_first":0,"past_current":0,"completed":1,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Vietnam","tracked":11,"with_date":8,"past_first":3,"past_current":1,"completed":0,"moved":2,"no_date":3,"inconsistent":0,"share_past_first":37.5,"share_past_current":12.5,"median_late":null,"p90_late":null,"late_months":[5,11,17]},{"market":"Antalya","tracked":7,"with_date":7,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":14.3,"share_past_current":14.3,"median_late":null,"p90_late":null,"late_months":[11]},{"market":"Bahrain","tracked":7,"with_date":7,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Costa Rica","tracked":9,"with_date":7,"past_first":1,"past_current":1,"completed":0,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":14.3,"share_past_current":14.3,"median_late":null,"p90_late":null,"late_months":[8]},{"market":"London","tracked":7,"with_date":7,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Manchester","tracked":7,"with_date":7,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":14.3,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[5]},{"market":"Montenegro","tracked":8,"with_date":7,"past_first":0,"past_current":0,"completed":1,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Panama City","tracked":7,"with_date":7,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Saudi Arabia","tracked":7,"with_date":7,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Ajman","tracked":6,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Algarve","tracked":8,"with_date":6,"past_first":1,"past_current":1,"completed":0,"moved":3,"no_date":2,"inconsistent":0,"share_past_first":16.7,"share_past_current":16.7,"median_late":null,"p90_late":null,"late_months":[20]},{"market":"Bahamas","tracked":6,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Cape Verde","tracked":7,"with_date":6,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":16.7,"share_past_current":16.7,"median_late":null,"p90_late":null,"late_months":[11]},{"market":"Costa Blanca","tracked":6,"with_date":6,"past_first":1,"past_current":1,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":16.7,"share_past_current":16.7,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"Marrakech","tracked":8,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Mauritius","tracked":9,"with_date":6,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":3,"inconsistent":0,"share_past_first":16.7,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[5]},{"market":"Mérida","tracked":8,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Nairobi","tracked":6,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Portugal","tracked":9,"with_date":6,"past_first":1,"past_current":1,"completed":0,"moved":1,"no_date":3,"inconsistent":0,"share_past_first":16.7,"share_past_current":16.7,"median_late":null,"p90_late":null,"late_months":[23]},{"market":"Sri Lanka","tracked":10,"with_date":6,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":4,"inconsistent":0,"share_past_first":16.7,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[74]},{"market":"Sydney","tracked":6,"with_date":6,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Bulgaria","tracked":6,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Cape Town","tracked":5,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Goa","tracked":6,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Kigali","tracked":5,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Mexico City","tracked":5,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Qatar","tracked":6,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Zanzibar","tracked":6,"with_date":5,"past_first":0,"past_current":0,"completed":0,"moved":2,"no_date":1,"inconsistent":0,"share_past_first":0.0,"share_past_current":0.0,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Albania","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Balearics","tracked":5,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Brazil","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Budapest","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Cayman Islands","tracked":6,"with_date":4,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[44]},{"market":"Croatia","tracked":7,"with_date":4,"past_first":1,"past_current":1,"completed":3,"moved":3,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"French Riviera","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":2,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Hua Hin","tracked":5,"with_date":4,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"Italy","tracked":4,"with_date":4,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[26]},{"market":"Labuan Bajo","tracked":4,"with_date":4,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[42]},{"market":"Liverpool","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"New Zealand","tracked":4,"with_date":4,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[8]},{"market":"Sumba","tracked":5,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Tallinn","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Toronto","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Umm Al Quwain","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Vancouver","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Yerevan","tracked":4,"with_date":4,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Accra","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Alanya","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Argentina","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Baku","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Barbados","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Belgrade","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Birmingham","tracked":3,"with_date":3,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[14]},{"market":"Bodrum","tracked":3,"with_date":3,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"Bucharest","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Buenos Aires","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Chiang Mai","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Colombia","tracked":3,"with_date":3,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[1]},{"market":"Dominican Republic","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Fiji","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Grenada","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Krabi","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Kuala Lumpur","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Lisbon","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Maldives","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Malta","tracked":6,"with_date":3,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":3,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"Melbourne","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Mumbai","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Namibia","tracked":6,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":3,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"New York","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Niseko","tracked":4,"with_date":3,"past_first":1,"past_current":0,"completed":0,"moved":2,"no_date":0,"inconsistent":1,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[35]},{"market":"Okinawa","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Paraguay","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Porto de Galinhas","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Puerto Rico","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Punta Cana","tracked":5,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":2,"no_date":1,"inconsistent":1,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Riga","tracked":4,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Tampa","tracked":3,"with_date":3,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Amman","tracked":2,"with_date":2,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[4]},{"market":"Antigua","tracked":3,"with_date":2,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[5]},{"market":"Austin","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Berlin","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Brisbane","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Canary Islands","tracked":6,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":4,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Chile","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Ecuador","tracked":4,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Hawaii","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Ho Chi Minh City","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Jakarta","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Jamaica","tracked":3,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Japan","tracked":3,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Las Vegas","tracked":2,"with_date":2,"past_first":1,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[8]},{"market":"Leeds","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Madeira","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Medellín","tracked":4,"with_date":2,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[35]},{"market":"Nashville","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Panama","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Perth","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Prague","tracked":3,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Riviera Nayarit","tracked":3,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Seychelles","tracked":3,"with_date":2,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[8]},{"market":"Singapore","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Tokyo","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Turks and Caicos","tracked":2,"with_date":2,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Almaty","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Bacalar","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Cartagena","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Curacao","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Da Nang","tracked":1,"with_date":1,"past_first":1,"past_current":1,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[2]},{"market":"Diani","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Dublin","tracked":2,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Edinburgh","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"El Salvador","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Fort Lauderdale","tracked":3,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"French Alps","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Glasgow","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Hakuba","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Houston","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Koh Phangan","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Kyoto","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Lagos","tracked":2,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Laos","tracked":2,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Naples","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Orlando","tracked":3,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Palm Beach County","tracked":1,"with_date":1,"past_first":1,"past_current":1,"completed":0,"moved":1,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[119]},{"market":"Peru","tracked":3,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Saint Lucia","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Senegal","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Seoul","tracked":4,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":3,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Serbia","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"St Lucia","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Taiwan","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Tangier","tracked":3,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Uruguay","tracked":2,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":1,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Warsaw","tracked":1,"with_date":1,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":0,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Aruba","tracked":1,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Belize","tracked":4,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":3,"inconsistent":1,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Gili Islands","tracked":1,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Izmir","tracked":1,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Mozambique","tracked":3,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":3,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Nicaragua","tracked":1,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"St Kitts and Nevis","tracked":2,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":1,"no_date":2,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]},{"market":"Vanuatu","tracked":1,"with_date":0,"past_first":0,"past_current":0,"completed":0,"moved":0,"no_date":1,"inconsistent":0,"share_past_first":null,"share_past_current":null,"median_late":null,"p90_late":null,"late_months":[]}],"history":[{"month":"2026-11","taken":"2026-11-04","input_sha256":"b43b17f35cef73dd0c6740a22dfd01570891b622a69ce9c2ea64c3991b34dfec","all":{"tracked":896,"with_date":755,"past_first":62,"past_current":31,"share_past_first":8.2,"share_past_current":4.1,"median_late":10.5,"p90_late":35.0},"markets":{"Dubai":[71,8,11.3,11.0,31.1],"Bali":[64,9,14.1,5.0,9.4],"Abu Dhabi":[19,0,0.0,null,null],"Phuket":[19,2,10.5,null,null],"Lombok":[18,0,0.0,null,null],"Malaysia":[18,1,5.6,null,null],"Ras Al Khaimah":[17,0,0.0,null,null],"Egypt":[13,0,0.0,null,null],"Miami":[13,1,7.7,null,null],"Costa del Sol":[12,0,0.0,null,null],"Oman":[12,1,8.3,null,null],"Pattaya":[12,0,0.0,null,null],"Georgia":[11,0,0.0,null,null],"Philippines":[11,0,0.0,null,null],"Greece":[10,0,0.0,null,null],"Istanbul":[10,3,30.0,null,null],"Puerto Vallarta":[10,1,10.0,null,null],"Cambodia":[9,2,22.2,null,null],"Los Cabos":[9,2,22.2,null,null],"Bangkok":[8,0,0.0,null,null],"Cyprus":[8,0,0.0,null,null],"Gold Coast":[8,0,0.0,null,null],"Koh Samui":[8,0,0.0,null,null],"Northern Cyprus":[8,2,25.0,null,null],"Riviera Maya":[8,1,12.5,null,null],"Sharjah":[8,0,0.0,null,null],"Spain":[8,0,0.0,null,null],"Vietnam":[8,3,37.5,null,null],"Antalya":[7,1,14.3,null,null],"Bahrain":[7,0,0.0,null,null],"Costa Rica":[7,1,14.3,null,null],"London":[7,0,0.0,null,null],"Manchester":[7,1,14.3,null,null],"Montenegro":[7,0,0.0,null,null],"Panama City":[7,0,0.0,null,null],"Saudi Arabia":[7,0,0.0,null,null],"Ajman":[6,0,0.0,null,null],"Algarve":[6,1,16.7,null,null],"Cape Verde":[6,1,16.7,null,null],"Costa Blanca":[6,1,16.7,null,null],"Mauritius":[6,1,16.7,null,null],"Mérida":[6,0,0.0,null,null],"Portugal":[6,1,16.7,null,null],"Sri Lanka":[6,1,16.7,null,null],"Sydney":[6,0,0.0,null,null],"Bulgaria":[5,0,0.0,null,null],"Cape Town":[5,0,0.0,null,null],"Mexico City":[5,0,0.0,null,null],"Qatar":[5,0,0.0,null,null],"Zanzibar":[5,0,0.0,null,null]}}],"inputs":[{"file":"/data/bali-cases.json","sha256":"4c5a0a28b628fa6f33f3db3a3e3d074485a7396cf5b1b0980c6db04bb3aa1e25","updated":"2026-11-04","projects":1011},{"file":"/data/price-index.json","sha256":"f037c6a8145ea64831217803f8425d51aa0707b77d0f698558cffe6d8b52aef3","generated":"2026-11-04"}]}