{
  "ok": true,
  "source": {
    "id": "worldbank-cons",
    "label": "World Bank — Consumption",
    "auto": true
  },
  "base": {
    "code": "ZA",
    "name": "South Africa",
    "currency": "ZAR",
    "flag": "🇿🇦",
    "pppIndex": 0.433,
    "year": 2025
  },
  "target": {
    "code": "MY",
    "name": "Malaysia",
    "currency": "MYR",
    "flag": "🇲🇾",
    "pppIndex": 0.334,
    "year": 2025
  },
  "items": [
    {
      "item": {
        "id": "rent-1br-center",
        "label": "Rent: 1-bedroom, city center",
        "emoji": "🏙️",
        "category": "Housing",
        "usPrice": 1750,
        "unit": "/month",
        "elasticity": 1.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 542.15,
        "local": {
          "currency": "ZAR",
          "amount": 9698.52
        }
      },
      "target": {
        "usd": 376.95,
        "local": {
          "currency": "MYR",
          "amount": 1614.85
        }
      },
      "pctDiff": -30.47
    },
    {
      "item": {
        "id": "rent-1br-outside",
        "label": "Rent: 1-bedroom, outside center",
        "emoji": "🏡",
        "category": "Housing",
        "usPrice": 1400,
        "unit": "/month",
        "elasticity": 1.4,
        "monthlyQty": 1
      },
      "base": {
        "usd": 433.72,
        "local": {
          "currency": "ZAR",
          "amount": 7758.82
        }
      },
      "target": {
        "usd": 301.56,
        "local": {
          "currency": "MYR",
          "amount": 1291.88
        }
      },
      "pctDiff": -30.47
    },
    {
      "item": {
        "id": "rent-3br-center",
        "label": "Rent: 3-bedroom, city center",
        "emoji": "🏢",
        "category": "Housing",
        "usPrice": 3200,
        "unit": "/month",
        "elasticity": 1.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 991.36,
        "local": {
          "currency": "ZAR",
          "amount": 17734.44
        }
      },
      "target": {
        "usd": 689.28,
        "local": {
          "currency": "MYR",
          "amount": 2952.88
        }
      },
      "pctDiff": -30.47
    },
    {
      "item": {
        "id": "meal-cheap",
        "label": "Meal, inexpensive restaurant",
        "emoji": "🍜",
        "category": "Food out",
        "usPrice": 18,
        "unit": "",
        "elasticity": 1.1,
        "monthlyQty": 8
      },
      "base": {
        "usd": 7.17,
        "local": {
          "currency": "ZAR",
          "amount": 128.26
        }
      },
      "target": {
        "usd": 5.39,
        "local": {
          "currency": "MYR",
          "amount": 23.09
        }
      },
      "pctDiff": -24.83
    },
    {
      "item": {
        "id": "dinner-mid",
        "label": "Dinner for two, mid-range",
        "emoji": "🍽️",
        "category": "Food out",
        "usPrice": 75,
        "unit": "3 courses",
        "elasticity": 1.1,
        "monthlyQty": 2
      },
      "base": {
        "usd": 29.87,
        "local": {
          "currency": "ZAR",
          "amount": 534.34
        }
      },
      "target": {
        "usd": 22.45,
        "local": {
          "currency": "MYR",
          "amount": 96.18
        }
      },
      "pctDiff": -24.84
    },
    {
      "item": {
        "id": "fastfood-combo",
        "label": "Fast-food combo meal",
        "emoji": "🍔",
        "category": "Food out",
        "usPrice": 11,
        "unit": "",
        "elasticity": 1,
        "monthlyQty": 0
      },
      "base": {
        "usd": 4.76,
        "local": {
          "currency": "ZAR",
          "amount": 85.15
        }
      },
      "target": {
        "usd": 3.67,
        "local": {
          "currency": "MYR",
          "amount": 15.72
        }
      },
      "pctDiff": -22.9
    },
    {
      "item": {
        "id": "milk",
        "label": "Milk, 1L",
        "emoji": "🥛",
        "category": "Groceries",
        "usPrice": 1.1,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 8
      },
      "base": {
        "usd": 0.56,
        "local": {
          "currency": "ZAR",
          "amount": 10.02
        }
      },
      "target": {
        "usd": 0.46,
        "local": {
          "currency": "MYR",
          "amount": 1.97
        }
      },
      "pctDiff": -17.86
    },
    {
      "item": {
        "id": "bread",
        "label": "Bread, fresh loaf 500g",
        "emoji": "🍞",
        "category": "Groceries",
        "usPrice": 3.2,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 6
      },
      "base": {
        "usd": 1.64,
        "local": {
          "currency": "ZAR",
          "amount": 29.34
        }
      },
      "target": {
        "usd": 1.33,
        "local": {
          "currency": "MYR",
          "amount": 5.7
        }
      },
      "pctDiff": -18.9
    },
    {
      "item": {
        "id": "eggs",
        "label": "Eggs, dozen",
        "emoji": "🥚",
        "category": "Groceries",
        "usPrice": 3.4,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 4
      },
      "base": {
        "usd": 1.74,
        "local": {
          "currency": "ZAR",
          "amount": 31.13
        }
      },
      "target": {
        "usd": 1.41,
        "local": {
          "currency": "MYR",
          "amount": 6.04
        }
      },
      "pctDiff": -18.97
    },
    {
      "item": {
        "id": "chicken",
        "label": "Chicken breast, 1kg",
        "emoji": "🍗",
        "category": "Groceries",
        "usPrice": 10,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 4
      },
      "base": {
        "usd": 5.12,
        "local": {
          "currency": "ZAR",
          "amount": 91.59
        }
      },
      "target": {
        "usd": 4.16,
        "local": {
          "currency": "MYR",
          "amount": 17.82
        }
      },
      "pctDiff": -18.75
    },
    {
      "item": {
        "id": "rice",
        "label": "White rice, 1kg",
        "emoji": "🍚",
        "category": "Groceries",
        "usPrice": 4,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 2
      },
      "base": {
        "usd": 2.05,
        "local": {
          "currency": "ZAR",
          "amount": 36.67
        }
      },
      "target": {
        "usd": 1.66,
        "local": {
          "currency": "MYR",
          "amount": 7.11
        }
      },
      "pctDiff": -19.02
    },
    {
      "item": {
        "id": "apples",
        "label": "Apples, 1kg",
        "emoji": "🍎",
        "category": "Groceries",
        "usPrice": 4.8,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 3
      },
      "base": {
        "usd": 2.46,
        "local": {
          "currency": "ZAR",
          "amount": 44.01
        }
      },
      "target": {
        "usd": 2,
        "local": {
          "currency": "MYR",
          "amount": 8.57
        }
      },
      "pctDiff": -18.7
    },
    {
      "item": {
        "id": "cheese",
        "label": "Local cheese, 1kg",
        "emoji": "🧀",
        "category": "Groceries",
        "usPrice": 12,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 1
      },
      "base": {
        "usd": 6.14,
        "local": {
          "currency": "ZAR",
          "amount": 109.84
        }
      },
      "target": {
        "usd": 4.99,
        "local": {
          "currency": "MYR",
          "amount": 21.38
        }
      },
      "pctDiff": -18.73
    },
    {
      "item": {
        "id": "water-bottle",
        "label": "Water, 1.5L bottle",
        "emoji": "💧",
        "category": "Groceries",
        "usPrice": 2,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 8
      },
      "base": {
        "usd": 1.02,
        "local": {
          "currency": "ZAR",
          "amount": 18.25
        }
      },
      "target": {
        "usd": 0.83,
        "local": {
          "currency": "MYR",
          "amount": 3.56
        }
      },
      "pctDiff": -18.63
    },
    {
      "item": {
        "id": "pint",
        "label": "Domestic beer, pint (draught)",
        "emoji": "🍺",
        "category": "Drinks",
        "usPrice": 6,
        "unit": "0.5L",
        "elasticity": 1.1,
        "monthlyQty": 6
      },
      "base": {
        "usd": 2.39,
        "local": {
          "currency": "ZAR",
          "amount": 42.75
        }
      },
      "target": {
        "usd": 1.8,
        "local": {
          "currency": "MYR",
          "amount": 7.71
        }
      },
      "pctDiff": -24.69
    },
    {
      "item": {
        "id": "beer-import",
        "label": "Imported beer, 330ml bottle",
        "emoji": "🍻",
        "category": "Drinks",
        "usPrice": 8,
        "unit": "",
        "elasticity": 0.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 5.72,
        "local": {
          "currency": "ZAR",
          "amount": 102.33
        }
      },
      "target": {
        "usd": 5.16,
        "local": {
          "currency": "MYR",
          "amount": 22.11
        }
      },
      "pctDiff": -9.79
    },
    {
      "item": {
        "id": "cappuccino",
        "label": "Cappuccino",
        "emoji": "☕",
        "category": "Drinks",
        "usPrice": 5,
        "unit": "regular",
        "elasticity": 1.1,
        "monthlyQty": 12
      },
      "base": {
        "usd": 1.99,
        "local": {
          "currency": "ZAR",
          "amount": 35.6
        }
      },
      "target": {
        "usd": 1.5,
        "local": {
          "currency": "MYR",
          "amount": 6.43
        }
      },
      "pctDiff": -24.62
    },
    {
      "item": {
        "id": "coke",
        "label": "Coke/Pepsi, 330ml",
        "emoji": "🥤",
        "category": "Drinks",
        "usPrice": 2.3,
        "unit": "",
        "elasticity": 0.8,
        "monthlyQty": 0
      },
      "base": {
        "usd": 1.18,
        "local": {
          "currency": "ZAR",
          "amount": 21.11
        }
      },
      "target": {
        "usd": 0.96,
        "local": {
          "currency": "MYR",
          "amount": 4.11
        }
      },
      "pctDiff": -18.64
    },
    {
      "item": {
        "id": "transit-month",
        "label": "Public transport, monthly pass",
        "emoji": "🚇",
        "category": "Transport",
        "usPrice": 65,
        "unit": "/month",
        "elasticity": 1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 28.15,
        "local": {
          "currency": "ZAR",
          "amount": 503.58
        }
      },
      "target": {
        "usd": 21.71,
        "local": {
          "currency": "MYR",
          "amount": 93.01
        }
      },
      "pctDiff": -22.88
    },
    {
      "item": {
        "id": "transit-single",
        "label": "Public transport, one-way",
        "emoji": "🎫",
        "category": "Transport",
        "usPrice": 2.75,
        "unit": "",
        "elasticity": 1,
        "monthlyQty": 0
      },
      "base": {
        "usd": 1.19,
        "local": {
          "currency": "ZAR",
          "amount": 21.29
        }
      },
      "target": {
        "usd": 0.92,
        "local": {
          "currency": "MYR",
          "amount": 3.94
        }
      },
      "pctDiff": -22.69
    },
    {
      "item": {
        "id": "taxi-start",
        "label": "Taxi start (normal tariff)",
        "emoji": "🚕",
        "category": "Transport",
        "usPrice": 4,
        "unit": "",
        "elasticity": 1.1,
        "monthlyQty": 0
      },
      "base": {
        "usd": 1.59,
        "local": {
          "currency": "ZAR",
          "amount": 28.44
        }
      },
      "target": {
        "usd": 1.2,
        "local": {
          "currency": "MYR",
          "amount": 5.14
        }
      },
      "pctDiff": -24.53
    },
    {
      "item": {
        "id": "taxi-km",
        "label": "Taxi, per km",
        "emoji": "🛣️",
        "category": "Transport",
        "usPrice": 1.8,
        "unit": "/km",
        "elasticity": 1.1,
        "monthlyQty": 0
      },
      "base": {
        "usd": 0.72,
        "local": {
          "currency": "ZAR",
          "amount": 12.88
        }
      },
      "target": {
        "usd": 0.54,
        "local": {
          "currency": "MYR",
          "amount": 2.31
        }
      },
      "pctDiff": -25
    },
    {
      "item": {
        "id": "petrol",
        "label": "Petrol/gasoline, 1L",
        "emoji": "⛽",
        "category": "Transport",
        "usPrice": 0.95,
        "unit": "",
        "elasticity": 0.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 0.68,
        "local": {
          "currency": "ZAR",
          "amount": 12.16
        }
      },
      "target": {
        "usd": 0.61,
        "local": {
          "currency": "MYR",
          "amount": 2.61
        }
      },
      "pctDiff": -10.29
    },
    {
      "item": {
        "id": "utilities",
        "label": "Basic utilities, 85m² apartment",
        "emoji": "💡",
        "category": "Utilities & comms",
        "usPrice": 200,
        "unit": "/month",
        "elasticity": 1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 86.6,
        "local": {
          "currency": "ZAR",
          "amount": 1549.19
        }
      },
      "target": {
        "usd": 66.8,
        "local": {
          "currency": "MYR",
          "amount": 286.17
        }
      },
      "pctDiff": -22.86
    },
    {
      "item": {
        "id": "internet",
        "label": "Internet, 60Mbps+ unlimited",
        "emoji": "🌐",
        "category": "Utilities & comms",
        "usPrice": 70,
        "unit": "/month",
        "elasticity": 1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 30.31,
        "local": {
          "currency": "ZAR",
          "amount": 542.22
        }
      },
      "target": {
        "usd": 23.38,
        "local": {
          "currency": "MYR",
          "amount": 100.16
        }
      },
      "pctDiff": -22.86
    },
    {
      "item": {
        "id": "mobile",
        "label": "Mobile plan, 10GB+ data",
        "emoji": "📱",
        "category": "Utilities & comms",
        "usPrice": 45,
        "unit": "/month",
        "elasticity": 1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 19.49,
        "local": {
          "currency": "ZAR",
          "amount": 348.66
        }
      },
      "target": {
        "usd": 15.03,
        "local": {
          "currency": "MYR",
          "amount": 64.39
        }
      },
      "pctDiff": -22.88
    },
    {
      "item": {
        "id": "gym",
        "label": "Gym membership, month",
        "emoji": "🏋️",
        "category": "Lifestyle",
        "usPrice": 50,
        "unit": "/month",
        "elasticity": 1.1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 19.91,
        "local": {
          "currency": "ZAR",
          "amount": 356.17
        }
      },
      "target": {
        "usd": 14.97,
        "local": {
          "currency": "MYR",
          "amount": 64.13
        }
      },
      "pctDiff": -24.81
    },
    {
      "item": {
        "id": "cinema",
        "label": "Cinema seat",
        "emoji": "🎬",
        "category": "Lifestyle",
        "usPrice": 14,
        "unit": "",
        "elasticity": 1.1,
        "monthlyQty": 2
      },
      "base": {
        "usd": 5.58,
        "local": {
          "currency": "ZAR",
          "amount": 99.82
        }
      },
      "target": {
        "usd": 4.19,
        "local": {
          "currency": "MYR",
          "amount": 17.95
        }
      },
      "pctDiff": -24.91
    },
    {
      "item": {
        "id": "haircut",
        "label": "Men's haircut",
        "emoji": "💈",
        "category": "Lifestyle",
        "usPrice": 30,
        "unit": "",
        "elasticity": 1.1,
        "monthlyQty": 1
      },
      "base": {
        "usd": 11.95,
        "local": {
          "currency": "ZAR",
          "amount": 213.77
        }
      },
      "target": {
        "usd": 8.98,
        "local": {
          "currency": "MYR",
          "amount": 38.47
        }
      },
      "pctDiff": -24.85
    },
    {
      "item": {
        "id": "jeans",
        "label": "Jeans (mid-range brand)",
        "emoji": "👖",
        "category": "Lifestyle",
        "usPrice": 55,
        "unit": "",
        "elasticity": 0.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 39.35,
        "local": {
          "currency": "ZAR",
          "amount": 703.93
        }
      },
      "target": {
        "usd": 35.47,
        "local": {
          "currency": "MYR",
          "amount": 151.95
        }
      },
      "pctDiff": -9.86
    },
    {
      "item": {
        "id": "sneakers",
        "label": "Running shoes (brand)",
        "emoji": "👟",
        "category": "Lifestyle",
        "usPrice": 90,
        "unit": "",
        "elasticity": 0.4,
        "monthlyQty": 0
      },
      "base": {
        "usd": 64.39,
        "local": {
          "currency": "ZAR",
          "amount": 1151.87
        }
      },
      "target": {
        "usd": 58.04,
        "local": {
          "currency": "MYR",
          "amount": 248.64
        }
      },
      "pctDiff": -9.86
    },
    {
      "item": {
        "id": "coworking",
        "label": "Coworking hot desk, month",
        "emoji": "💻",
        "category": "Lifestyle",
        "usPrice": 250,
        "unit": "/month",
        "elasticity": 1.1,
        "monthlyQty": 0
      },
      "base": {
        "usd": 99.56,
        "local": {
          "currency": "ZAR",
          "amount": 1781.03
        }
      },
      "target": {
        "usd": 74.83,
        "local": {
          "currency": "MYR",
          "amount": 320.57
        }
      },
      "pctDiff": -24.84
    }
  ],
  "categoryTotals": [
    {
      "category": "Housing",
      "base": 1967.23,
      "target": 1367.79,
      "pctDiff": -30.47
    },
    {
      "category": "Food out",
      "base": 41.8,
      "target": 31.51,
      "pctDiff": -24.62
    },
    {
      "category": "Groceries",
      "base": 20.73,
      "target": 16.84,
      "pctDiff": -18.77
    },
    {
      "category": "Drinks",
      "base": 11.28,
      "target": 9.42,
      "pctDiff": -16.49
    },
    {
      "category": "Transport",
      "base": 32.33,
      "target": 24.98,
      "pctDiff": -22.73
    },
    {
      "category": "Utilities & comms",
      "base": 136.4,
      "target": 105.21,
      "pctDiff": -22.87
    },
    {
      "category": "Lifestyle",
      "base": 240.74,
      "target": 196.48,
      "pctDiff": -18.38
    }
  ],
  "monthlyBudget": {
    "base": 864.15,
    "target": 632.52,
    "pctDiff": -26.8
  },
  "attribution": {
    "sources": [
      {
        "id": "worldbank-cons",
        "label": "World Bank — Consumption",
        "attribution": "Computed from World Bank Open Data (PA.NUS.PRVT.PP ÷ PA.NUS.FCRF). Latest available year per country.",
        "updated": "2026-09-09",
        "year": 2025,
        "url": "https://data.worldbank.org/indicator/PA.NUS.PRVT.PP"
      }
    ],
    "citation": "Geo-Parity — Cost of Living & Salary Comparison. Data: World Bank — Consumption (2025). https://geo-parity.com/cost-of-living/south-africa-vs-malaysia/",
    "permalink": "https://geo-parity.com/cost-of-living/south-africa-vs-malaysia/",
    "terms": "Free to use and quote with attribution. Figures are estimates for orientation, not advice."
  }
}