{
 "dataset": {
  "version": "2026-11-05",
  "builtAt": "2026-11-05T15:34:08.779Z",
  "licence": "CC-BY-4.0",
  "licenceUrl": "https://creativecommons.org/licenses/by/4.0/",
  "licenceNote": "Borgo's compilation is licensed CC BY 4.0. Each figure keeps its source's own terms and attribution, listed in data/licences.json; reuse a figure under those terms.",
  "licences": "https://borgo.abcastor.com/data/licences.json",
  "otherParts": [
   {
    "part": "odbl",
    "licence": {
     "id": "ODbL-1.0",
     "name": "Open Database License 1.0",
     "url": "https://opendatacommons.org/licenses/odbl/1-0/"
    },
    "file": "https://borgo.abcastor.com/data/dataset-odbl.json",
    "city": "https://borgo.abcastor.com/api/odbl/city/{id}.json"
   },
   {
    "part": "who",
    "licence": {
     "id": "WHO-data",
     "name": "WHO terms and conditions for data compilations",
     "url": "https://www.who.int/about/policies/publishing/data-policy/terms-and-conditions"
    },
    "file": "https://borgo.abcastor.com/data/dataset-who.json",
    "city": "https://borgo.abcastor.com/api/who/city/{id}.json"
   },
   {
    "part": "cmhc",
    "licence": {
     "id": "CMHC-data",
     "name": "CMHC Licence Agreement for the Use of Data",
     "url": "https://www.cmhc-schl.gc.ca/about-us/terms-conditions/hmip-terms-conditions"
    },
    "file": "https://borgo.abcastor.com/data/dataset-cmhc.json",
    "city": "https://borgo.abcastor.com/api/cmhc/city/{id}.json"
   }
  ],
  "creator": "Castor",
  "fx": {
   "base": "EUR",
   "date": "2026-10-26",
   "source": "ecb-fx"
  }
 },
 "id": "singapore-sg",
 "name": "Singapore",
 "country": {
  "code": "SG",
  "name": "Singapore",
  "currency": "SGD"
 },
 "region": null,
 "lat": 1.28967,
 "lon": 103.85007,
 "population": 5638700,
 "wikidata": null,
 "geonames": "1880252",
 "page": "https://borgo.abcastor.com/city/singapore-sg/",
 "markdown": "https://borgo.abcastor.com/city/singapore-sg/index.md",
 "keyFacts": [
  "Singapore has about 5,638,700 residents (GeoNames).",
  "On a gross salary of SGD 86,000 a year, an employee in Singapore takes home about SGD 66,304 a year (SGD 5,525 a month) after income tax and employee contributions, an effective rate of 22.9% (Singapore 2026 rules).",
  "In Singapore the average daily high (air temperature in the shade) peaks at 30.4 °C in May and the average daily low falls to 24.0 °C in January (Historical weather (ERA5 reanalysis), Open-Meteo, 2021-2025).",
  "Singapore has about 0 nice days a year, days that are dry, mostly clear and feel 18 to 30 °C on average from 8 am to 8 pm, most of them in January (0) (Historical weather (ERA5 reanalysis), Open-Meteo, 2021-2025).",
  "Between 2021 and 2025 the air in Singapore reached 35.2 °C at its hottest and 22.3 °C at its coldest (Historical weather (ERA5 reanalysis), Open-Meteo).",
  "It rains or snows (at least 1 mm) on about 282 days a year in Singapore (Historical weather (ERA5 reanalysis), Open-Meteo, 2021-2025).",
  "The shortest day in Singapore lasts 12 h 03 min and the longest 12 h 12 min (computed from latitude).",
  "Everyday prices in Singapore sit at 78.3 on an index where the United States is 100 (World Development Indicators, World Bank, 2025).",
  "Life expectancy at birth in Singapore is 83.3 years (World Development Indicators, World Bank, 2024).",
  "Singapore records 0.07 intentional homicides per 100,000 people a year (World Development Indicators, World Bank, 2023).",
  "Only citizens of Singapore can live and work in Singapore without a visa or permit; everyone else needs one."
 ],
 "figures": [
  {
   "metric": "health_oop",
   "label": "Out-of-pocket health spending",
   "description": "What people pay for health care themselves each year, per person, on average across the country: deductibles, co-payments and care not covered, but not insurance premiums.",
   "value": 997,
   "text": "US$997 a year per person",
   "unit": "USD/year per person",
   "period": "2023",
   "level": "country",
   "retrieved": "2026-11-04",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "Out-of-pocket health expenditure per person, current US dollars (WHO Global Health Expenditure Database via World Bank)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "annual_leave",
   "label": "Paid holiday by law",
   "description": "The fewest paid days of holiday an employer must give a full-time employee on a five-day week, from the country's labour law; contracts and collective agreements often give more.",
   "value": 7,
   "text": "7 working days a year",
   "unit": "working days a year",
   "period": "2026",
   "level": "country",
   "retrieved": "2026-11-04T23:14:54.070Z",
   "method": "source",
   "sources": [
    {
     "id": "labour-law",
     "name": "Paid holiday by law, from the labour codes cited",
     "publisher": "Borgo contributors",
     "url": "https://github.com/ABCastor/borgo/blob/main/src/fetch/family.ts",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://creativecommons.org/licenses/by/4.0/"
    }
   ],
   "note": "7 days in the first year, one more each year to 14 (MOM: annual leave entitlement)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "public_holidays",
   "label": "Public holidays on working days",
   "description": "Public holidays that fall on a weekday this year, nationwide plus those of the city's region; a holiday on a weekend is lost unless the law moves it.",
   "value": 10,
   "text": "10 days a year",
   "unit": "days a year",
   "period": "2026",
   "level": "country",
   "retrieved": "2026-11-04T23:14:53.984Z",
   "method": "source",
   "sources": [
    {
     "id": "nager-date",
     "name": "Nager.Date public holidays",
     "publisher": "Nager.Date (open-source project)",
     "url": "https://date.nager.at/",
     "licence": "MIT",
     "licenceUrl": "https://github.com/nager/Nager.Date/blob/main/LICENSE.md"
    }
   ],
   "note": "Public holidays on Monday to Friday in 2026, nationwide",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "price_level",
   "label": "Price level",
   "description": "How expensive everyday consumption is, compared with the United States at market exchange rates.",
   "value": 78.3,
   "text": "78.3 index, US = 100",
   "unit": "index, US = 100",
   "period": "2025",
   "level": "country",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "Private consumption PPP over the market exchange rate; United States = 100",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "wet_days",
   "label": "Wet days",
   "description": "Days a year with at least 1 mm of rain or snow, enough to wet the ground.",
   "value": 282,
   "text": "282 days a year",
   "unit": "days a year",
   "period": "2021-2025",
   "level": "city",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "method": "source",
   "sources": [
    {
     "id": "open-meteo-era5",
     "name": "Historical weather (ERA5 reanalysis)",
     "publisher": "Open-Meteo, Copernicus Climate Change Service (ECMWF)",
     "url": "https://open-meteo.com/en/docs/historical-weather-api",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://open-meteo.com/en/license"
    }
   ],
   "note": "ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "levelText": "city"
  },
  {
   "metric": "sunshine_hours",
   "label": "Sunshine",
   "description": "Hours a year of bright, direct sun, measured at a weather station by the WMO definition: direct sunlight of at least 120 W/m², roughly when the sun is strong enough to cast a sharp shadow.",
   "value": 2074,
   "text": "2,074 hours a year",
   "unit": "hours a year",
   "period": "1991-2020",
   "level": "city",
   "retrieved": "2026-10-27T11:14:14.879Z",
   "method": "source",
   "sources": [
    {
     "id": "wmo-normals",
     "name": "WMO Climatological Standard Normals 1991-2020",
     "publisher": "World Meteorological Organization, archived by NOAA NCEI",
     "url": "https://www.ncei.noaa.gov/products/wmo-climate-normals",
     "licence": "No licence attached; NCEI public access, citation requested (WMO Unified Data Policy)",
     "licenceUrl": "https://www.ncei.noaa.gov/access/metadata/landing-page/bin/iso?id=gov.noaa.nodc:0253808"
    }
   ],
   "note": "Measured at ChangiAirport, 17 km away at 14 m (WMO definition: direct sunlight of at least 120 W/m²)",
   "levelText": "city"
  },
  {
   "metric": "homicide_rate",
   "label": "Homicides",
   "description": "People killed on purpose each year per 100,000 residents, a common proxy for violent crime.",
   "value": 0.07,
   "text": "0.07 per 100,000",
   "unit": "per 100,000",
   "period": "2023",
   "level": "country",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "Intentional homicides per 100,000 people (UNODC via World Bank)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "life_expectancy",
   "label": "Life expectancy",
   "description": "How many years a baby born now would live on average if today's death rates held, for the whole country.",
   "value": 83.3,
   "text": "83.3 years",
   "unit": "years",
   "period": "2024",
   "level": "country",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "levelText": "Singapore-wide"
  },
  {
   "metric": "research_output",
   "label": "Research output",
   "description": "Papers, patents and datasets published in a year by institutions in the city, per 100,000 residents.",
   "value": 1064,
   "text": "1,064 works per 100k residents",
   "unit": "works per 100k residents",
   "period": "2025",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "openalex",
     "name": "OpenAlex institutions",
     "publisher": "OurResearch",
     "url": "https://openalex.org/",
     "licence": "CC0-1.0",
     "licenceUrl": "https://creativecommons.org/publicdomain/zero/1.0/"
    }
   ],
   "note": "59,996 works by 433 institutions in Singapore",
   "levelText": "city"
  },
  {
   "metric": "builder_density",
   "label": "Research output per resident",
   "description": "Research output of institutions in the city, per resident, on a 0 to 100 scale.",
   "value": 41,
   "text": "41 of 100",
   "unit": "of 100",
   "period": "2025",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "openalex",
     "name": "OpenAlex institutions",
     "publisher": "OurResearch",
     "url": "https://openalex.org/",
     "licence": "CC0-1.0",
     "licenceUrl": "https://creativecommons.org/publicdomain/zero/1.0/"
    }
   ],
   "note": "log scale: 100 works per 100k residents = 0, 30,000 = 100",
   "levelText": "city"
  },
  {
   "metric": "universities",
   "label": "Universities and colleges",
   "description": "Higher-education organisations registered in the city in the Research Organization Registry, so counts follow how each country registers its institutions.",
   "value": 118,
   "text": "118 organisations",
   "unit": "organisations",
   "period": "2026-10-27",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "ror",
     "name": "Research Organization Registry",
     "publisher": "ROR",
     "url": "https://ror.org/",
     "licence": "CC0-1.0",
     "licenceUrl": "https://ror.org/registry/"
    }
   ],
   "note": "ROR organisations of type education (universities, colleges, schools of higher education)",
   "levelText": "city"
  },
  {
   "metric": "research_institutes",
   "label": "Research institutes",
   "description": "Research facilities (institutes, laboratories, observatories) registered in the city in the Research Organization Registry; national research councils that register every lab inflate some cities (Paris, Tokyo).",
   "value": 132,
   "text": "132 organisations",
   "unit": "organisations",
   "period": "2026-10-27",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "ror",
     "name": "Research Organization Registry",
     "publisher": "ROR",
     "url": "https://ror.org/",
     "licence": "CC0-1.0",
     "licenceUrl": "https://ror.org/registry/"
    }
   ],
   "note": "ROR organisations of type facility (research institutes, laboratories, observatories)",
   "levelText": "city"
  },
  {
   "metric": "founders_running_club",
   "label": "Founders Running Club",
   "description": "Whether the Founders Running Club, a running community for founders, lists a chapter in the city.",
   "value": 1,
   "text": "a chapter",
   "unit": "1 = a chapter",
   "period": "2026-10-27",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "foundersrc",
     "name": "Founders Running Club communities",
     "publisher": "Founders Running Club",
     "url": "https://foundersrc.com/communities",
     "licence": "Public listing (facts of presence only; no licence stated)"
    }
   ],
   "note": "Chapter: https://www.instagram.com/frc_singapore",
   "levelText": "city"
  },
  {
   "metric": "sea_km",
   "label": "Distance to the sea",
   "description": "Straight-line distance from the centre to the open-sea coast; lakes and tidal rivers do not count.",
   "value": 1,
   "text": "1 km",
   "unit": "km",
   "period": "Natural Earth 5.1",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "natural-earth",
     "name": "Natural Earth (coastline, land, countries and populated places)",
     "publisher": "Natural Earth",
     "url": "https://www.naturalearthdata.com/",
     "licence": "Public domain",
     "licenceUrl": "https://www.naturalearthdata.com/about/terms-of-use/"
    }
   ],
   "note": "straight line from the centre to the open-sea coastline (lakes excluded)",
   "levelText": "city"
  },
  {
   "metric": "mountain_km",
   "label": "Distance to the mountains",
   "description": "Straight-line distance from the centre to ground that rises 1,000 m above it; 300 means none within 300 km.",
   "value": 262,
   "text": "262 km",
   "unit": "km",
   "period": "terrain tiles 2017",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "terrain-tiles",
     "name": "Terrain Tiles (Terrarium) on AWS Open Data",
     "publisher": "Mapzen / AWS Open Data",
     "url": "https://registry.opendata.aws/terrain-tiles/",
     "licence": "Public domain (USGS, NOAA) and Open Government Licence – Canada, with attribution",
     "licenceUrl": "https://github.com/tilezen/joerd/blob/master/docs/attribution.md"
    }
   ],
   "note": "1062 m at 2.84, 102.07; the centre sits at about 10 m",
   "levelText": "city"
  },
  {
   "metric": "airport_km",
   "label": "Nearest major airport",
   "description": "Straight-line distance from the centre to the nearest large airport with scheduled flights.",
   "value": 17,
   "text": "17 km",
   "unit": "km",
   "period": "2026-10-27",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "ourairports",
     "name": "OurAirports airports",
     "publisher": "OurAirports",
     "url": "https://ourairports.com/data/",
     "licence": "Public domain",
     "licenceUrl": "https://ourairports.com/data/"
    }
   ],
   "note": "Singapore Changi Airport (SIN), straight line from the centre",
   "levelText": "city"
  },
  {
   "metric": "airports_100km",
   "label": "Airports within 100 km",
   "description": "Airports with scheduled passenger flights within 100 km of the centre.",
   "value": 5,
   "text": "5 airports",
   "unit": "airports",
   "period": "2026-10-27",
   "level": "city",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "ourairports",
     "name": "OurAirports airports",
     "publisher": "OurAirports",
     "url": "https://ourairports.com/data/",
     "licence": "Public domain",
     "licenceUrl": "https://ourairports.com/data/"
    }
   ],
   "note": "XSP, SIN, BTH, JHB, TNJ",
   "levelText": "city"
  },
  {
   "metric": "english_share",
   "label": "English speakers",
   "description": "Share of the country's population that speaks English at any level; cities usually speak more than the national figure.",
   "value": 80,
   "text": "80 % of population",
   "unit": "% of population",
   "period": "CLDR 49",
   "level": "country",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "cldr",
     "name": "CLDR territory information",
     "publisher": "Unicode Consortium",
     "url": "https://cldr.unicode.org/",
     "licence": "Unicode-3.0",
     "licenceUrl": "https://www.unicode.org/license.txt"
    }
   ],
   "note": "share of the population that speaks English, any level",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "english_official",
   "label": "English is official",
   "description": "Whether English is an official or de facto official language of the country.",
   "value": 1,
   "text": "yes",
   "unit": "1 = yes",
   "period": "CLDR 49",
   "level": "country",
   "retrieved": "2026-10-27",
   "method": "source",
   "sources": [
    {
     "id": "cldr",
     "name": "CLDR territory information",
     "publisher": "Unicode Consortium",
     "url": "https://cldr.unicode.org/",
     "licence": "Unicode-3.0",
     "licenceUrl": "https://www.unicode.org/license.txt"
    }
   ],
   "note": "English is official",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "degree_share",
   "label": "Adults with a degree",
   "description": "Share of adults whose highest qualification is tertiary, a university degree or a vocational diploma above school level (ISCED levels 5 to 8), counting people aged 25 to 64 for a city or region and 25 or older for a country.",
   "value": 53.2,
   "text": "53.2 % of adults",
   "unit": "% of adults",
   "period": "2024",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "At least short-cycle tertiary education, % of people aged 25 and over (UNESCO Institute for Statistics via World Bank)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "github_developers",
   "label": "Developers on GitHub",
   "description": "GitHub accounts whose profile names the city as their location, per 1,000 residents: a rough count of people who write software there, since many leave the field empty and some name a city they only live near.",
   "value": 10.7,
   "text": "10.7 per 1,000 residents",
   "unit": "per 1,000 residents",
   "period": "2026-11-05",
   "level": "city",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "github",
     "name": "GitHub user search",
     "publisher": "GitHub",
     "url": "https://docs.github.com/en/rest/search/search#search-users",
     "licence": "No data licence: only total counts of profiles are stored (GitHub Acceptable Use Policies, section 7)",
     "licenceUrl": "https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies#7-information-usage-restrictions"
    }
   ],
   "note": "60,185 accounts whose location names \"Singapore\", over 5,638,700 residents",
   "levelText": "city"
  },
  {
   "metric": "city_edge_km",
   "label": "Out of the dense city",
   "description": "Straight-line distance from the centre to the nearest edge of the dense city (the GHSL urban centre: touching 1 km squares with at least 1,500 residents per km²) in a direction that leads on over land, so roughly what a cyclist rides before the dense city gives way to suburbs, farmland, hills or a large park.",
   "value": 9.4,
   "text": "9.4 km",
   "unit": "km",
   "period": "2025",
   "level": "city",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "ghsl-ucdb",
     "name": "GHS Urban Centre Database 2025 (R2024A), general characteristics",
     "publisher": "European Commission, Joint Research Centre (GHSL)",
     "url": "https://human-settlement.emergency.copernicus.eu/ghs_ucdb_2024.php",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://creativecommons.org/licenses/by/4.0/"
    }
   ],
   "note": "Singapore urban centre (5,117,759 people, 2025): nearest edge 9.4 km to the north-west; half the directions over land end within 12.2 km",
   "levelText": "city"
  },
  {
   "metric": "abortion_law",
   "label": "Abortion in law",
   "description": "On what grounds the law allows a pregnancy to be ended: 0 not at all or only to save the woman's life, 1 also to protect her health or after rape or incest, 2 also on broad social or economic grounds, 3 on request but only in the first weeks (under 10), 4 on request to 10 weeks or later.",
   "value": 4,
   "text": "on request, 10 weeks or later",
   "unit": "0 to 4",
   "period": "2026-11-05",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "abortion-law",
     "name": "Abortion in law, from the statutes cited",
     "publisher": "Borgo contributors",
     "url": "https://github.com/ABCastor/borgo/blob/main/src/fetch/rights-law.ts",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://creativecommons.org/licenses/by/4.0/"
    }
   ],
   "note": "On request to 24 weeks after the last period, for citizens, work-pass holders, the wives of either, and women resident for at least 4 months (Termination of Pregnancy Act 1974, ss. 3 and 4; checked against the source linked on 2026-11-05)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "doctors",
   "label": "Doctors",
   "description": "Practising physicians per 1,000 people in the country, generalists and specialists (WHO figures).",
   "value": 2.83,
   "text": "2.8 per 1,000 people",
   "unit": "per 1,000 people",
   "period": "2022",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "Physicians per 1,000 people (WHO Global Health Workforce Statistics via World Bank)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "unemployment",
   "label": "Unemployment",
   "description": "Share of people who want work and are looking for it but have none, in the country (ILO modelled estimate).",
   "value": 2.8,
   "text": "2.8 % of the labour force",
   "unit": "% of the labour force",
   "period": "2025",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wdi",
     "name": "World Development Indicators",
     "publisher": "World Bank",
     "url": "https://databank.worldbank.org/source/world-development-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/public-licenses"
    }
   ],
   "note": "Unemployment, % of the labour force, ILO modelled estimate (via World Bank)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "clean_government",
   "label": "Control of corruption",
   "description": "How far public power is kept from private gain, petty and grand corruption alike, as experts, firms and households perceive it in the country: the World Bank's governance estimate, roughly -2.5 (weak) to 2.5 (strong).",
   "value": 1.97,
   "text": "1.97 -2.5 to 2.5",
   "unit": "-2.5 to 2.5",
   "period": "2025",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "worldbank-wgi",
     "name": "Worldwide Governance Indicators",
     "publisher": "World Bank",
     "url": "https://www.worldbank.org/en/publication/worldwide-governance-indicators",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://datacatalog.worldbank.org/search/dataset/0038026/worldwide-governance-indicators"
    }
   ],
   "note": "Control of corruption, governance estimate (Worldwide Governance Indicators)",
   "levelText": "Singapore-wide"
  },
  {
   "metric": "same_sex_couples",
   "label": "Same-sex couples in law",
   "description": "What the law offers same-sex couples: 0 sexual relations between people of the same sex are a crime, 1 legal but national law offers no union, 2 civil union or registered partnership, 3 marriage.",
   "value": 1,
   "text": "legal, no union in law",
   "unit": "0 to 3",
   "period": "2026",
   "level": "country",
   "retrieved": "2026-11-05",
   "method": "source",
   "sources": [
    {
     "id": "couples-law",
     "name": "Same-sex couples in law, from the statutes cited",
     "publisher": "Borgo contributors",
     "url": "https://github.com/ABCastor/borgo/blob/main/src/fetch/rights-law.ts",
     "licence": "CC-BY-4.0",
     "licenceUrl": "https://creativecommons.org/licenses/by/4.0/"
    }
   ],
   "note": "No recognition: a marriage between persons of the same sex is void (Women's Charter 1961, s. 12); the Constitution, Art. 156, lets Parliament define marriage; Penal Code s. 377A, on sex between men, was repealed in 2022 (checked against the source linked on 2026-11-05)",
   "levelText": "Singapore-wide"
  }
 ],
 "gaps": [
  {
   "metric": "rent_1bed",
   "label": "Rent, one bedroom"
  },
  {
   "metric": "rent_3bed",
   "label": "Rent, three bedrooms"
  },
  {
   "metric": "childcare_fees_1",
   "label": "Childcare fees, one child"
  },
  {
   "metric": "childcare_fees_2",
   "label": "Childcare fees, two children"
  },
  {
   "metric": "childcare_net_couple_1",
   "label": "Childcare, net of support: couple, one child"
  },
  {
   "metric": "childcare_net_couple_2",
   "label": "Childcare, net of support: couple, two children"
  },
  {
   "metric": "childcare_net_single_1",
   "label": "Childcare, net of support: single parent, one child"
  },
  {
   "metric": "childcare_net_single_2",
   "label": "Childcare, net of support: single parent, two children"
  },
  {
   "metric": "childcare_cost",
   "label": "Your childcare cost"
  },
  {
   "metric": "health_premium",
   "label": "Health insurance premium"
  },
  {
   "metric": "leave_mothers",
   "label": "Paid leave for mothers"
  },
  {
   "metric": "leave_fathers",
   "label": "Paid leave for fathers"
  },
  {
   "metric": "pm25",
   "label": "Fine dust (PM2.5)"
  },
  {
   "metric": "life_evaluation",
   "label": "Life satisfaction"
  },
  {
   "metric": "coworking",
   "label": "Coworking spaces"
  },
  {
   "metric": "climbing_gyms",
   "label": "Climbing gyms"
  },
  {
   "metric": "swimming_pools",
   "label": "Public swimming pools"
  },
  {
   "metric": "public_pools",
   "label": "Public swimming pools (official)"
  },
  {
   "metric": "hackerspaces",
   "label": "Hackerspaces and makerspaces"
  },
  {
   "metric": "green_space_10km",
   "label": "Green space"
  },
  {
   "metric": "green_share",
   "label": "Green urban areas (official)"
  },
  {
   "metric": "rail_stations",
   "label": "Rail and metro stations"
  },
  {
   "metric": "cycle_paths_km",
   "label": "Cycle paths"
  },
  {
   "metric": "transit_commute_share",
   "label": "Commuting by public transport"
  },
  {
   "metric": "commute_minutes",
   "label": "Commute time"
  },
  {
   "metric": "transit_pass",
   "label": "Monthly transit pass"
  },
  {
   "metric": "road_deaths",
   "label": "Road deaths"
  },
  {
   "metric": "foreign_born_share",
   "label": "Born abroad"
  },
  {
   "metric": "download_mbps",
   "label": "Internet speed"
  },
  {
   "metric": "walkable_share",
   "label": "Everyday needs on foot"
  },
  {
   "metric": "bike_network",
   "label": "Cycle network"
  },
  {
   "metric": "active_commute_share",
   "label": "Walking or cycling to work"
  },
  {
   "metric": "politics_lr",
   "label": "Politics, left to right"
  }
 ],
 "climate": {
  "months": [
   "Jan",
   "Feb",
   "Mar",
   "Apr",
   "May",
   "Jun",
   "Jul",
   "Aug",
   "Sep",
   "Oct",
   "Nov",
   "Dec"
  ],
  "tempHighC": [
   28.7,
   30.1,
   30,
   30,
   30.4,
   29.8,
   30.1,
   29.5,
   29.7,
   30.1,
   29.6,
   29.3
  ],
  "tempLowC": [
   24,
   24.4,
   24.9,
   25.2,
   26.1,
   25.9,
   26.1,
   25.5,
   25.6,
   25.2,
   24.6,
   24.4
  ],
  "wetDays": [
   23.8,
   18.2,
   23.4,
   27,
   24,
   22.8,
   20.6,
   24.8,
   22,
   23,
   26,
   26.6
  ],
  "daylightHours": [
   12.05,
   12.07,
   12.1,
   12.14,
   12.18,
   12.2,
   12.19,
   12.16,
   12.12,
   12.08,
   12.06,
   12.05
  ],
  "period": "2021-2025",
  "source": {
   "id": "open-meteo-era5",
   "name": "Historical weather (ERA5 reanalysis)",
   "publisher": "Open-Meteo, Copernicus Climate Change Service (ECMWF)",
   "url": "https://open-meteo.com/en/docs/historical-weather-api",
   "licence": "CC-BY-4.0",
   "licenceUrl": "https://open-meteo.com/en/license"
  }
 },
 "daylight": {
  "shortestDayHours": 12.05,
  "longestDayHours": 12.2,
  "method": "computed from latitude"
 },
 "takeHome": {
  "currency": "SGD",
  "year": 2026,
  "scope": "Tax resident employee under 55, income earned in 2026 (YA 2027): resident rates, earned income relief, and employee CPF with CPF relief for citizens and PRs.",
  "sources": [
   {
    "label": "IRAS: individual income tax rates",
    "url": "https://www.iras.gov.sg/taxes/individual-income-tax/basics-of-individual-income-tax/tax-residency-and-tax-rates/individual-income-tax-rates"
   },
   {
    "label": "IRAS: earned income relief",
    "url": "https://www.iras.gov.sg/taxes/individual-income-tax/basics-of-individual-income-tax/tax-reliefs-rebates-and-deductions/tax-reliefs/earned-income-relief"
   },
   {
    "label": "IRAS: CPF relief for employees (ordinary wage ceiling)",
    "url": "https://www.iras.gov.sg/taxes/individual-income-tax/basics-of-individual-income-tax/tax-reliefs-rebates-and-deductions/tax-reliefs/central-provident-fund(cpf)-relief-for-employees"
   },
   {
    "label": "CPF Board: contribution rates from 1 January 2026",
    "url": "https://www.cpf.gov.sg/employer/employer-obligations/how-much-cpf-contributions-to-pay"
   },
   {
    "label": "IRAS: personal income tax rebate (YA 2024 and 2025 only)",
    "url": "https://www.iras.gov.sg/taxes/individual-income-tax/basics-of-individual-income-tax/tax-reliefs-rebates-and-deductions/tax-reliefs/personal-income-tax-rebate"
   }
  ],
  "caveats": [
   "CPF applies to Singapore citizens and permanent residents only: foreigners on an Employment Pass or S Pass pay no CPF and get no CPF relief; switch on the Employment Pass setting to model that.",
   "CPF uses the full rates for citizens and PRs from their third year, age 55 and below; PRs in their first two years pay graduated lower rates.",
   "Salary is treated as twelve equal monthly ordinary wages; bonuses (additional wages) can attract CPF up to the $102,000 annual ceiling.",
   "No personal income tax rebate: none has been announced for YA 2027.",
   "No other reliefs (qualifying child, NSman, SRS, course fees), no donations."
  ],
  "local": [],
  "rows": [
   {
    "gross": 43000,
    "net": 34081,
    "effectiveRate": 0.20741860465116282
   },
   {
    "gross": 86000,
    "net": 66304,
    "effectiveRate": 0.22902325581395352
   },
   {
    "gross": 140000,
    "net": 112873,
    "effectiveRate": 0.19376428571428575
   }
  ],
  "completeness": {
   "status": "complete",
   "missing": [],
   "approximations": []
  }
 },
 "freeMovement": {
  "citizensOf": "SG",
  "areas": []
 },
 "defaultProfile": {
  "assumptions": "one person, €60,000 gross a year, a one-bedroom home, everyday spending of €1,200 a month in Lisbon scaled by each country's price level",
  "month": {
   "currency": "SGD",
   "gross": 85962,
   "net": 66275.73,
   "rent": null,
   "rentFigure": null,
   "everyday": 2074.2140523882895,
   "everydayHow": "a starting guess, scaled from Lisbon: set your own",
   "childcare": null,
   "health": 106.3938967345966,
   "left": null,
   "missing": [
    "rent"
   ],
   "completeness": {
    "status": "complete",
    "missing": [],
    "approximations": []
   }
  }
 },
 "observations": [
  {
   "metric": "abortion_law",
   "value": 4,
   "period": "2026-11-05",
   "level": "country",
   "source": "abortion-law",
   "retrieved": "2026-11-05",
   "url": "https://sso.agc.gov.sg/Act/TPA1974",
   "note": "On request to 24 weeks after the last period, for citizens, work-pass holders, the wives of either, and women resident for at least 4 months (Termination of Pregnancy Act 1974, ss. 3 and 4; checked against the source linked on 2026-11-05)",
   "sourceName": "Abortion in law, from the statutes cited",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "english_official",
   "value": 1,
   "period": "CLDR 49",
   "level": "country",
   "source": "cldr",
   "retrieved": "2026-10-27",
   "note": "English is official",
   "sourceName": "CLDR territory information",
   "licence": "Unicode-3.0"
  },
  {
   "metric": "english_share",
   "value": 80,
   "period": "CLDR 49",
   "level": "country",
   "source": "cldr",
   "retrieved": "2026-10-27",
   "note": "share of the population that speaks English, any level",
   "sourceName": "CLDR territory information",
   "licence": "Unicode-3.0"
  },
  {
   "metric": "same_sex_couples",
   "value": 1,
   "period": "2026",
   "level": "country",
   "source": "couples-law",
   "retrieved": "2026-11-05",
   "url": "https://sso.agc.gov.sg/Act/WC1961",
   "note": "No recognition: a marriage between persons of the same sex is void (Women's Charter 1961, s. 12); the Constitution, Art. 156, lets Parliament define marriage; Penal Code s. 377A, on sex between men, was repealed in 2022 (checked against the source linked on 2026-11-05)",
   "sourceName": "Same-sex couples in law, from the statutes cited",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "founders_running_club",
   "value": 1,
   "period": "2026-10-27",
   "level": "city",
   "source": "foundersrc",
   "retrieved": "2026-10-27",
   "note": "Chapter: https://www.instagram.com/frc_singapore",
   "sourceName": "Founders Running Club communities",
   "licence": "Public listing (facts of presence only; no licence stated)"
  },
  {
   "metric": "sea_km",
   "value": 1,
   "period": "Natural Earth 5.1",
   "source": "natural-earth",
   "level": "city",
   "retrieved": "2026-10-27",
   "note": "straight line from the centre to the open-sea coastline (lakes excluded)",
   "sourceName": "Natural Earth (coastline, land, countries and populated places)",
   "licence": "Public domain"
  },
  {
   "metric": "mountain_km",
   "value": 262,
   "period": "terrain tiles 2017",
   "source": "terrain-tiles",
   "level": "city",
   "retrieved": "2026-10-27",
   "note": "1062 m at 2.84, 102.07; the centre sits at about 10 m",
   "sourceName": "Terrain Tiles (Terrarium) on AWS Open Data",
   "licence": "Public domain (USGS, NOAA) and Open Government Licence – Canada, with attribution"
  },
  {
   "metric": "city_edge_km",
   "period": "2025",
   "level": "city",
   "source": "ghsl-ucdb",
   "retrieved": "2026-11-05",
   "url": "https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/GHS_UCDB_GLOBE_R2024A/GHS_UCDB_THEME_GLOBE_R2024A/GHS_UCDB_THEME_GENERAL_CHARACTERISTICS_GLOBE_R2024A/V1-2/GHS_UCDB_THEME_GENERAL_CHARACTERISTICS_GLOBE_R2024A_V1_2.zip",
   "value": 9.4,
   "note": "Singapore urban centre (5,117,759 people, 2025): nearest edge 9.4 km to the north-west; half the directions over land end within 12.2 km",
   "sourceName": "GHS Urban Centre Database 2025 (R2024A), general characteristics",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "github_developers",
   "value": 10.7,
   "period": "2026-11-05",
   "level": "city",
   "source": "github",
   "retrieved": "2026-11-05",
   "url": "https://api.github.com/search/users?q=location%3A%22Singapore%22&per_page=1",
   "note": "60,185 accounts whose location names \"Singapore\", over 5,638,700 residents",
   "sourceName": "GitHub user search",
   "licence": "No data licence: only total counts of profiles are stored (GitHub Acceptable Use Policies, section 7)"
  },
  {
   "metric": "annual_leave",
   "value": 7,
   "period": "2026",
   "level": "country",
   "source": "labour-law",
   "retrieved": "2026-11-04T23:14:54.070Z",
   "url": "https://www.mom.gov.sg/employment-practices/leave/annual-leave/eligibility-and-entitlement",
   "fetcher": "labour-law@1",
   "note": "7 days in the first year, one more each year to 14 (MOM: annual leave entitlement)",
   "sourceName": "Paid holiday by law, from the labour codes cited",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "public_holidays",
   "value": 10,
   "period": "2026",
   "level": "country",
   "source": "nager-date",
   "retrieved": "2026-11-04T23:14:53.984Z",
   "url": "https://date.nager.at/api/v3/PublicHolidays/2026/SG",
   "fetcher": "nager-date@1",
   "note": "Public holidays on Monday to Friday in 2026, nationwide",
   "sourceName": "Nager.Date public holidays",
   "licence": "MIT"
  },
  {
   "metric": "temp_high",
   "value": [
    28.7,
    30.1,
    30,
    30,
    30.4,
    29.8,
    30.1,
    29.5,
    29.7,
    30.1,
    29.6,
    29.3
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_low",
   "value": [
    24,
    24.4,
    24.9,
    25.2,
    26.1,
    25.9,
    26.1,
    25.5,
    25.6,
    25.2,
    24.6,
    24.4
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "feels_high",
   "value": [
    33,
    34.3,
    35.7,
    36.9,
    36.6,
    35.4,
    35,
    34.5,
    35,
    35.8,
    35.7,
    34.5
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Apparent temperature: air temperature adjusted for humidity, wind and sun. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "feels_low",
   "value": [
    27.3,
    27.8,
    29,
    29.9,
    30.9,
    30.4,
    30.4,
    29.6,
    29.8,
    29.6,
    28.9,
    28.2
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Apparent temperature: air temperature adjusted for humidity and wind. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_high_p10",
   "value": [
    26.5,
    28.4,
    28.1,
    28.8,
    28.9,
    28.1,
    28.5,
    27.8,
    28,
    28.3,
    28,
    27.7
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_high_p90",
   "value": [
    30.6,
    32.1,
    32.2,
    31.2,
    32.2,
    31.6,
    32,
    31.5,
    31.7,
    32.2,
    31.1,
    31.2
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_low_p10",
   "value": [
    23.5,
    23.6,
    23.8,
    24.3,
    24.9,
    24.7,
    24.5,
    24.3,
    24.5,
    24.3,
    24,
    23.8
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_low_p90",
   "value": [
    24.6,
    25.4,
    26.2,
    26.2,
    27.2,
    27.2,
    27.5,
    26.7,
    26.8,
    26.5,
    25.5,
    25
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_record_high",
   "value": [
    33,
    33.3,
    34.1,
    32.8,
    35.2,
    33.4,
    33.4,
    33,
    33.1,
    33.8,
    33.8,
    33.2
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide); 2021-2025 only, so a rarer extreme can lie outside it",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_record_low",
   "value": [
    22.3,
    22.8,
    22.4,
    23.2,
    23.3,
    24.1,
    23.8,
    22.7,
    23.2,
    23.1,
    23.5,
    23.1
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature in the shade. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide); 2021-2025 only, so a rarer extreme can lie outside it",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "temp_hourly",
   "value": [
    25,
    24.9,
    24.7,
    24.5,
    24.4,
    24.2,
    24.2,
    24.1,
    24.7,
    25.7,
    26.6,
    27.3,
    27.9,
    28.3,
    28.4,
    28.3,
    28,
    27.7,
    27.3,
    26.5,
    26,
    25.7,
    25.4,
    25.2,
    25.6,
    25.4,
    25.2,
    25,
    24.8,
    24.7,
    24.6,
    24.5,
    25,
    26.2,
    27.3,
    28.4,
    29.1,
    29.7,
    29.8,
    29.6,
    29.3,
    28.9,
    28.3,
    27.4,
    26.7,
    26.3,
    26,
    25.8,
    26.1,
    26,
    25.7,
    25.5,
    25.4,
    25.3,
    25.1,
    25,
    25.7,
    26.8,
    27.8,
    28.7,
    29.3,
    29.5,
    29.6,
    29.4,
    29.2,
    28.8,
    28.4,
    27.7,
    27.3,
    26.8,
    26.5,
    26.4,
    26.7,
    26.5,
    26.3,
    26.1,
    25.9,
    25.7,
    25.6,
    25.4,
    26.3,
    27.4,
    28.2,
    28.7,
    29.2,
    29.5,
    29.5,
    29.3,
    29.1,
    29,
    28.6,
    28,
    27.7,
    27.4,
    27.1,
    26.9,
    27.5,
    27.3,
    27.1,
    26.9,
    26.7,
    26.6,
    26.5,
    26.4,
    27.3,
    28.2,
    28.9,
    29.4,
    29.7,
    29.9,
    29.9,
    29.9,
    29.7,
    29.5,
    29.2,
    28.6,
    28.4,
    28,
    27.9,
    27.7,
    27.3,
    27.2,
    27,
    26.8,
    26.6,
    26.5,
    26.3,
    26.3,
    26.8,
    27.5,
    28.1,
    28.6,
    28.9,
    29.2,
    29.4,
    29.4,
    29.3,
    29.2,
    28.9,
    28.4,
    28.1,
    27.7,
    27.6,
    27.4,
    27.3,
    27.1,
    27,
    26.9,
    26.7,
    26.7,
    26.6,
    26.5,
    27.1,
    27.7,
    28.3,
    28.9,
    29.3,
    29.6,
    29.7,
    29.7,
    29.7,
    29.4,
    29.2,
    28.6,
    28.1,
    27.8,
    27.6,
    27.4,
    26.9,
    26.7,
    26.5,
    26.4,
    26.3,
    26.1,
    26,
    25.8,
    26.4,
    27.2,
    27.9,
    28.3,
    28.6,
    28.7,
    28.9,
    28.9,
    28.9,
    28.8,
    28.6,
    28,
    27.7,
    27.4,
    27.2,
    27.1,
    26.9,
    26.7,
    26.6,
    26.4,
    26.3,
    26.2,
    26,
    25.9,
    26.5,
    27.5,
    28.1,
    28.6,
    28.9,
    29.1,
    29.1,
    29.1,
    29.1,
    28.9,
    28.6,
    28,
    27.8,
    27.4,
    27.2,
    27.1,
    26.8,
    26.5,
    26.3,
    26.1,
    25.8,
    25.7,
    25.6,
    25.4,
    26.4,
    27.5,
    28.3,
    28.9,
    29.4,
    29.5,
    29.5,
    29.5,
    29.4,
    29.3,
    28.9,
    28.1,
    27.8,
    27.6,
    27.3,
    27,
    25.8,
    25.6,
    25.5,
    25.3,
    25.1,
    25,
    24.9,
    24.8,
    25.7,
    26.9,
    27.8,
    28.6,
    29,
    29.1,
    29,
    28.7,
    28.5,
    28.3,
    27.9,
    27.1,
    26.9,
    26.5,
    26.3,
    26,
    25.5,
    25.3,
    25.1,
    24.9,
    24.8,
    24.6,
    24.6,
    24.5,
    25.2,
    26.4,
    27.3,
    28.1,
    28.6,
    28.8,
    28.7,
    28.5,
    28.2,
    27.9,
    27.4,
    26.6,
    26.3,
    26,
    25.8,
    25.6
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Air temperature by local hour, January 0:00 to December 23:00. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "cloud_cover",
   "value": [
    92,
    85,
    79,
    82,
    84,
    81,
    79,
    81,
    83,
    88,
    94,
    94
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "wet_days_monthly",
   "value": [
    23.8,
    18.2,
    23.4,
    27,
    24,
    22.8,
    20.6,
    24.8,
    22,
    23,
    26,
    26.6
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "wet_days",
   "value": 282,
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "nice_bins_feels",
   "value": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.4,
    0,
    0.4,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.8,
    0.6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.6,
    0.2,
    1.6,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.4,
    0.6,
    0.6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1.2,
    0.6,
    0.4,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.8,
    0.8,
    0.2,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.4,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.4,
    0.4,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Dry, mostly clear days by their daytime feels-like temperature, whole degrees from -5 to 40 °C, by month. Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "nice_bins_air",
   "value": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.4,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.4,
    0.2,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.4,
    0.8,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.4,
    1.8,
    0.2,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.2,
    0.8,
    0.4,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.6,
    1.2,
    0.6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.8,
    0.8,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.2,
    0.2,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0.4,
    0.2,
    0.4,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Dry, mostly clear days by their daytime air temperature, whole degrees from -5 to 40 °C, by month. Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "beach_days",
   "value": [
    0.2,
    0,
    0.4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0.2
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "active_days",
   "value": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "muggy_days",
   "value": [
    31,
    28.2,
    31,
    30,
    31,
    30,
    31,
    31,
    30,
    31,
    30,
    31
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "grey_days",
   "value": [
    27,
    20.8,
    16.4,
    18.6,
    21,
    17,
    16.2,
    17.8,
    19.4,
    22.2,
    26.4,
    27.4
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "hot_nights",
   "value": [
    31,
    28.2,
    31,
    30,
    31,
    30,
    31,
    31,
    30,
    31,
    30,
    31
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "hot_days",
   "value": [
    20.6,
    24.8,
    28.6,
    29.8,
    31,
    29.2,
    30.2,
    28.8,
    27.6,
    30.6,
    28.8,
    26.8
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "snow_days",
   "value": [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "windy_days",
   "value": [
    0.2,
    0.2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
   ],
   "period": "2021-2025",
   "level": "city",
   "source": "open-meteo-era5",
   "retrieved": "2026-10-28T01:33:22.106Z",
   "url": "https://archive-api.open-meteo.com/v1/archive?latitude=1.28967&longitude=103.85007&start_date=2021-01-01&end_date=2025-12-31&timezone=auto&hourly=temperature_2m,apparent_temperature,dew_point_2m,precipitation,snowfall,cloud_cover,wind_speed_10m",
   "fetcher": "open-meteo-era5@3",
   "note": "Days a month on average, 2021-2025; the test is in docs/weather-scores.md. ERA5 reanalysis at the city's coordinates (a grid about 25 km wide)",
   "sourceName": "Historical weather (ERA5 reanalysis)",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "research_output",
   "value": 1064,
   "period": "2025",
   "level": "city",
   "source": "openalex",
   "retrieved": "2026-10-27",
   "note": "59,996 works by 433 institutions in Singapore",
   "sourceName": "OpenAlex institutions",
   "licence": "CC0-1.0"
  },
  {
   "metric": "builder_density",
   "value": 41,
   "period": "2025",
   "level": "city",
   "source": "openalex",
   "retrieved": "2026-10-27",
   "note": "log scale: 100 works per 100k residents = 0, 30,000 = 100",
   "sourceName": "OpenAlex institutions",
   "licence": "CC0-1.0"
  },
  {
   "metric": "airport_km",
   "value": 17,
   "period": "2026-10-27",
   "level": "city",
   "source": "ourairports",
   "retrieved": "2026-10-27",
   "note": "Singapore Changi Airport (SIN), straight line from the centre",
   "sourceName": "OurAirports airports",
   "licence": "Public domain"
  },
  {
   "metric": "airports_100km",
   "value": 5,
   "period": "2026-10-27",
   "level": "city",
   "source": "ourairports",
   "retrieved": "2026-10-27",
   "note": "XSP, SIN, BTH, JHB, TNJ",
   "sourceName": "OurAirports airports",
   "licence": "Public domain"
  },
  {
   "metric": "universities",
   "value": 118,
   "period": "2026-10-27",
   "level": "city",
   "source": "ror",
   "retrieved": "2026-10-27",
   "note": "ROR organisations of type education (universities, colleges, schools of higher education)",
   "sourceName": "Research Organization Registry",
   "licence": "CC0-1.0"
  },
  {
   "metric": "research_institutes",
   "value": 132,
   "period": "2026-10-27",
   "level": "city",
   "source": "ror",
   "retrieved": "2026-10-27",
   "note": "ROR organisations of type facility (research institutes, laboratories, observatories)",
   "sourceName": "Research Organization Registry",
   "licence": "CC0-1.0"
  },
  {
   "metric": "sunshine_monthly",
   "value": [
    180,
    199,
    197,
    182,
    185,
    175,
    189,
    185,
    161,
    155,
    133,
    133
   ],
   "period": "1991-2020",
   "level": "city",
   "source": "wmo-normals",
   "retrieved": "2026-10-27T11:14:14.879Z",
   "url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/6.6/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TSUN.csv",
   "fetcher": "wmo-normals@1",
   "note": "Measured at ChangiAirport, 17 km away at 14 m (WMO definition: direct sunlight of at least 120 W/m²)",
   "sourceName": "WMO Climatological Standard Normals 1991-2020",
   "licence": "No licence attached; NCEI public access, citation requested (WMO Unified Data Policy)"
  },
  {
   "metric": "sunshine_hours",
   "value": 2074,
   "period": "1991-2020",
   "level": "city",
   "source": "wmo-normals",
   "retrieved": "2026-10-27T11:14:14.879Z",
   "url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/6.6/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TSUN.csv",
   "fetcher": "wmo-normals@1",
   "note": "Measured at ChangiAirport, 17 km away at 14 m (WMO definition: direct sunlight of at least 120 W/m²)",
   "sourceName": "WMO Climatological Standard Normals 1991-2020",
   "licence": "No licence attached; NCEI public access, citation requested (WMO Unified Data Policy)"
  },
  {
   "metric": "degree_share",
   "value": 53.2,
   "period": "2024",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-11-05",
   "url": "https://api.worldbank.org/v2/country/SG/indicator/SE.TER.CUAT.ST.ZS?format=json&per_page=100&date=2015:2026",
   "note": "At least short-cycle tertiary education, % of people aged 25 and over (UNESCO Institute for Statistics via World Bank)",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "doctors",
   "value": 2.83,
   "period": "2022",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-11-05",
   "url": "https://api.worldbank.org/v2/country/SG/indicator/SH.MED.PHYS.ZS?format=json&per_page=100&date=2015:2026",
   "note": "Physicians per 1,000 people (WHO Global Health Workforce Statistics via World Bank)",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "unemployment",
   "value": 2.8,
   "period": "2025",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-11-05",
   "url": "https://api.worldbank.org/v2/country/SG/indicator/SL.UEM.TOTL.ZS?format=json&per_page=100&date=2015:2026",
   "note": "Unemployment, % of the labour force, ILO modelled estimate (via World Bank)",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "clean_government",
   "value": 1.97,
   "period": "2025",
   "level": "country",
   "source": "worldbank-wgi",
   "retrieved": "2026-11-05",
   "url": "https://api.worldbank.org/v2/sources/3/country/SGP/series/GOV_WGI_CC.EST/time/all?format=json&per_page=100",
   "note": "Control of corruption, governance estimate (Worldwide Governance Indicators)",
   "sourceName": "Worldwide Governance Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "price_level",
   "value": 78.3,
   "period": "2025",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-10-27",
   "note": "Private consumption PPP over the market exchange rate; United States = 100",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "homicide_rate",
   "value": 0.07,
   "period": "2023",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-10-27",
   "note": "Intentional homicides per 100,000 people (UNODC via World Bank)",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "life_expectancy",
   "value": 83.3,
   "period": "2024",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-10-27",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  },
  {
   "metric": "health_oop",
   "value": 997,
   "period": "2023",
   "level": "country",
   "source": "worldbank-wdi",
   "retrieved": "2026-11-04",
   "note": "Out-of-pocket health expenditure per person, current US dollars (WHO Global Health Expenditure Database via World Bank)",
   "sourceName": "World Development Indicators",
   "licence": "CC-BY-4.0"
  }
 ],
 "comparisons": [
  {
   "with": "athens-gr",
   "page": "https://borgo.abcastor.com/compare/athens-gr-vs-singapore-sg/"
  },
  {
   "with": "dubai-ae",
   "page": "https://borgo.abcastor.com/compare/dubai-ae-vs-singapore-sg/"
  },
  {
   "with": "melbourne-au",
   "page": "https://borgo.abcastor.com/compare/melbourne-au-vs-singapore-sg/"
  },
  {
   "with": "sydney-au",
   "page": "https://borgo.abcastor.com/compare/singapore-sg-vs-sydney-au/"
  },
  {
   "with": "tokyo-jp",
   "page": "https://borgo.abcastor.com/compare/singapore-sg-vs-tokyo-jp/"
  }
 ],
 "linkOut": [
  {
   "label": "Numbeo: cost of living in Singapore",
   "url": "https://www.numbeo.com/cost-of-living/in/Singapore"
  },
  {
   "label": "WeatherSpark: year-round weather in Singapore",
   "url": "https://weatherspark.com/search?q=Singapore"
  },
  {
   "label": "Wikipedia: Singapore",
   "url": "https://en.wikipedia.org/wiki/Singapore"
  }
 ],
 "cite": "Borgo, \"Living in Singapore\", https://borgo.abcastor.com/city/singapore-sg/, figures as of 2026-11-05. Name the original source of any figure you quote."
}
