Matching Algorithm
The matching algorithm is the engine that connects students with appropriate providers based on their needs, provider capabilities, and various scoring factors.
Overview
When a student needs to be matched:
- Student completes intake questionnaire
- Matching algorithm analyzes requirements
- Available providers are scored and ranked
- Top matches become proposals
- Proposals sent to recommended providers
Matching Triggers
Matching runs when:
- Student completes intake questionnaire
- Admin requests re-matching
- Relationship declines and alternate needed
- Provider capacity changes (future consideration)
Input Data
From Student
The matching algorithm uses:
- Service type - Tutoring vs. advising
- Exam codes - Which exams (for tutoring)
- Specialty codes - Which areas (for advising)
- Region - Geographic preference
- Schedule preferences - Availability patterns
- Preferred provider - If specified
From Provider
Provider matching data includes:
- Capabilities - Exam codes and specialty codes
- Region - Location
- Availability - Current capacity
- Active relationships - Current workload
Scoring Factors
The algorithm calculates a match score based on weighted factors.
Capability Match
Primary filter - Provider must have relevant capability:
For tutoring:
- Provider's exam codes must include student's target exam
- No partial matches (must be exact)
For advising:
- Provider's specialty codes must include student's need
- May allow related specialties
Score impact: Pass/fail filter, then skill level may add points
Region Scoring
Geographic alignment:
| Match Type | Score |
|---|---|
| Same region | High |
| Adjacent region | Medium |
| Different region | Low |
| No preference | Neutral |
Region matters more for some services than others.
Availability Scoring
Provider capacity affects ranking:
| Capacity | Score Impact |
|---|---|
| High availability | Positive |
| Some availability | Neutral |
| Limited availability | Slight negative |
| No availability | Excluded |
Ensures busy providers don't get overloaded.
Load Balancing
Current workload considered:
- Providers with fewer active clients may score higher
- Prevents concentration on popular providers
- Ensures broader utilization of provider pool
Preferred Provider
If student specified a preference:
- Named provider gets significant bonus
- Still must meet capability requirements
- Other providers still ranked as alternates
Ranking Process
- Filter - Remove providers who don't meet requirements
- Score - Calculate composite score for each remaining provider
- Rank - Order by descending score
- Select - Take top N for proposals
Example Scoring
Provider A:
Capability match: +100 (has exam code)
Same region: +50
High availability: +20
Low current load: +10
Total: 180
Provider B:
Capability match: +100 (has exam code)
Different region: +10
Some availability: +0
Medium current load: +5
Total: 115
Provider C:
Capability match: 0 (missing exam code)
EXCLUDED
Result: Provider A ranked first, Provider B second.
Tutoring Matching
Specific to tutoring services:
Exam Code Filtering
- Student specifies target exam (MCAT, USMLE, etc.)
- Providers tagged with exam codes
- Only providers with matching code considered
Subject Specialization
Within an exam, some providers specialize:
- Content review
- Test strategies
- Practice problems
- Full-length tests
May be factored if student has specific needs.
Advising Matching
Specific to advising services:
Specialty Code Filtering
- Student specifies advising area
- Providers tagged with specialties
- Only providers with relevant specialty considered
Common Specialties
- Medical school applications
- Residency matching
- Career planning
- Research guidance
Cross-Specialty Consideration
Some advisors have multiple specialties, making them suitable for students with complex needs.
Proposal Generation
After ranking:
Number of Proposals
Typically, the top 1-3 providers receive proposals:
- Primary recommendation (highest score)
- Alternates (next highest scores)
Proposal Contents
Each proposal includes:
- Student summary
- Service type
- Requested hours
- Match rationale (for admin view)
Sequential vs. Parallel
Proposals may be sent:
- Sequential - Wait for decline before sending to next
- Parallel - Send to multiple simultaneously
Configuration determines behavior.
Provider Response
After proposals are sent:
Acceptance
- Provider accepts
- Relationship moves to "Paired"
- Other proposals (if any) cancelled
Decline
- Provider declines
- Next alternate receives proposal (if sequential)
- Or student re-enters matching pool
Timeout
- No response within period
- Treated as decline
- Auto-escalation to next provider
Manual Matching
Admins can bypass the algorithm:
Direct Assignment
- Admin selects student
- Admin selects provider
- Relationship created directly
- No scoring involved
Use Cases
- Specific student request
- Provider recommendation
- Algorithm unavailable
- Special circumstances
Improving Match Quality
Provider Data
Better matching requires:
- Complete capability profiles
- Accurate availability
- Up-to-date regions
- Proper capacity settings
Student Data
Matching accuracy depends on:
- Complete intake questionnaires
- Clear service type selection
- Honest preferences
- Accurate contact info
Algorithm Tuning
Admins may adjust:
- Score weights for different factors
- Number of proposals generated
- Timeout periods
- Regional definitions
Troubleshooting
No Matches Found
Possible causes:
- No providers with required capability
- All providers at capacity
- Filters too restrictive
Solutions:
- Add provider capabilities
- Increase provider capacity
- Review student requirements
Poor Match Quality
Possible causes:
- Incomplete provider profiles
- Vague student requirements
- Scoring weights misaligned
Solutions:
- Audit provider data
- Improve intake questions
- Adjust scoring factors
Related Documentation
- Managing Relationships - After matching
- Managing Providers - Configuring capabilities
- Managing Students - Intake questionnaires
- Relationships - Lifecycle after matching