Synthetic data — fictional carrier

Spectrum Pivot Advisor

An AI-assisted tool that helps RF engineers decide when to move LTE spectrum to 5G, county by county -- by Richard Valino.

My role
Designer & Prototyper
Tools
Python, Claude API, MCP, Leaflet, Chart.js
Scope
257 counties — Illinois, Wisconsin, Michigan
Demo

Twenty-six seconds, end to end

Map to county to decision, captured from the running prototype. Silent and looping — open the real thing to click through it yourself.

Animated walkthrough: filtering the map to Michigan, zooming to Wayne County, reading the recommendation and the rules that fired, the spectrum block strip, adjusting the MHz split, approving, then the manager review queue and the summary.
The problem

Spectrum decisions depend on stitching together three or four data sources by hand

Over 18 years of RF planning and optimization experience in the telecom industry, I've watched spectrum decisions depend on stitching together three or four data sources by hand.

In my last role as data owner for a regional planning team, I automated pieces of this with Alteryx and Power BI, but the decision itself was still manual and hard to audit.

Research

What practitioners actually said

Method: 3 interviews with RF practitioners, plus my own experience planning spectrum refarms.

“The longest part is waiting for the Capacity team's feedback. Reconciling data from different sources comes second.”

Sr. Engineer, Systems Design — 9 years

“If the county is mostly LTE-only devices, we don't refarm for now.”

Engineer, Systems Design — 3 years

“If some sites are still LTE-only, we might leave 5 MHz on LTE.”

Sr. Engineer, Systems Design — 4 years

“If it's suggesting to refarm LTE when LTE has more users and is clearly congested, I wouldn't trust it.”

Sr. Engineer, Systems Design — 8 years
Quotes lightly edited for clarity; attributed by role only.

Key insights

1

The delay is the handoff, not the analysis

The biggest delay is waiting on another team, not the analysis.

2

Congestion is only one input

Refarming isn't just congestion: hardware readiness, block contiguity, and anchor layers all shape the decision.

3

No “why”, no trust

Engineers won't trust a recommendation without the “why,” and they reject anything that breaks basic planning logic.

4

LTE-only users are the first check

LTE-only users are the risk everyone checks first.

5

Approval runs on email

Handoffs after approval run on email and Excel.

Personas

Who this is for

Primary

RF Planning Engineer

Goal — build a refarm plan that's fast and defensible.

Frustrations — waiting days for capacity feedback; reconciling performance, device, hardware, and spectrum data by hand.

Tools today — Alteryx, Excel, hardware readiness report, spectrum ownership and usage data, email.

Secondary

Planning Manager

Goal — approve plans quickly without missing a risk.

Frustrations — reviews happen fast, with little visibility into how the recommendation was reached.

Supporting stakeholders

Capacity teamMarket team OperationsPerformance team
Current-state journey map

Where the time goes today

Two stages dominate the calendar: waiting on the Capacity team, and building the plan by hand once the data finally arrives.

Stage
Request capacity check
Wait for Capacity team3 days – 1 week
Check hardware readiness
Check spectrum ownership & contiguity
Build plan~1 week
Manager approval
Market kickoff call
Ops implements
Performance team checks KPIs
Actions
Identify candidate counties, send the request
Follow up, work on something else, chase the thread
Pull the readiness report, count LTE-only sites
Pull ownership and usage, check block adjacency by hand
Reconcile four sources, decide each county, write it up
Walk the manager through the plan
Present the plan to the market team
Hand over parameters, answer questions
Watch KPIs after the change
Tools
Email
Email
Hardware readiness report
Spectrum ownership & usage data
Alteryx, Excel
Excel, slides
Call, slides
Email, Excel
Performance data
Pain points
No shared view of which counties are worth asking about
The single longest wait in the process; blocks everything
Separate report, separate format
Contiguity is read off a band plan manually
Reconciling sources by hand — the second-biggest time sink
Little visibility into how the recommendation was reached
Re-explaining the same reasoning to a new audience
Handoff runs on email and Excel
Findings don't loop back into the next plan
Emotion
Stage durations are the ones described in interviews. Cell detail is my synthesis of the tools and pain points named there and in my own experience.
Service blueprint

What sits behind the screen

Three failure points and four handoffs. The tool can only remove the ones that are about information moving between people.

