Modular policy tool for faster eligibility matching

Modular policy tool for faster eligibility matching

Modular policy tool for faster eligibility matching

Upland Advocacy

Upland Advocacy

Upland Advocacy

Speed and clarity for policy input, when every second counts on a call

Speed and clarity for policy input, when every second counts on a call

Patient advocates often scrambled to find eligibility rules during support calls. I designed a modular input system that breaks down complex policy logic into clear step-by-step actions for faster processing with fewer errors.

Patient advocates often scrambled to find eligibility rules during support calls. I designed a modular input system that breaks down complex policy logic into clear step-by-step actions for faster processing with fewer errors.

*Partial UI shown due to NDA. These illustrate structural decisions behind faster rule entry and easier validation.

*Partial UI shown due to NDA. These illustrate structural decisions behind faster rule entry and easier validation.

Timeline

2023 Feb - June (4 months)

The Team

Me (Lead Product Designer)

Ibadat Shaney (Product Owner)

Suhail Amhed (Lead Business Analyst)

Aswhin Kumaar (Business Analyst)

Sana Ru (Lead Frontend Developer)

Shardha Sapra (Senior Frontend Developer)

CHALLENGES

CHALLENGES

Eligibility rules were hard to find, verify, and trust, all during live calls

Eligibility rules were hard to find, verify, and trust, all during live calls

Fragmented Workflows

Fragmented Workflows

Advocates jumped between tabs and spreadsheets during calls, slowing them down when patients needed a faster answer

Advocates jumped between tabs and spreadsheets during calls, slowing them down when patients needed a faster answer

Mismatched Rules

Mismatched Rules

Inconsistent rule formats and vague criteria often led to wrong matches and missed financial aid

Inconsistent rule formats and vague criteria often led to wrong matches and missed financial aid

No Single Source of Truth

No Single Source of Truth

Policy details were scattered across files, versions, and notes, making it hard to verify anything

Policy details were scattered across files, versions, and notes, making it hard to verify anything

GOALS

GOALS

I aimed to turn fragmented, inconsistent policy data into a modular system, so advocates could search, edit, and apply rules mid-call and scale the setup as policies evolved

I aimed to turn fragmented, inconsistent policy data into a modular system, so advocates could search, edit, and apply rules mid-call and scale the setup as policies evolved

01_ Make Policies Searchable

01_ Make Policies Searchable

Structure policy data into searchable fields to speed up rule matching

Structure policy data into searchable fields to speed up rule matching

02_ Define Eligibility Clearly

02_ Define Eligibility Clearly

Break vogue criteria into reviewable logic to reduce uncertainty

Break vogue criteria into reviewable logic to reduce uncertainty

03_ Prevent Errors at Scale

03_ Prevent Errors at Scale

User validation to catch mistakes and onboard new rules faster

User validation to catch mistakes and onboard new rules faster

UNDERSTANDING THE CONTEXT

UNDERSTANDING THE CONTEXT

Matching logic only made sense once I understood the real-life constraints advocates faced on calls. So, I worked closely with clients and the product team to clearly structure the flow.

Matching logic only made sense once I understood the real-life constraints advocates faced on calls. So, I worked closely with clients and the product team to clearly structure the flow.

Designing in lockstep with call chaos

Designing in lockstep with call chaos

We designed everything remotely, but I maintained a tight feedback loop. Regular check-ins with two client leads and the ops team ensured that we covered all scenarios and blockers we couldn't have predicted.

We designed everything remotely, but I maintained a tight feedback loop. Regular check-ins with two client leads and the ops team ensured that we covered all scenarios and blockers we couldn't have predicted.

Daily Syncs, Remote First

Daily Syncs, Remote First

Kept alignment despite shifting priorities and no in-person context

Kept alignment despite shifting priorities and no in-person context

Live Feedback from Clients

Live Feedback from Clients

Helped flag gaps and break unclear assumptions in real time

Helped flag gaps and break unclear assumptions in real time

Support Team Insights

