ATCS-GH case study

Pitch deck

ATCS-GHAdaptive Traffic Control System — Ghana

A deep reinforcement learning controller that replaces fixed-timer signal plans — reading each junction in real time and choosing its next phase every 5 seconds.

An isometric city corridor with connected traffic signals, a data centre and traffic hub, and streams of live data flowing between the junctions.

Median wait reduction

86%

vs. fixed-time control, across 8 scenarios

Scenarios improved

8 / 8

and at every random seed, not only on average

Status

Simulation-validated · Pre-pilot

No field deployment yet. All results are from simulation.

Founder

Osborn Dogbe

Valiborn Technologies · Accra, Ghana

02 · The problem

Ghana loses GH¢4.5 billion a year to congestion.

The cost is not abstract. It is measured hours, burnt fuel, and degraded working capacity — concentrated in the same Accra corridors every weekday morning and evening.

Annual cost breakdown

  • Time lost sitting in trafficGH¢3.2 bn · 71%
  • Productivity lost to congestion-related stress and fatigueGH¢815 m · 18%
  • Wasted fuelGH¢434 m · 10%

Source: “The Cost of Gridlock: A Policy Brief on Ghana’s Urban Traffic Crisis,” Glima Research, February 2026.

03 · Why fixed timers fail

A green stays green for a preset number of seconds — whether twenty cars are queued, or none.

F1

The plan cannot see the road

No sensing, no feedback. The controller runs the same schedule into an empty street and a saturated one.

F2

Surges are invisible

A market-day surge or an incident produces demand the fixed plan has no mechanism to absorb.

F3

Rush hour flips direction

Morning flow is inbound, evening outbound. One split cannot serve both, so one peak is always mistimed.

F4

Junctions don't coordinate

Traffic cleared at one light simply queues again at the next 300 m down the corridor.

04 · The solution

Replace the schedule, not the hardware.

ATCS-GH is a software controller. It keeps the existing poles, heads and phase order, and substitutes the one component that is failing: the decision about which phase runs next, and for how long.

01

Software-first

Runs end-to-end on a laptop. No proprietary controller cabinet, no vendor lock.

02

Corridor-aware

Three independent agents, one per junction, with no explicit communication — each sees its neighbours through its own state vector.

03

Built for local mixed traffic

Private cars, shared trotros and signal-respecting pedestrian crossings — modelled on real Accra geometry, not a generic grid.

Test bed — N6 Nsawam corridor

Three signalised junctions 300 m apart — Achimota/Neoplan, Asylum Down, Nima/Tesano — plus a single-junction bed at 5.6216°N 0.2193°W. Three independent agents, no explicit communication. Both beds are calibrated from real Accra geometry in SUMO, the microsimulator used by transport agencies.

05 · How it works

Sense → decide → act, every five seconds.

Sense

41 / 46 dims

41 at a single junction; 46 per junction on the corridor.

  • Per-lane queue length
  • Vehicle speed
  • Accumulated waiting time
  • Corridor: neighbour queue, neighbour phase, link occupancy

Decide

Double-DQN

PyTorch. One agent per junction — the corridor runs three, trained independently.

  • Value estimate per phase
  • Bounded and clipped reward
  • No scripted override of any kind

Act

5 s interval

One of five protected-left phases is committed to the signal, then the loop closes.

  • SUMO applies the phase
  • Godot 4 renders it live over WebSocket
  • Flask dashboard logs the metrics

Loop closes — 720 decisions per hour, per junction

06 · Action space & safety

Five phases. Protected left only.

0

HOLD

Keep the current phase running — extend a green that is still clearing queue.

1

NS_THROUGH

North–south straight movements.

2

NS_LEFT

North–south protected left turns, no conflicting through movement.

3

EW_THROUGH

East–west straight movements.

4

EW_LEFT

East–west protected left turns, no conflicting through movement.

Deliberate exclusion

Permissive and all-green phases are removed from the action space. They deadlock the junction box: opposing streams enter the intersection together, block each other mid-turn, and no subsequent phase can clear them. This was not a design assumption — it was a real failure observed in training, diagnosed, and fixed by constraining the action space. A hard-coded emergency-vehicle preemption rule was also removed, so every result here is purely learned behaviour with no scripted override propping it up.

07 · Training methodology

