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



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



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