Support Team Insights

Uncovered complex edge cases and call-specific blockers

Uncovered complex edge cases and call-specific blockers

INTERVIEW SYNTHESIS

INTERVIEW SYNTHESIS

Critical care moments are slowed down by undefined rules and scattered systems

Critical care moments are slowed down by undefined rules and scattered systems

I interviewed 10 active users to uncover where policy lookup and decision-making broke down. Their stories revealed recurring breakdowns in clarity, speed, and reliability.

I interviewed 10 active users to uncover where policy lookup and decision-making broke down. Their stories revealed recurring breakdowns in clarity, speed, and reliability.

Confusing or Missing Rules

Confusing or Missing Rules

Application windows and eligibility criteria varied widely; some provided 30 days, others 90. Many policies didn't define any rule at all, forcing advocates to guess or look up manually.

Application windows and eligibility criteria varied widely; some provided 30 days, others 90. Many policies didn't define any rule at all, forcing advocates to guess or look up manually.

"I have to go through multiple documents to find matching eligibility rules."

"I have to go through multiple documents to find matching eligibility rules."

"I have to go through multiple documents to find matching eligibility rules."

Lost in Tabs

Lost in Tabs

During the calls, advocates scrambled between multiple Excel files to verify coverage details. This slowed responses, introduced stress, and increased the risk of errors.

During the calls, advocates scrambled between multiple Excel files to verify coverage details. This slowed responses, introduced stress, and increased the risk of errors.

"I'm busy flipping tabs instead of helping."

"I'm busy flipping tabs instead of helping."

"I'm busy flipping tabs instead of helping."

Frequent Mismatches & Delay

Frequent Mismatches & Delay

Unclear formats and complex logic often caused missed matches. One advocate misread an income rule that said "usually qualifies under 60% FPL", which the system couldn't apply.

Unclear formats and complex logic often caused missed matches. One advocate misread an income rule that said "usually qualifies under 60% FPL", which the system couldn't apply.

"I once gave someone the wrong info. Now I double-check every single time."

"I once gave someone the wrong info. Now I double-check every single time."

"I once gave someone the wrong info. Now I double-check every single time."

EXPLORING SYSTEM-LEVEL SOLUTION

I transformed recurring pain points into a modular system designed for speed and accuracy during live support calls.


Solutions focus on:

Guided Rule Builder

Combined eligibility rules into one structured form to prevent jumping between tabs or interpreting unclear logic manually

Smart Policy Filter

Let advocates instantly filter applicable policies using defined criteria, instead of combing through spreadsheets

Live Validation Alerts

Flagged incomplete or non-standard rule entries, like open-ended dates or loosely written income thresholds, as the advocates typed

SOLUTIONS

SOLUTIONS

I mapped out key flows and experimented with form structure and logic into actionable solutions

I mapped out key flows and experimented with form structure and logic into actionable solutions

Guided Rule Builder

Guided Rule Builder

One advocate misread policy that said "usually qualifies if under 60% FPL", too ambiguous for systems to process.


I fixed this by introducing a structured form with dropdowns and prompts that clarify how rules apply. This reduced misinterpretation, enforced validation, and sped up rule entry.

One advocate misread policy that said "usually qualifies if under 60% FPL", too ambiguous for systems to process.


I fixed this by introducing a structured form with dropdowns and prompts that clarify how rules apply. This reduced misinterpretation, enforced validation, and sped up rule entry.

Early Version- Limited logic capture

Early Version- Limited logic capture

The early UI only captured basic buckets and discount rules. This couldn't represent exceptions or combined rules, leading to mismatches or confusion.

The early UI only captured basic buckets and discount rules. This couldn't represent exceptions or combined rules, leading to mismatches or confusion.

Final Design- Flexible logic composition

Final Design- Flexible logic composition

Flexible modular system enables defining complex rules and conditions through structured prompts, bucket/rule types, and conditions.

Flexible modular system enables defining complex rules and conditions through structured prompts, bucket/rule types, and conditions.