The differentiator is not the network. It is how it is trained and selected.

Deep RL on traffic is well-trodden. What makes these results hold up is a set of decisions aimed squarely at the failure modes that usually break it: reward blow-up under saturation, useless early exploration, scenario overfitting, and best-case checkpoint selection.

T1

Bounded, clipped rewards

Saturated traffic cannot produce a runaway reward signal. Without the bound, a gridlocked junction generates penalties large enough to trap the agent in the gridlock that caused them.

T2

Expert warm-start

70% of exploratory actions follow a sustained-green heuristic. Heavy scenarios keep flowing while exploration decays, so the agent learns from traffic that moves instead of from a car park.

T3

Scenario rotation

One demand scenario per episode, round-robin. The agent never gets to specialise in the easy case — every scenario keeps returning until it is handled.

T4

Maximin model selection

The shipped checkpoint is the one whose worst scenario — or worst junction, on the corridor — performs best. Not its best case. Gated to near-greedy exploration, so selection reflects deployment behaviour.

08 · Results

86% median reduction in mean average vehicle waiting time.

Every number here comes from a greedy policy with exploration switched off, run over full two-hour scenarios, five random seeds each. Nothing is a training-time best case.

8 / 8

Scenarios improved

No scenario where the learned controller is worse.

40

Evaluation runs

8 scenarios × 5 seeds, greedy policy, ε = 0.

7200 s

Per run

Full two-hour demand profiles, not short episodes.

≈ 2 h

To train the corridor

Three agents, on a laptop. No cluster required.

SystemScenarioATCS-GHFixed timerReduction
CorridorEvening rush10.5 s134.8 s92%
CorridorMorning rush13.0 s143.1 s91%
CorridorOff-peak3.4 s25.6 s87%
SingleWeekend market13.8 s885.8 s98%
SingleMorning rush27.8 s186.7 s85%
SingleContinuous day18.1 s47.6 s62%
SingleOff-peak8.4 s14.2 s41%
SingleEvening rush256.1 s427.4 s40%

Mean average vehicle waiting time, seconds — lower is better. Greedy policy, ε = 0, 7200 s runs, 5 seeds each. Baseline is a realistic protected-left fixed timer: NS 40 s through / 15 s left, EW 25 s / 10 s. ✳ collapse-avoidance, not typical performance — see section 09.

09 · How to read these numbers

What these results are not.

A reviewer's first instinct on seeing a 98% improvement should be suspicion. So here is the reading we would give ourselves, unprompted — the honest headline is 85–92% on peak-hour scenarios, and every qualifier below is load-bearing.

C1The 98% figure

98% is collapse-avoidance, not typical performance.

In the weekend-market scenario the fixed-timer baseline is a gridlocked junction, so the agent is preventing a breakdown rather than improving a plan that works. Read it as robustness, not speed-up. The honest headline is 85–92% on peak-hour scenarios.

C2The comparison

The comparison is always against fixed-time control.

That is the status quo across much of Accra, which is why it is the right baseline. Against a modern vehicle-actuated system the margin would be smaller — we have not measured that comparison and do not claim it.

C3The setting

These are simulation results. There is no field deployment.

Status is simulation-validated, pre-pilot. Everything reported here comes from SUMO with calibrated Accra geometry. No vehicle in Accra has yet been stopped or released by this controller.

C4The sensing

The agent currently reads idealised sensor data.

Real cameras and inductive loops give noisy, dropout-prone readings. Field performance is expected to be lower than these figures, and quantifying that gap is the next phase of work, not an afterthought.

C5The demand

Demand was calibrated to solvable levels.

Both controllers are graded against an achievable target rather than an impossible one. Loading the network past the point where any signal plan can cope would inflate the relative improvement without saying anything useful.

10 · Validation rigour

Four choices that made the results harder to get.

V1

An honest baseline

A realistic protected-left fixed timer — NS 40/15 s, EW 25/10 s. An earlier, easier baseline was discarded for being too easy to beat.

V2

Worst-case selection

Maximin checkpointing: we ship the model with the best worst case, so the reported numbers are not a lucky snapshot cherry-picked from a training curve.

V3

Deployment conditions

Exploration off (ε = 0), full 7200 s scenarios, 5 seeds each, 40 runs total. Evaluated the way it would run on the street, not the way it trains.