Lane
Identify candidates
Gather evidence
Decide per county
Approve
Implement
Verify
Engineer actions
Pick counties worth reviewing
Pull performance, device, hardware and spectrum data
Judge each county; decide carve, hold, or escalate
Present the plan and the reasoning
Hand parameters to Operations
Read KPIs after the change
Frontstage — tool
Map coloured by recommendation, with filters
One county screen: trends, devices, hardware, spectrum, blocks
Recommendation, confidence, rules fired, AI explanation
Manager review queue with approve / reject and a comment
○Outside the prototype's scope
○Outside the prototype's scope
Backstage
—
⏱Capacity team — request, then wait
—
↪Manager
↪Market team → ↪Operations
↪Performance team
Support systems
Performance data
⚠︎Four sources reconciled by hand — performance data · device data · hardware readiness · spectrum ownership and usage
Rule engine · LLM explanation layer
MCP server — same data, queryable by an agent
⚠︎Email, Excel
Performance data
⏱ Failure point — waiting on another team ⚠︎ Failure point — manual reconciliation, or a handoff that runs on email and Excel ↪ Handoff between teams ○ Outside the prototype's scope
Design principles

Four rules the tool holds itself to

01

Explain the “why” behind every recommendation

Every county shows its top three reasons in plain English and the exact rules that fired.

02

Humans decide; AI recommends

The rule engine makes the call, a person approves it, and the model only explains what was already decided.

03

Encode planning rules the team already trusts

The hard rules come from practice, not from a model: keep 5 MHz of LTE, keep an anchor, never break contiguity.

04

Route uncertainty to people, not guesses

Below 60% confidence a county goes to a manager with the reasons it is uncertain, rather than through on its own.

The solution

One screen per county, with the reasoning attached

Screens from the working prototype. Every number shown is synthetic data for a fictional carrier.

Map view — where to look first

The national frame answers “where does this carrier operate” before anything else. Picking a state zooms to it; picking a county zooms again.

Map of the contiguous United States with Illinois, Wisconsin and Michigan counties coloured by recommendation. 1 2
  • 1Counties coloured by recommendation — Carve, Hold, or Review. The colour pair was validated for colour-blind separation, and the recommendation is always written out as text as well.
  • 2A legend that names each state rather than relying on colour alone.

One-screen county detail

Everything an engineer needs to decide a county, in the order they ask for it: what's recommended, how sure the engine is, why, and what changes.

The full county detail panel for Cook County, Illinois, scrolling from the recommendation down through spectrum, blocks, charts and hardware.
Scroll inside the frame — this is the full panel at real height.

Spectrum, before and after

Each band shows what is owned, what is on LTE, what is on NR, and what the recommendation changes.

Before and after bars for each spectrum band.

Spectrum block strip

Real FCC block designations at their real widths across 600, 700, PCS and AWS — so a 6 MHz Lower A and an 11 MHz Upper C are drawn differently, because they are different.

Block strips for 600, 700, 1900 PCS and 2100 AWS bands, with owned blocks coloured by LTE or NR.

Twelve months of network and device trend

Congestion and users are two separate charts, never one plot with two scales — and the current figures are printed above them, so a tooltip is never the only way to read a value.

Three charts: LTE versus NR congestion, LTE versus NR users, and the monthly device mix of 5G-capable against LTE-only. 1 2
  • 1Current values as plain figures above the charts, for the engineer who just wants the number.
  • 2Device mix over the same window — the migration that decides whether a county is ready at all.

AI explanation — labelled, and never the decision

The AI explanation card with a summary, risks to check before approving, and the impact on LTE-only users. 1 2
  • 1Labelled “AI-generated — verify before approving” on every card, not once in a footer.
  • 2Risks are operational checks a planner would actually make, not a restatement of the recommendation. If the explanation is missing, the card falls back to the rule engine's own reasons.

Adjust — the engineer can disagree by degree

The adjust panel with a slider controlling how many MHz to shift, showing LTE and NR totals after the change. 1 2
  • 1The slider changes how much spectrum moves; the before/after bars and the block strip update live as it moves.
  • 2Its maximum is capped so LTE can never fall below 5 MHz — the interface cannot propose something the rules would reject.

Manager review — uncertainty goes to a person

The manager review queue listing low-confidence counties with a note explaining why each is uncertain. 1 2
  • 1Sorted least-confident first, so the hardest call is the first one on screen.
  • 2Each row says what cost it confidence — a hardware gap, a thin market — and takes an approve or reject with a comment.

Summary — what the plan adds up to

Summary tab showing MHz refarmed, counties decided, and breakdowns by recommendation and by state.
Totals by decision and by state, including how much of the recommended spectrum has actually been approved.
Designing the AI layer

