Back to projects

Project / 02

GridWise

Turning scattered city signals into explainable planning decisions.

GridWise scores each area on five normalized readiness dimensions — market, mobility, infrastructure, policy, and strategic — using a deterministic weighted formula. City and Developer lenses apply different weight profiles to those same metrics, so priorities differ without changing the underlying data. Relevant planning evidence is retrieved and kept linked to the result, and a planning copilot narrates that score and evidence — it cannot generate or alter the score.

  • Next.js
  • React
  • TypeScript
  • Leaflet
  • Tailwind CSS
  • OpenAI API
0–100 normalized metricsCity / Developer lensesEvidence-backed outputs

Deterministic Scoring

Weighted normalized metrics.
No LLM scoring.

City / Developer Lenses

Same normalized metrics.
Different stakeholder priorities.

Evidence-Backed Outputs

Relevant evidence stays linked to each result.

AI Explains, Doesn’t Score

Copilot narrates; it cannot change the score.

System architecture

GridWise architecture: urban signals become normalized metrics and a deterministic weighted score; drivers, evidence, and a planning map feed a read-only Planning Copilot explanation.
View full diagram

Engineering decisions

DecisionWhyTradeoff
Deterministic weighted scoring, not LLM scoring.Every score stays traceable to explicit inputs and weights.Weight profiles must be designed and maintained by hand.
Shared metrics, lens-specific weights.City and Developer views stay comparable, not identical.Both weighting paths must stay normalized to the same model.
Scoring, evidence, and generation stay separate.Decision logic, context, and language generation keep clear boundaries.Requires explicit state handoffs between layers.

Under the hood

Map / data

  • Next.js + React + Leaflet
  • Sample planning-area polygons
  • Structured evidence linked to areas

Scoring / evidence

  • score = Σ(weight × metric)
  • Normalized stakeholder weight profiles
  • Policy snippets ranked by type + keyword overlap

Planning Copilot

  • /api/assistant reads score + weights + evidence, read-only
  • gpt-4.1-mini generates the explanation
  • Deterministic fallback with no API key

Technical deep dives

City and Developer lenses reweight the same five normalized metrics to create stakeholder-specific readiness views.
City vs Developer Lens LogicView full diagram
Illustrative evidence trace from a computed readiness result through retrieved source snippets to a grounded Planning Copilot explanation.
Evidence TraceabilityView full diagram

System checks

  • Metrics normalized before weighting.
  • Score bounded 0–100.
  • Evidence remains linked to the resulting explanation.
  • Copilot cannot mutate the computed score.

Next test

Weight-sensitivity analysis to test ranking stability as individual lens weights change.