V4

Reproducibility

Fixed seeds, a scripted evaluation harness, and the whole pipeline runs on a laptop — so any reviewer can re-run it rather than take our word for it.

11 · What's built

A working platform, not a notebook.

Five components exist and run today, end to end, on commodity hardware — simulation, agents, live 3D visualisation, analytics, and the evaluation harness that produced every figure above.

01SUMO

Calibrated SUMO networks

Achimota/Neoplan junction and the 3-junction N6 Nsawam corridor, built on real geometry with mixed traffic — private cars, shared trotros, signal-respecting pedestrian crossings.

02PyTorch

Trained Double-DQN agents

One agent per junction; three independent agents on the corridor with no explicit communication. Shipped checkpoints selected by worst-case performance.

03Godot 4

Real-time 3D visualiser

A full Accra streetscape — vehicles, pedestrians, day/night cycle and weather — driven live from the simulation over WebSocket. Built for non-technical stakeholders, including city officials.

04Flask

Analytics dashboard

Live queue, wait and throughput telemetry per junction and per phase, so behaviour can be inspected rather than inferred from a summary number.

05Python

Evaluation harness

Scripted multi-seed, multi-scenario benchmarking with exploration disabled — the harness that produced all 40 runs, re-runnable end to end on a laptop.

12 · Transferability & scaling

We tested whether a trained policy transfers. It does not.

A swap test dropped each junction's trained policy onto the other junctions with zero retraining. Every swap failed outright. Lane layouts differ, so the inputs fall outside the model's training distribution — and on a corridor the damage compounds, because one misbehaving junction backs up into its neighbours.

Swap test — trained policy → target junction

J0 → J1 FAILEDJ0 → J2 FAILEDJ1 → J0 FAILEDJ1 → J2 FAILEDJ2 → J0 FAILEDJ2 → J1 FAILED

Zero retraining, greedy policy. Reported because it is informative, not because it flatters the system.

The consequence, stated plainly

The product is not a checkpoint. It is the pipeline that produces one.

Network calibration, reward and training design, and the evaluation harness are the durable assets. A new junction is a retraining job measured in hours on commodity hardware, warm-started from existing weights.

13 · Roadmap

From simulation to a supervised live corridor.

01Complete

Simulation validation

Multi-seed benchmarking across 8 scenarios, the 3D visualiser, and a reproducible evaluation harness are all shipped and running.

02Next

Realistic perception

Camera-based vehicle and queue detection, injected sensor noise and dropout, and an explicit measurement of how much performance degrades under it.

03Then

Shadow-mode pilot

Pilot engagement with a metropolitan road authority, instrumenting one live junction in shadow mode — recommending phases without controlling them.

04Then

Supervised live control

Supervised control of a pilot corridor with measured before/after outcomes, extended junction by junction as each one clears its own evaluation.

Shadow mode means the controller recommends phases and is measured against the live timer without ever driving the signal. Nothing touches public traffic until it has been graded that way first.

14 · Why Google Africa Applied AI Lab

The controller works. What's missing is perception and scale.

Between this deck and a live Accra junction sit two hard problems and one open research question. All three are things the Lab is unusually well placed to unblock.

01Highest leverage

Vision models for detection

Inductive loop sensors are expensive to install and maintain. Robust vehicle and queue estimation from ordinary roadside cameras is the single change that makes this deployable at African cost structures — and it is the gap between a validated controller and a live junction.

02Timeline

Compute for network-scale training

Three coordinated agents train on a laptop. Tens of junctions across a district is a different problem — more agents, more interaction, far more scenario coverage. Serious training capacity moves that from years to months.

03Open questions

RL expertise

Multi-agent stability, sim-to-real transfer, and safe deployment of a learned policy onto public infrastructure are open questions. They are answered better with Google engineers than alone.

04Reach

A named African deployment case

A measured before/after on a real Accra corridor generalises directly to Lagos, Nairobi and Kampala — the same fixed-timer infrastructure, the same congestion economics, the same absent capital budget for new sensor hardware.

15 · Contact

Osborn Dogbe

Founder, Valiborn Technologies · Accra, Ghana

ideally47@gmail.com

Simulation-validated · Pre-pilot · Results are simulation-derived, no field deployment