The rule engine decides. The model explains.

The split is enforced by structure, not by instruction. Explanations are written to a separate file and never read back into the recommendations. The chat endpoint has no write path. The MCP server exposes read-only tools, and a test asserts that no write tool is ever added.

That matters for two reasons the interviews made plain: engineers won't trust a recommendation they can't audit, and a tool that breaks basic planning logic gets dismissed entirely. A model that could quietly change a confidence score would put both at risk.

Guardrails

Data-only answers

The model sees one county's data and nothing else, so a question about another county can't be answered from it — enforced by what it can see, not only by what it's told.

Number validation

Every number in the output is checked against the numbers in the input. A failure names the offending figure and retries.

Visible AI labels

Every generated card carries “AI-generated — verify before approving”.

Rule-based fallback

If an explanation is missing or fails validation, the screen shows the rule engine's own reasons instead. It never depends on the model being available.

MCP server

The same data the engineer sees is exposed to an agent through four read-only tools — get_county, list_review_queue, get_state_summary, compare_counties — so a conversation about the plan and the plan itself cannot drift apart. Asking “which Michigan counties are waiting for manager review and why?” returns the same numbers, confidence scores and rules that are on screen.

What building it actually taught me

Early versions of the prompt sometimes rounded or restated numbers differently from the source data, so I added a validation step that checks every number against the input. I also found short, role-specific explanations read better than long ones.

Four assumptions I held going in turned out to be wrong, and each one changed how the layer is built. These are measured from the build across all 257 counties, not from user testing.

What I expectedWhat I measured
A carefully worded prompt would stop internal jargon reaching the engineer. It got to about 93%. Twenty-one of 257 counties still mentioned a rule ID or a raw field name. What closed the gap was making it a check that can fail and retry — not better wording.
Validating every number would catch the dangerous mistakes. It catches invented figures, not wrong reasoning about figures. Asked which layers still carry LTE after a carve, the chat listed a band that the carve empties to zero — every number in the sentence was correct. The fix was to stop asking the model to infer it and supply the after-state directly.
“1–2 risks” in the prompt would produce 1–2 risks. It produced three often enough to matter. Constraining the output schema fixed it across all 257 at once.
Asking for risks would produce useful risks. The first version asked the engineer to confirm the engine's own bookkeeping. Naming what a real pre-approval check looks like — backhaul, site readiness, device migration — changed the output entirely.
Future-state journey map

The same stages, with the waiting taken out of the middle

The Capacity team still reviews — but only the counties the tool flags, instead of every candidate.

Stage
Request capacity check
Capacity team reviews exceptions only
Check hardware readiness
Check spectrum ownership & contiguity
Build plan
Manager approval
Market kickoff call
Ops implements
Performance team checks KPIs
Actions
Open the map, filter to candidates
Review only the counties flagged for review
Read site readiness on the county screen
Read the block strip; contiguity already resolved
Confirm, adjust, or reject each county
Approve from the review queue with a comment
Share a link to the county
Hand over the approved plan
Compare KPIs against the recorded decision
Tools
Spectrum Pivot Advisor
Spectrum Pivot Advisor
Same screen
Same screen
Same screen
Manager review queue
Shared county link
Tracked in the tool
Performance data
What changes
Candidates are visible before anyone is asked
Exceptions only — not every county waits on a reply
Hardware sits on the same screen as the decision
Block adjacency is computed, not read off a band plan
Four sources already reconciled; first pass is on one screen
The manager sees the rules and the reasons, not just the answer
The reasoning travels with the county
Approval and handoff tracked in the tool, not email and Excel
The decision and its reasons are still there to compare against
Emotion
Outcomes & what I'd do next

Estimated, not measured

Today, waiting for the Capacity team's feedback takes 3 days to a week, and our team takes about a week to finish the analysis and plan. Spectrum Pivot Advisor aims to put the first pass on one screen. This is based on my own experience; a usability test is the next step.

Next

Honest limitations

What this is not

Synthetic data

All network, device, hardware, and spectrum figures are generated. Only the Census county data is real.

Fictional carrier

“GLA - Mobile” does not exist. No real carrier's holdings or performance appear anywhere.

Rule-based decisions

The recommendations come from encoded planning rules, not a learned model.

Simplified band plan

Four bands are modelled at block level; 2500 MHz is held as bulk spectrum with no block grid.

Not yet usability tested

No engineer has used this under real conditions. Every outcome above is an estimate.