Inspiration

As an Economics student, I spend a lot of time looking at inflation data, purchasing power parity (PPP), and CPI baskets. But when I looked at tools for students planning to study abroad, I noticed a massive gap. Most university rankings focus entirely on prestige or academic output, ignoring the single biggest constraint for students today: financial survival.

I realised that a "top-ranked" university in a city with 8% inflation and skyrocketing rents isn't actually a good opportunity; it's a debt trap. I wanted to build a tool that treats a student's budget like an economic model, allowing them to stress-test their future in a fun and simple way.

What it does

CityLens is a transparent, data-driven dashboard that calculates a normalised "Affordability Score" for 33+ global cities. Unlike standard cost-of-living calculators, it is tailored specifically for the student basket of goods (Rent, Cheap Food, Public Transport).

Key features include:

  • Weighted Preferences: Users can adjust the weight of rent versus wages based on their personal situation.
  • Scenario Testing: A logic engine that simulates economic shifts (e.g., "Recession" or "Growth") to see how budget scenarios change.
  • Geometric Map: A stylised map that allows for quick scanning of affordability zones without visual clutter.

How I built it (The "No-Code" )

This was my biggest challenge. I am an Economics student, not a Developer. I am comfortable with R for statistics, but I have zero experience with React or web development.

To bridge this gap, I leaned entirely on Generative AI and No-Code tools:

  1. Logic First: I wrote the scoring algorithms in R to ensure the math was sound.
  2. AI Design: I used Figma AI to generate the UI layouts and component hierarchies.
  3. Visualising Data: I used a simple Geometric Abstract Map to represent the data cleanly.

The Methodology & Scope

To ensure the rankings were fair, I applied a Min-Max normalisation technique. Since high costs are "bad" for affordability, I inverted the normalisation for expenses.

$$ Score_{cost} = 100 - \left( \frac{Cost_{city} - Cost_{min}}{Cost_{max} - Cost_{min}} \right) \times 100 $$

Important Note on Data Granularity

One specific challenge was distinguishing between National and City-level economics. I structured the data model as follows:

  • Micro Data (Costs): Rent, Food, and Transport data are City-Specific. The model compares major urban hubs directly (e.g., London vs. Manchester or New York vs. Austin).
  • Macro Data (Context): For broader economic indicators like Inflation Rates and Unemployment, the model primarily utilises Country-Level aggregates. While we compare major cities, we assume the national economic health (e.g., UK Inflation) applies to the student's experience in that city, as city-specific macro-data is often unavailable or lagging.

Challenges I ran into

Working alone as a non-coder was intimidating. I initially struggled to find reliable city-specific inflation data for every single location. I realised that trying to find the "inflation rate of a specific neighbourhood in Berlin or London" was difficult within the timeframe.

I overcame this by defining a clear Model Scope: I decided to map Major Global Cities using National Economic Baselines. This trade-off allowed me to keep the data consistent across 33 cities without breaking the model with missing data points.

Note:This is a prototype so the numbers maybe slightly off

Built With

Share this project:

Updates

Submission history