*Want to see full eligibility form? Extend full view

*Want to see full eligibility form? Extend full view

Early Version- Isolated view without details

Early Version- Isolated view without details

The initial design of dashboards only listed facilities and policies, without showing connections and information, which made it challenging to manage an extensive system.

The initial design of dashboards only listed facilities and policies, without showing connections and information, which made it challenging to manage an extensive system.

Final Design- Unified system with actionable info

Final Design- Unified system with actionable info

The updated dashboard surfaces key information for each health system while enabling quick search and in-context add actions.

The updated dashboard surfaces key information for each health system while enabling quick search and in-context add actions.

Consolidated Health System Management

Consolidated Health System Management

I iterated the health system dashboard to provide a centralized view of all relevant systems, from policies and covered facilities to admin notes and key documents.


The final design shows a clear breakdown of all connected systems, including policy statuses and facility info like NPI and tax status. It allows advocates to add or search within them quickly.

I iterated the health system dashboard to provide a centralized view of all relevant systems, from policies and covered facilities to admin notes and key documents.


The final design shows a clear breakdown of all connected systems, including policy statuses and facility info like NPI and tax status. It allows advocates to add or search within them quickly.

Eligibility Logic Variation

Eligibility Logic Variation

Rather than treating rules in isolation, the interface guides users through layered inputs to accommodate the full spectrum of eligibility requirements across different instructions.

Rather than treating rules in isolation, the interface guides users through layered inputs to accommodate the full spectrum of eligibility requirements across different instructions.

Eligibility Logic Variation 1- Qualifying Buckets

Eligibility Logic Variation 1- Qualifying Buckets

Step 1 - Set a basic eligibility threshold

Step 1 - Set a basic eligibility threshold

Use case: Programs that offer general aid under a fixed income cap (e.g. FPL ≤ 200%)

Use case: Programs that offer general aid under a fixed income cap (e.g. FPL ≤ 200%)

Start with a basic income condition like "FPL ≤ 200%." This step ensures even simple aid programs can be configured in seconds.

Start with a basic income condition like "FPL ≤ 200%." This step ensures even simple aid programs can be configured in seconds.

Step 2 - Create additional income brackets

Step 2 - Create additional income brackets

Use case: Advocates want to set up different coverage tiers based on income bands (e.g. FPL ≤ 200% gets 100% discount, FPL ≤ 300%)

Use case: Advocates want to set up different coverage tiers based on income bands (e.g. FPL ≤ 200% gets 100% discount, FPL ≤ 300%)

Add additional income bands to map different discount levels (e.g. FPL ≤ 200% → 100%, FPL ≤ 300% → 75%).

Add additional income bands to map different discount levels (e.g. FPL ≤ 200% → 100%, FPL ≤ 300% → 75%).

Step 3 - Combine different condition types

Step 3 - Combine different condition types

Use case: Programs that require multiple eligibility factors beyond income (e.g. FPL > 200% AND Age ≥ 65)

Use case: Programs that require multiple eligibility factors beyond income (e.g. FPL > 200% AND Age ≥ 65)

Mix income with other qualifiers like age or residency using AND / OR logic, flexible yet structured.


❋ Key benefits: Adds flexibility when income alone isn't enough to determine eligibility.

Mix income with other qualifiers like age or residency using AND / OR logic, flexible yet structured.


❋ Key benefits: Adds flexibility when income alone isn't enough to determine eligibility.

Step 4 - Finalize complex qualifiers

Step 4 - Finalize complex qualifiers

Use case: Programs with particular eligibility needs (e.g. Income > 200% AND Age ≥ 65 in same group AND Residency = NY)

Use case: Programs with particular eligibility needs (e.g. Income > 200% AND Age ≥ 65 in same group AND Residency = NY)

This step lets advocates group multiple conditions into a single, structured logic block, ideal for layered rules based on income, age, and region.


Key benefit: Reduces duplication and supports high-impact programs with narrow eligibility criteria

