Multi-Participant
Overview
This example illustrates timveroOS configuration for complex lending scenarios involving multiple participants such as co-borrowers, guarantors, and collateral providers. The system orchestrates comprehensive assessment of all parties while maintaining relationship hierarchies and combined credit evaluation logic.
Business Scenario
Target Market
Joint personal loans for couples or business partners
Business loans requiring personal guarantees
Family-backed lending with parental guarantors
Complex commercial structures with multiple security providers
Syndicated or participated loan structures
Product Parameters
Enhanced credit limits through combined assessment
Risk mitigation through additional guarantors
Flexible security arrangements with multiple providers
Varied participant obligations and rights
Risk Considerations
Combined creditworthiness evaluation
Weakest link principle application
Legal relationship verification
Cross-default implications
Collection complexity in default scenarios
Operational Requirements
Participant relationship management
Sequential or parallel processing options
Combined document packages
Multi-party communication
Role-specific workflows
Configuration Components
Participant Role Definitions
Primary Borrower
Role Code: BORROWER_PRIMARY
Responsibilities: Primary repayment obligation
Required Assessments: Full credit and income evaluation
Document Requirements: Complete package
Signature Authority: All documents
Co-Borrower
Role Code: BORROWER_JOINT
Responsibilities: Joint and several liability
Required Assessments: Full credit and income evaluation
Document Requirements: Complete package
Special Handling: Combined income calculations
Guarantor
Role Code: GUARANTOR
Responsibilities: Secondary repayment obligation
Required Assessments: Credit and net worth verification
Document Requirements: Guarantee-specific documents
Activation: Upon borrower default
Collateral Provider
Role Code: COLLATERAL_PROVIDER
Responsibilities: Asset security only
Required Assessments: Identity and ownership verification
Document Requirements: Security documents
Rights: Limited to asset-related matters
Application Structure Configuration
Participant Relationship Rules:
Application Rules:
- Minimum: 1 borrower (primary or joint)
- Maximum borrowers: 4
- Maximum guarantors: 2
- Maximum collateral providers: No limit
- Duplicate roles: Not permitted (except joint borrowers)
Status Determination:
- Application status = worst participant status
- All participants must be approved for application approval
- Any participant decline = application decline
- Void participant does not affect active participants
Processing Sequence Options:
Sequential Processing:
Primary borrower evaluated first
If approved, co-borrower evaluation
If additional security needed, guarantor added
Collateral providers evaluated with assets
Parallel Processing:
All borrowers evaluated simultaneously
Guarantors evaluated if present
Results combined for final decision
More efficient but complex coordination
Multi-Participant Workflow Design
Combined Assessment Workflow:
Participant Loop Initialization
For each participant in application: - Determine role - Load role-specific workflow - Set processing parameters
Individual Credit Assessment
Per Participant: - Load credit bureau (role-appropriate depth) - Calculate individual credit score - Assess individual capacity - Flag individual issues
Combined Calculations
Expression Node - Combined Income: totalIncome = sum(all_borrowers.income) Expression Node - Minimum Score: minCreditScore = min(all_borrowers.creditScore) Expression Node - Guarantee Value: guaranteeStrength = sum(all_guarantors.netWorth * 0.25) Expression Node - Total Collateral: totalCollateralValue = sum(all_assets.marketValue)
Relationship Validations
Business Rules: - Verify spousal consent if required - Check guarantor relationship restrictions - Validate collateral ownership - Confirm participant ages and capacity
Combined Decision Logic
Switch Node: - If any borrower score < 600: Route to decline - If combined DTI > 45%: Route to manual review - If guarantor required but not sufficient: Hold for guarantor - If all pass: Continue to offer generation
Role-Specific Profiles
Save to Profiles: Borrower Profile: - individualCapacity - contributionPercentage - primaryContact flag Guarantor Profile: - guaranteeAmount - netWorthVerified - guaranteeType Application Profile: - combinedIncome - minimumScore - totalCollateralValue - approvalConditions
Complex Offer Generation
function calculateMultiParticipantOffer() {
// Gather all participant data
const borrowers = application.getParticipantsByRole("BORROWER");
const guarantors = application.getParticipantsByRole("GUARANTOR");
const collateralProviders = application.getParticipantsByRole("COLLATERAL_PROVIDER");
// Calculate combined metrics
const combinedIncome = borrowers.reduce((sum, b) => sum + b.profile.get("netIncome"), 0);
const minScore = Math.min(...borrowers.map(b => b.profile.get("creditScore")));
const hasGuarantor = guarantors.length > 0;
const totalCollateral = calculateTotalCollateralValue(collateralProviders);
// Apply weakest link principle for credit
let baseTier = getCreditTier(minScore);
// Enhance tier if strong guarantor
if (hasGuarantor && guarantors[0].profile.get("creditScore") > 750) {
baseTier = enhanceTier(baseTier);
}
// Calculate capacity based on combined income
const maxPayment = combinedIncome * 0.28;
const rate = getRateForTier(baseTier, hasGuarantor);
const maxByCapacity = calculateLoanAmount(maxPayment, rate, 60);
// Check if collateral affects maximum
let maxAmount = maxByCapacity;
if (totalCollateral > 0) {
const maxByCollateral = totalCollateral * 0.8; // 80% LTV
maxAmount = Math.max(maxAmount, maxByCollateral);
}
// Apply guarantor enhancement
if (hasGuarantor) {
const guarantorCapacity = guarantors[0].profile.get("guaranteeCapacity");
maxAmount = Math.min(maxAmount * 1.5, maxAmount + guarantorCapacity);
}
return {
minAmount: productAdditive.getMinAmount(),
maxAmount: Math.min(maxAmount, productAdditive.getMaxAmount()),
rate: rate,
term: 60,
conditions: generateConditions(borrowers, guarantors),
requiredSignatures: getAllRequiredSignatures(borrowers, guarantors)
};
}
function generateConditions(borrowers, guarantors) {
const conditions = [];
// Spousal consent if applicable
borrowers.forEach(b => {
if (b.maritalStatus === "MARRIED" && !hasSpouseAsBorrower(b)) {
conditions.push({
type: "SPOUSAL_CONSENT",
participant: b.id,
required: true
});
}
});
// Guarantor conditions
if (guarantors.length > 0) {
conditions.push({
type: "GUARANTEE_EXECUTION",
description: "All guarantors must execute guarantee agreement",
participants: guarantors.map(g => g.id)
});
}
return conditions;
}
Document Orchestration
Document Package Assembly:
Master Loan Agreement:
All borrower signatures required
Joint and several liability clause
Cross-default provisions
Participant rights and obligations
Individual Documents:
Personal financial statements (per participant)
Credit authorizations (per participant)
Identity verification (per participant)
Guarantee Documents (if applicable):
Guarantee agreement
Guarantor financial disclosure
Spousal consent for guarantee
Guarantee limitations/caps
Security Documents (if applicable):
Security agreement per asset
Collateral provider consent
Insurance assignments
Lien documents
Document Generation Logic:
For each document template:
- Identify required participants
- Merge participant-specific data
- Generate signature blocks per participant
- Route for appropriate signatures
Communication Management
Multi-Channel Notifications:
Application-Level Communications:
Status updates to primary borrower
Copy notifications to co-borrowers
Separate notifications to guarantors
Limited updates to collateral providers
Notification Templates:
To: {{participant.email}}
CC: {{other_borrowers.emails}}
Dear {{participant.firstName}},
Your application {{#if participant.isPrimary}}(Reference: {{application.number}}){{/if}}
status has been updated to {{application.status}}.
{{#if participant.role == "GUARANTOR"}}
As a guarantor, your obligation is contingent upon the primary borrower's default.
{{/if}}
Required actions:
{{#each participant.pendingActions}}
- {{this.description}}
{{/each}}
Launchpad Queue Management
Review Assignment by Complexity:
Simple Multi-Borrower (2 borrowers, no guarantors):
Standard underwriting queue
Combined assessment focus
24-hour SLA
Guaranteed Loans (with guarantors):
Senior underwriter queue
Guarantee adequacy review
48-hour SLA
Complex Structures (multiple parties and collateral):
Credit committee queue
Comprehensive relationship review
72-hour SLA
Review Form Enhancements:
Multi-Participant Review Form:
- Individual assessments per participant
- Combined capacity calculation
- Relationship verification
- Guarantee adequacy assessment
- Collateral coverage analysis
- Overall recommendation
- Participant-specific conditions
Implementation Steps
Step 1: Role Configuration
Define all participant roles
Set role-specific workflows
Configure status determination rules
Establish processing sequences
Step 2: Relationship Management
Create participant linking rules
Define maximum participants by role
Set up duplicate prevention
Configure relationship validations
Step 3: Workflow Enhancement
Design role-aware workflows
Implement participant loops
Create combined calculations
Set up conditional routing
Step 4: Document Coordination
Create multi-signature templates
Design package assembly rules
Configure routing sequences
Set up completion tracking
Step 5: Communication Setup
Create role-specific templates
Configure CC rules
Set up notification preferences
Design status update logic
Step 6: Testing Scenarios
Test various participant combinations
Validate status calculations
Verify document generation
Check communication routing
Step 7: Manual Review Preparation
Design complex review forms
Train on multi-participant assessment
Create decision guidelines
Establish escalation paths
Step 8: Production Readiness
Complete end-to-end testing
Document common scenarios
Create user guides
Monitor initial applications
Technical Considerations
Data Model Complexity
Maintain participant relationships
Track individual vs. combined data
Preserve assessment history
Support role changes
Processing Efficiency
Parallel workflow execution
Shared data caching
Optimized status calculations
Batch document generation
Integration Challenges
Multiple credit pulls coordination
Combined banking data analysis
Document signature sequencing
Multi-party communication APIs
Compliance Requirements
Regulatory disclosure to all parties
Fair lending across participants
Privacy between participants
Consent management complexity
Advanced Scenarios
Business Partnership Loans
Multiple business owners
Corporate guarantees
Cross-collateralization
Operating agreement validations
Family Financing Structures
Parent-child guarantees
Trust involvement
Estate planning considerations
Gift letter requirements
Investor Property Loans
Multiple property investors
Rental income inclusion
Management agreement reviews
Insurance complexity
Success Metrics
Application Metrics
Multi-participant approval rates
Processing time by complexity
Document completion rates
Participant satisfaction scores
Risk Indicators
Default rates by structure
Guarantor activation frequency
Collection success rates
Relationship dispute frequency
Operational Efficiency
Application completion time
Review cycle duration
Document error rates
Communication effectiveness
Related Configuration Areas
Consumer Lending: Single borrower baseline
SME Lending: Business guarantor patterns
Secured Lending: Collateral provider handling
Common Patterns: Guarantor enhancement
Next Steps
Define acceptable participant combinations
Establish relationship validation rules
Design combined assessment strategies
Plan communication protocols
For additional support, consult your implementation team or system documentation.
Last updated
Was this helpful?