Decision Intelligence System

Every recommendation comes with a reason.
Here’s how we build it.

MobilityLens doesn’t guess. Every plan, alert, and recommendation is assembled from your profile, your exact ZIP code, and authoritative research — then checked against six validation criteria before it reaches you. Not a chatbot. A decision-support system.

The recommendation pipeline

Seven stages. Every request. No shortcuts.

1

Request normalized

user_id, tier, locale, zip, task_type, trace_id captured and validated before any processing begins.

2

Stage classification

Anonymous → Free → Paid → Premium determines which features unlock, which model tier routes, and what data can surface.

3

Task classification

Structured query? RAG retrieval? Agent reasoning? A cheap classifier routes the request before any expensive model call.

4

Memory assembly

Session (Redis) + Profile (PostgreSQL) + Knowledge (Qdrant, location-filtered) assembled before the LLM sees any prompt.

5

LLM reasoning

vLLM/Mistral for small and mid-complexity tasks. Claude API for complex agent routes. Local inference is always attempted first.

6

Safety validation

Benefits cliff check, citation verification, PII redaction, tier permissions — six checks run on every response.

7

Response assembly

A typed AIResponse object is returned — never raw LLM text to the UI. Every output is structured and auditable.

Steps 3–5 route through six expert personas before the output is assembled.

Meet the six personas

What the system knows before it reasons

Three distinct data layers assembled before any model call. The depth of the input is why the output is specific — not generic.

Your Profile

EMS scores, four-capital assessments, household composition, ZIP code, goals, and tier. Updated as you complete your assessment and take actions.

Location Intelligence

HUD Fair Market Rents, ALICE county thresholds, local job density, available programs, transit access. Filtered to your exact ZIP — not national averages.

Research Knowledge

Opportunity Insights mobility rates, Social Capital Atlas, policy documents, expert interview library. Retrieved with semantic search, not keyword matching.

What you actually get

Not a paragraph of advice. A structured decision.

Given real inputs, here’s what the system produces — alerts, goals, and recommendations with sources attached.

Input

ProfileEMS 62 · Memphis, TN 38118 · $28,000/yr income · 2 adults, 1 child (age 6)
Question“Should I take the $19/hr job offer?”
LocationHUD FMR 2024 + ALICE Shelby County 2023 loaded from DataHub
Research14 documents retrieved via semantic search · 6 persona calls · 2.4 seconds
Seven validation checks run before output is assembled.

Output

ALERT: Benefits cliff detected

At $39,520/yr, SNAP eligibility ends. Annual SNAP loss ≈ $4,200. Net household gain: ~$1,120 — not the expected $10,400. Do not accept without running the subsidy check below.

GOAL: Apply for childcare subsidy before job start date

Tennessee Child Care Certificate Program (85% SMI). Saves $340/mo. Changes net monthly gain from +$93 to +$433.

RECOMMENDATION: Negotiate schedule before accepting

School pickup window conflicts with shift end time. A 3:30 pm release on school days eliminates $214/mo aftercare cost.

Sources

ALICE Shelby County 2023 · HUD FMR 2024 · TN DHS SNAP table · Tennessee Child Care Certificate Program

Six validation checks on every recommendation

A recommendation that fails any check is blocked and replaced with a clear explanation.

Benefits cliff check

Would this income change leave the household worse off after accounting for lost program benefits?

Structural check

Does this resource or program actually exist and operate in the user's county?

Household check

Is this recommendation valid for the user's specific family composition?

Data freshness

Is the underlying ALICE data no more than two years old for this county?

Capital completeness

Have all four capitals been assessed before generating a mobility plan?

Citation present

Can every factual claim in this recommendation be traced to a specific source document?

What we never do

Privacy and data integrity are architectural constraints — not policy promises.

NEVER send client case data to third-party AI APIs

All sensitive data stays on our self-hosted infrastructure, never leaves the VPC.

NEVER store PII in the vector database

Qdrant holds only research knowledge and public documents — never personal records.

NEVER display a metric for cohorts under 50 people

Population analytics enforce a minimum cohort of 50 before any metric is shown.

NEVER generate or modify EMS scores using an LLM

The Economic Mobility Score is computed deterministically — no AI in the calculation.

The AI advisor uses a local Mistral 7B model hosted on our own infrastructure — your data never leaves our servers for AI inference. The EMS score is computed deterministically using the lib/scoring/ engine — no AI involved in the calculation, ever.

Ready to see the engine in action?

Schedule a walkthrough with our team or create a free account to explore the platform.