This step lets advocates group multiple conditions into a single, structured logic block, ideal for layered rules based on income, age, and region.


Key benefit: Reduces duplication and supports high-impact programs with narrow eligibility criteria

Following this, I also structured how layered discounts can be defined using the same logic framework.

Following this, I also structured how layered discounts can be defined using the same logic framework.

Eligibility Logic Variation 2 - Discount Rules

Layered logic with contextual automation

Eligibility Logic Variation 2 - Discount Rules

Layered logic with contextual automation

Why this logic setup works

Why this logic setup works

This logic auto-applies discounts and scales with complexity without adding extra steps

This logic auto-applies discounts and scales with complexity without adding extra steps

It lets advocates define both general and scoped discount rules with optional clarity.

Discounts are applied automatically based on input fields (e.g. service type, visit date), reducing manual work and minimizing errors, even in extra-complex cases. When needed, advocates can layer additional rules, making the system flexible enough for even the most complex programs.

It lets advocates define both general and scoped discount rules with optional clarity.

Discounts are applied automatically based on input fields (e.g. service type, visit date), reducing manual work and minimizing errors, even in extra-complex cases. When needed, advocates can layer additional rules, making the system flexible enough for even the most complex programs.

Preventing Errors with Real-Time Validation

Preventing Errors with Real-Time Validation

Early mistakes, such as mismatched brackets or unlinked systems, often went unnoticed. I tackled this by embedding validation directly into the workflow, guiding advocates to resolve issues as they build, rather than after they submit.

Early mistakes, such as mismatched brackets or unlinked systems, often went unnoticed. I tackled this by embedding validation directly into the workflow, guiding advocates to resolve issues as they build, rather than after they submit.

Income Range validation - Eligibility Requirements

Income Range validation - Eligibility Requirements

Inline prompt catches income range gaps before submission, helping users define clean brackets.

Inline prompt catches income range gaps before submission, helping users define clean brackets.

If a 100% discount looks off, the UI suggests checking it to avoid mistakes.

If a 100% discount looks off, the UI suggests checking it to avoid mistakes.

System Linkage Check - Add Policy Form

System Linkage Check - Add Policy Form

If no linked health system is detected, users are prompted to create one directly, avoiding downstream policy errors.

If no linked health system is detected, users are prompted to create one directly, avoiding downstream policy errors.

OUTCOME

OUTCOME

Structured validation cut errors by 80% and sped up patient matching

Structured validation cut errors by 80% and sped up patient matching

Structured eligibility rules and validations helped reduce policy errors and sped up patient matching.

Structured eligibility rules and validations helped reduce policy errors and sped up patient matching.

80%

80%

Fewer policy errors

25%

25%

Faster match setup

52%

52%

Fewer downstream fixes

1.4X

1.4X

More policies supported

TAKEAWAYS

TAKEAWAYS

What this project taught me about designing for complex systems:

What this project taught me about designing for complex systems:

Guidance Beats Flexibility

Guidance Beats Flexibility

People moved faster when I offered just enough structure, not too much, not too little


People moved faster when I offered just enough structure, not too much, not too little

Scale Starts with Patterns

Scale Starts with Patterns

Reusable logic wasn't just for dev. It helped me design with consistency and adaptability

Reusable logic wasn't just for dev. It helped me design with consistency and adaptability

Outliers Expose Gaps

Outliers Expose Gaps

Outliers weren't noise. They showed me where my system logic needed to stretch


Outliers weren't noise. They showed me where my system logic needed to stretch

Explore Other Projects

Explore Other Projects

A person stands in a sandstone cave.
A person stands in a sandstone cave.
A person stands in a sandstone cave.

Knowt

Mobile learning app that builds study habits with a friendly, data-informed streak system

Learn more

closed window
closed window
closed window

vizcare

Internal SaaS dashboards designed to unify health insurance ops across disconnected systems

Learn more

Let's Connect

Let's Connect

©Chaemin Kim 2025

©Chaemin Kim 2025