Grants & Packages
Matchpal uses a prepaid billing model where students purchase packages that create grants, which are then consumed through sessions and revisions.
The Billing Model
The flow works like this:
Package Purchase → Grant Created → Hours Allocated → Services Consumed
- Student purchases a package (e.g., "10 hours of tutoring")
- Matchpal creates a grant with that balance
- When matched, hours are allocated to relationships
- As sessions occur, hours are consumed from the allocation
Packages
Packages are the products students purchase.
Package Components
Each package defines:
- Service Type - Tutoring, advising, or both
- Quantity - Hours, sessions, or revisions included
- Price - What the student pays
- Validity - Expiration period, if any
Common Package Types
| Package | Type | Quantity | Use Case |
|---|---|---|---|
| Tutoring Starter | Tutoring | 5 hours | Try tutoring |
| Tutoring Standard | Tutoring | 10 hours | Exam preparation |
| Tutoring Premium | Tutoring | 20 hours | Comprehensive prep |
| Advising Package | Advising | 3 hours | Application guidance |
| Combo Bundle | Both | 8 hours | Mixed services |
Package Purchase
Students typically purchase through:
- External WooCommerce shop
- Automatic fulfillment via webhook
- Grant created without manual intervention
See Integrations for the technical flow.
Grants
Grants represent available service credit on a student's account.
Grant Properties
| Property | Description |
|---|---|
| Student | Who owns the grant |
| Type | Tutoring, advising, or universal |
| Total | Original amount |
| Used | Consumed through sessions |
| Held | Reserved for active relationships |
| Available | Total minus used and held |
Grant Calculation
Available = Total - Used - Held
Example:
- Total: 10 hours
- Used: 3 hours (completed sessions)
- Held: 4 hours (active relationship allocation)
- Available: 3 hours (for new relationships)
Multiple Grants
Students can have multiple grants:
- From different purchases
- For different service types
- With different expiration dates
The system aggregates by service type when displaying balances.
Grant Holds
When a relationship is created, hours are "held."
Why Holds Exist
Holds ensure:
- Hours are reserved for the relationship
- Provider knows capacity is guaranteed
- Student can't over-allocate
How Holds Work
- Relationship created with 5-hour allocation
- 5 hours marked as "held"
- Available balance decreases by 5
- As sessions occur, "held" converts to "used"
- When relationship ends, unused hold releases
Hold Release
Holds release when:
- Relationship completed → unused returns to available
- Relationship cancelled → full amount returns
- Relationship declined → full amount returns
- Admin manually releases
Usage Tracking
Session Consumption
Each completed session:
- Duration recorded
- Deducted from relationship allocation
- "Used" increases
- "Held" decreases (within that relationship)
Revision Consumption
Each completed revision:
- Fixed or time-based amount
- Deducted similarly to sessions
- Typically used for advising grants
Real-Time Balance
Students see current state:
- Total purchased
- Used to date
- Currently held
- Available for new work
Viewing Balances
For Students
Students see:
- Current balance summary
- Breakdown by service type
- Usage history
- Holds by relationship
For Providers
Providers see:
- Hours allocated to their relationships
- Hours remaining with each student
- (Not other student grant info)
For Admins
Admins see:
- Any student's full grant picture
- Platform-wide grant statistics
- Usage trends and patterns
- Ability to adjust any grant
Managing Grants
Adding a Grant
Admins can manually add grants:
- Open student profile
- Navigate to grants/billing
- Click "Add Grant"
- Select type and amount
- Add reference note
- Save
Adjusting a Grant
Modify existing grants:
- Find the grant
- Click "Adjust"
- Increase or decrease
- Document reason
- Save
Cannot reduce grant below used + held amount. Release holds first if needed.
Grant Expiration
If grants have validity periods:
- System tracks expiration dates
- Expired grants no longer available
- Warning notifications before expiry
- Admin can extend if policy allows
Special Scenarios
Insufficient Balance
If student needs services but balance is zero:
- Cannot create new relationships
- Existing relationships may continue
- Student prompted to purchase more
- Admin can add grant manually if warranted
Over-Allocation
System prevents allocating more than available:
- Relationship creation checks balance
- Allocation adjustment checks balance
- Clear errors if insufficient
Refunds
If refund is needed:
- Verify unused hours
- Reduce grant accordingly
- Process payment refund separately
- Document adjustment
Package Upgrades
To add more hours:
- Purchase additional package
- New grant added to account
- Combines with existing balance
- Or admin manually adds grant
Reporting
Usage Reports
Track consumption:
- Hours used per period
- Usage by service type
- Usage by student
- Usage by provider
Financial Reports
For business metrics:
- Packages sold
- Revenue by package type
- Outstanding balances
- Consumption velocity
Related Documentation
- Billing - Admin billing management
- Relationships - How grants are allocated
- Sessions - How sessions consume grants
- Integrations - Package purchase flow