Payment Schedules - Business Concepts
Overview
Payment Schedules define how a total payment amount is automatically split into multiple installment payments over time. They provide a structured, rules-based approach to breaking down large payments into manageable amounts with predefined timing.
Think of a Payment Schedule as a "payment blueprint" - when you apply it to an invoice or transaction, it automatically calculates the payment amounts and dates based on the rules you've configured.
Key Business Concepts
1. What is a Payment Schedule?
A Payment Schedule is a reusable template that defines:
- How much to pay in each installment (allocation method)
- When to pay each installment (payment frequency)
- How many installments to create
- Limits on minimum and maximum payment amounts
Once configured, a payment schedule can be:
- Assigned to customer or vendor accounts as their default payment terms
- Applied to individual invoices to override default terms
- Used across multiple transactions consistently
2. Allocation Methods
The system supports three allocation methods that determine how the total amount is split into individual payments:
Fixed Allocation
Purpose: Split payments into equal fixed amounts with any remainder added to the final payment.
How it works:
- Each payment is set to the Fixed Payment Amount
- The total is divided by the fixed amount to determine the number of payments
- Any remaining amount is added to the last payment
Configuration:
- Fixed Payment Amount: Required - The amount for each installment
- Number of Payments: Not used (calculated automatically)
- Minimum Payment Amount: Optional - Validates the final payment isn't too small
- Maximum Payment Amount: Optional - Validates payments don't exceed limit
Example 1: Even Division
Total Invoice: $10,000.00
Fixed Payment Amount: $2,000.00
Payment Frequency: Monthly
Result:
Payment 1 (Due: Jan 15): $2,000.00
Payment 2 (Due: Feb 15): $2,000.00
Payment 3 (Due: Mar 15): $2,000.00
Payment 4 (Due: Apr 15): $2,000.00
Payment 5 (Due: May 15): $2,000.00
Total: $10,000.00 (5 equal payments)
Example 2: With Remainder
Total Invoice: $11,500.00
Fixed Payment Amount: $2,000.00
Payment Frequency: Monthly
Result:
Payment 1 (Due: Jan 15): $2,000.00
Payment 2 (Due: Feb 15): $2,000.00
Payment 3 (Due: Mar 15): $2,000.00
Payment 4 (Due: Apr 15): $2,000.00
Payment 5 (Due: May 15): $2,000.00
Payment 6 (Due: Jun 15): $1,500.00 ← Remainder added to final payment
Total: $11,500.00 (5 fixed + 1 remainder)
Example 3: With Minimum Payment Validation
Total Invoice: $4,100.00
Fixed Payment Amount: $2,000.00
Minimum Payment Amount: $500.00
Payment Frequency: Monthly
Result:
Payment 1 (Due: Jan 15): $2,000.00
Payment 2 (Due: Feb 15): $2,100.00 ← Remainder $100 + $2,000 (exceeds minimum)
If remainder were $50 (below minimum $500), it would be added to the last payment:
Payment 1 (Due: Jan 15): $2,000.00
Payment 2 (Due: Feb 15): $2,050.00
Best For:
- Equipment leases with fixed monthly payments
- Subscription services with standard pricing
- Installment plans with predictable amounts
Fixed Quantity Allocation
Purpose: Split the total amount into a specific number of equal payments.
How it works:
- Total amount is divided by the number of payments
- Each payment receives an equal share
- Any rounding remainder is added to the final payment
Configuration:
- Number of Payments: Required - How many installments to create
- Fixed Payment Amount: Not used
- Minimum Payment Amount: Optional - Validates each payment isn't too small
- Maximum Payment Amount: Optional - Validates payments don't exceed limit
Example 1: Equal Division
Total Invoice: $12,000.00
Number of Payments: 4
Payment Frequency: Quarterly
Calculation: $12,000 ÷ 4 = $3,000.00 per payment
Result:
Payment 1 (Due: Jan 15): $3,000.00
Payment 2 (Due: Apr 15): $3,000.00
Payment 3 (Due: Jul 15): $3,000.00
Payment 4 (Due: Oct 15): $3,000.00
Total: $12,000.00 (4 equal payments)
Example 2: With Rounding
Total Invoice: $10,000.00
Number of Payments: 3
Payment Frequency: Monthly
Calculation: $10,000 ÷ 3 = $3,333.33 per payment (with rounding)
Result:
Payment 1 (Due: Jan 15): $3,333.33
Payment 2 (Due: Feb 15): $3,333.33
Payment 3 (Due: Mar 15): $3,333.34 ← Extra penny from rounding
Total: $10,000.00
Example 3: Different Frequencies
Total Invoice: $24,000.00
Number of Payments: 6
Payment Frequency: Biweekly
Calculation: $24,000 ÷ 6 = $4,000.00 per payment
Result:
Payment 1 (Due: Jan 1): $4,000.00
Payment 2 (Due: Jan 15): $4,000.00
Payment 3 (Due: Jan 29): $4,000.00
Payment 4 (Due: Feb 12): $4,000.00
Payment 5 (Due: Feb 26): $4,000.00
Payment 6 (Due: Mar 11): $4,000.00
Total: $24,000.00 (6 equal payments over 10 weeks)
Example 4: With Maximum Payment Constraint
Total Invoice: $20,000.00
Number of Payments: 3
Maximum Payment Amount: $8,000.00
Payment Frequency: Monthly
Calculation: $20,000 ÷ 3 = $6,666.67 per payment
Result:
Payment 1 (Due: Jan 15): $6,666.67 ✓ Below maximum
Payment 2 (Due: Feb 15): $6,666.67 ✓ Below maximum
Payment 3 (Due: Mar 15): $6,666.66 ✓ Below maximum
Total: $20,000.00
If we tried Number of Payments: 2
Calculation: $20,000 ÷ 2 = $10,000.00 per payment
❌ ERROR: Payment amount $10,000 exceeds maximum allowed $8,000
Best For:
- Project milestones with equal progress payments
- Salary advances split over fixed number of pay periods
- Vendor payments spread evenly over fiscal quarters
Custom Allocation
Purpose: Define specific amounts or percentages for each payment with full control over timing.
How it works:
- You manually define each payment as a line item
- Each line specifies: payment type (percentage or fixed amount), the value, and periods after due date
- System validates that percentages don't exceed 100% or fixed amounts don't exceed the total
Configuration:
- Payment Schedule Lines: Required - One line per payment
- Line Number: Sequential number (1, 2, 3...)
- Payment Type: Percent or Fixed Amount
- Amount: The percentage (e.g., 30 for 30%) or fixed amount
- Periods After Due Date: How many payment periods to wait before this payment
Payment Type Restriction: All lines must use the same payment type - either all percentages OR all fixed amounts, not mixed.
Example 1: Percentage-Based Milestone Payments
Total Invoice: $100,000.00
Payment Frequency: Monthly
Payment Schedule Lines:
Line 1: 30% - 0 periods after due date (immediate)
Line 2: 30% - 1 period after due date
Line 3: 20% - 2 periods after due date
Line 4: 20% - 3 periods after due date
Result:
Payment 1 (Due: Jan 1): $30,000.00 (30% of $100,000)
Payment 2 (Due: Feb 1): $30,000.00 (30% of $100,000)
Payment 3 (Due: Mar 1): $20,000.00 (20% of $100,000)
Payment 4 (Due: Apr 1): $20,000.00 (20% of $100,000)
Total: $100,000.00 (100% allocated)
Example 2: Progressive Payment Structure
Total Invoice: $50,000.00
Payment Frequency: Biweekly
Payment Schedule Lines:
Line 1: 10% - 0 periods (Deposit)
Line 2: 25% - 2 periods (First milestone)
Line 3: 35% - 4 periods (Second milestone)
Line 4: 30% - 6 periods (Final payment)
Result:
Payment 1 (Due: Jan 1): $5,000.00 (10% - Deposit)
Payment 2 (Due: Jan 29): $12,500.00 (25% - First milestone)
Payment 3 (Due: Feb 26): $17,500.00 (35% - Second milestone)
Payment 4 (Due: Mar 25): $15,000.00 (30% - Final payment)
Total: $50,000.00
Example 3: Fixed Amount Custom Schedule
Total Invoice: $45,000.00
Payment Frequency: Monthly
Payment Schedule Lines:
Line 1: $15,000 - 0 periods (Upfront)
Line 2: $10,000 - 1 period
Line 3: $10,000 - 2 periods
Line 4: $10,000 - 3 periods
Result:
Payment 1 (Due: Jan 15): $15,000.00
Payment 2 (Due: Feb 15): $10,000.00
Payment 3 (Due: Mar 15): $10,000.00
Payment 4 (Due: Apr 15): $10,000.00
Total: $45,000.00
Example 4: Validation - Percentage Exceeds 100%
Payment Schedule Lines:
Line 1: 40% - 0 periods
Line 2: 50% - 1 period
Line 3: 20% - 2 periods
❌ ERROR: Total percentage allocation 110% exceeds 100%
Example 5: Validation - Mixed Payment Types
Payment Schedule Lines:
Line 1: 50% (Percent) - 0 periods
Line 2: $5,000 (Fixed Amount) - 1 period
❌ ERROR: Payment lines must be of the same type
Best For:
- Construction projects with milestone-based payments
- Software development with progress-based billing
- Complex vendor agreements with custom payment terms
- Marketing campaigns with phased budget releases
3. Payment Frequencies
Payment Frequency determines the time interval between consecutive payments. The system supports seven standard frequencies:
| Frequency | Interval | Description | Common Use Case |
|---|---|---|---|
| Daily | 1 day | Payment every day | Short-term cash advances |
| Weekly | 7 days | Payment every week | Weekly service contracts |
| Biweekly | 14 days | Payment every two weeks | Employee salary advances |
| Monthly | 1 month | Payment every month | Standard payment terms |
| Quarterly | 3 months | Payment every quarter | Seasonal vendors, consulting retainers |
| Semi-Annual | 6 months | Payment twice per year | Insurance premiums, licenses |
| Annual | 1 year | Payment once per year | Annual subscriptions, leases |
Date Calculation Examples:
Monthly Frequency:
Due Date: January 15, 2024
Number of Payments: 4
Result:
Payment 1: January 15, 2024
Payment 2: February 15, 2024
Payment 3: March 15, 2024
Payment 4: April 15, 2024
Quarterly Frequency:
Due Date: January 1, 2024
Number of Payments: 4
Result:
Payment 1: January 1, 2024 (Q1)
Payment 2: April 1, 2024 (Q2)
Payment 3: July 1, 2024 (Q3)
Payment 4: October 1, 2024 (Q4)
Biweekly Frequency:
Due Date: January 5, 2024
Number of Payments: 3
Result:
Payment 1: January 5, 2024
Payment 2: January 19, 2024 (+14 days)
Payment 3: February 2, 2024 (+14 days)
4. Payment Schedule Properties
Required Properties
Name
- Purpose: Unique identifier for the payment schedule
- Format: Alphanumeric, no length limit
- Example: "NET30-3INST", "QUARTERLY-EQUAL", "PROJECT-MILESTONES"
Description
- Purpose: Human-readable explanation of the schedule's purpose
- Example: "Net 30 days with 3 equal installments", "Quarterly payments for annual contracts"
Currency Code
- Purpose: The currency for all payment amounts
- Format: ISO 4217 currency code (USD, EUR, AED, etc.)
- Validation: Must be a valid currency configured in the system
Payment Frequency
- Purpose: Time interval between payments
- Options: Daily, Weekly, Biweekly, Monthly, Quarterly, Semi-Annual, Annual
Allocation Method
- Purpose: How to split the total amount
- Options: Fixed, Fixed Quantity, Custom
Conditional Properties
Fixed Payment Amount
- Required For: Fixed allocation method
- Not Used For: Fixed Quantity, Custom
- Validation: Must be greater than zero
- Validation: Must be >= Minimum Payment Amount (if specified)
- Validation: Must be <= Maximum Payment Amount (if specified)
Number of Payments
- Required For: Fixed Quantity allocation method
- Not Used For: Fixed allocation (auto-calculated), Custom (defined by lines)
- Validation: Must be greater than zero
Optional Constraint Properties
Minimum Payment Amount
- Purpose: Ensures no payment falls below a threshold
- Applies To: All allocation methods
- Example Use: "No payment should be less than $100"
- Validation: Performed during allocation calculation
Maximum Payment Amount
- Purpose: Ensures no payment exceeds a limit
- Applies To: All allocation methods
- Example Use: "No payment should exceed $10,000"
- Validation: Performed during allocation calculation
Installment Maximum Amount
- Purpose: Additional constraint on installment size
- Current Status: Defined in schema but not actively used in calculations
- Future Use: May be used for advanced payment controls
5. How Payment Schedules Work in Practice
Step 1: Create Payment Schedule
Define the payment schedule once with all rules and constraints:
Schedule: "QUARTERLY-4PMT"
Description: "Quarterly payments over one year"
Currency: USD
Allocation Method: Fixed Quantity
Number of Payments: 4
Payment Frequency: Quarterly
Minimum Payment Amount: $1,000.00
Maximum Payment Amount: $50,000.00
Step 2: Assign to Customer or Vendor
Set the payment schedule as the default for a customer:
Customer: CUST-001 (ABC Corporation)
Default Payment Schedule: "QUARTERLY-4PMT"
Step 3: Create Invoice
When you create an invoice, the payment schedule is automatically applied:
Sales Invoice: INV-2024-001
Customer: CUST-001
Total Amount: $48,000.00
Due Date: January 15, 2024
Payment Schedule: QUARTERLY-4PMT (inherited from customer)
Step 4: System Generates Scheduled Payments
The system automatically calculates the payment allocations:
Allocation Calculation:
- Total: $48,000.00
- Number of Payments: 4
- Base Payment: $48,000 ÷ 4 = $12,000.00
- Check Constraints: $12,000 is between $1,000 (min) and $50,000 (max) ✓
Generated Scheduled Payments:
Payment 1: $12,000.00 - Due: Jan 15, 2024
Payment 2: $12,000.00 - Due: Apr 15, 2024
Payment 3: $12,000.00 - Due: Jul 15, 2024
Payment 4: $12,000.00 - Due: Oct 15, 2024
Step 5: Payment Collection
As payments come due:
- The system tracks which payments are due
- Collections team receives notifications
- Actual payments are recorded against scheduled payments
- Outstanding balance is updated
6. Common Business Scenarios
Scenario 1: Standard Net 30 with 3 Monthly Installments
Business Need: Extend payment terms to improve customer cash flow.
Setup:
Name: "NET30-3MONTHLY"
Description: "Net 30 days, 3 equal monthly payments"
Currency: USD
Allocation Method: Fixed Quantity
Number of Payments: 3
Payment Frequency: Monthly
Application:
Invoice Amount: $15,000.00
Invoice Date: January 1, 2024
Due Date: February 1, 2024 (Net 30)
Result:
Payment 1: $5,000.00 - Due: Feb 1, 2024
Payment 2: $5,000.00 - Due: Mar 1, 2024
Payment 3: $5,000.00 - Due: Apr 1, 2024
Scenario 2: Construction Project with Milestone Payments
Business Need: Align payments with project completion stages.
Setup:
Name: "CONSTRUCTION-MILESTONE"
Description: "Construction project milestone payments"
Currency: USD
Allocation Method: Custom
Payment Frequency: Monthly
Payment Schedule Lines:
Line 1: 20% - 0 periods (Contract signing)
Line 2: 25% - 1 period (Foundation complete)
Line 3: 30% - 3 periods (Structure complete)
Line 4: 20% - 5 periods (Finishes complete)
Line 5: 5% - 6 periods (Retention)
Application:
Project Contract: $500,000.00
Contract Date: January 1, 2024
Result:
Payment 1: $100,000.00 - Due: Jan 1, 2024 (20% - Signing)
Payment 2: $125,000.00 - Due: Feb 1, 2024 (25% - Foundation)
Payment 3: $150,000.00 - Due: Apr 1, 2024 (30% - Structure)
Payment 4: $100,000.00 - Due: Jun 1, 2024 (20% - Finishes)
Payment 5: $25,000.00 - Due: Jul 1, 2024 (5% - Retention)
Scenario 3: Equipment Lease with Fixed Monthly Payments
Business Need: Lease equipment with predictable fixed monthly payments.
Setup:
Name: "LEASE-MONTHLY-2500"
Description: "Equipment lease - $2,500 monthly"
Currency: USD
Allocation Method: Fixed
Fixed Payment Amount: $2,500.00
Payment Frequency: Monthly
Minimum Payment Amount: $500.00
Application:
Equipment Lease Total: $30,000.00
Lease Start Date: January 1, 2024
Result:
Payment 1: $2,500.00 - Due: Jan 1, 2024
Payment 2: $2,500.00 - Due: Feb 1, 2024
Payment 3: $2,500.00 - Due: Mar 1, 2024
... (continues for 12 months)
Payment 12: $2,500.00 - Due: Dec 1, 2024
Total: $30,000.00 (12 × $2,500)
With Remainder Example:
Equipment Lease Total: $31,200.00
Fixed Payment Amount: $2,500.00
Minimum Payment Amount: $500.00
Result:
Payment 1-12: $2,500.00 each = $30,000.00
Payment 13: $1,200.00 - Due: Jan 1, 2025 (remainder)
Total: $31,200.00 (12 × $2,500 + $1,200)
Scenario 4: Quarterly Vendor Payments
Business Need: Pay vendor in 4 equal quarterly installments.
Setup:
Name: "QUARTERLY-4EQUAL"
Description: "Four equal quarterly payments"
Currency: USD
Allocation Method: Fixed Quantity
Number of Payments: 4
Payment Frequency: Quarterly
Application:
Annual Service Contract: $120,000.00
Contract Start: January 1, 2024
Result:
Payment 1: $30,000.00 - Due: Jan 1, 2024 (Q1)
Payment 2: $30,000.00 - Due: Apr 1, 2024 (Q2)
Payment 3: $30,000.00 - Due: Jul 1, 2024 (Q3)
Payment 4: $30,000.00 - Due: Oct 1, 2024 (Q4)
7. Validation Rules and Error Handling
Configuration Validation
Rule 1: Fixed Payment Amount Constraints
Scenario: Fixed Payment Amount < Minimum Payment Amount
Setup:
- Fixed Payment Amount: $800.00
- Minimum Payment Amount: $1,000.00
❌ ERROR: "Fixed payment amount must be at least equal to minimum payment amount"
Rule 2: Fixed Payment Amount vs Maximum
Scenario: Fixed Payment Amount > Maximum Payment Amount
Setup:
- Fixed Payment Amount: $15,000.00
- Maximum Payment Amount: $10,000.00
❌ ERROR: "Fixed payment amount exceeds maximum allowed"
Rule 3: Custom Allocation Percentage Total
Scenario: Percentage lines total exceeds 100%
Setup:
- Line 1: 50%
- Line 2: 40%
- Line 3: 30%
Total: 120%
❌ ERROR: "Total percentage allocation 120% exceeds 100%"
Rule 4: Custom Allocation Payment Type Consistency
Scenario: Mixed payment types in lines
Setup:
- Line 1: 30% (Percent)
- Line 2: $5,000 (Fixed Amount)
❌ ERROR: "Payment lines must be of the same type"
Runtime Allocation Validation
Rule 5: Minimum Payment Feasibility
Scenario: Total amount too small for minimum payments
Setup:
- Total Amount: $1,000.00
- Number of Payments: 5
- Minimum Payment Amount: $500.00
Calculation: $1,000 ÷ 5 = $200 per payment
❌ ERROR: "Total amount $1,000 is too small to be divided into 5 payments
while respecting minimum payment amount of $500"
Rule 6: Maximum Payment Feasibility
Scenario: Total amount too large for maximum payments
Setup:
- Total Amount: $100,000.00
- Number of Payments: 3
- Maximum Payment Amount: $20,000.00
Calculation: $100,000 ÷ 3 = $33,333.33 per payment
❌ ERROR: "Total amount $100,000 is too large to be divided into 3 payments
while respecting maximum payment amount of $20,000"
8. Integration with Other Modules
Accounts Receivable Integration
Customer Default Payment Schedule:
- Each customer can have a default payment schedule
- Applied automatically to new sales invoices
- Can be overridden on individual invoices
Invoice Posting:
When a sales invoice is posted:
1. System reads the payment schedule from the invoice
2. Calls payment schedule to generate allocations
3. Creates ScheduledPayment records
4. Publishes domain event: SalesInvoiceCreditPaymentScheduledDomainEvent
Accounts Payable Integration
Vendor Default Payment Schedule:
- Each vendor can have a default payment schedule
- Applied automatically to new purchase invoices
- Can be overridden on individual invoices
Invoice Posting:
When a purchase invoice is posted:
1. System reads the payment schedule from the invoice
2. Calls payment schedule to generate allocations
3. Creates ScheduledPayment records
4. Publishes domain event: VendorInvoiceCreditPaymentScheduledDomainEvent
9. Best Practices
Naming Conventions
Use descriptive names that indicate:
- The allocation method
- The frequency
- The number of payments or fixed amount
Good Examples:
QUARTERLY-4PMT: Quarterly payments, 4 installmentsMONTHLY-FIXED-2500: Monthly payments, $2,500 eachMILESTONE-5STAGE: Custom milestone payments, 5 stagesNET30-3EQUAL: Net 30 days, 3 equal payments
Bad Examples:
SCHEDULE1: Not descriptivePAYMENT: Too genericABC: Meaningless abbreviation
When to Use Each Allocation Method
Use Fixed Allocation when:
- You have a standard fixed payment amount (e.g., lease payments)
- The number of payments varies based on the total
- You want consistent payment amounts
Use Fixed Quantity Allocation when:
- You want a specific number of payments
- Equal distribution is appropriate
- The payment amount can vary based on the total
Use Custom Allocation when:
- Payments are tied to milestones or deliverables
- You need unequal payment amounts
- Payment timing is irregular
- You're using percentage-based terms
Currency Considerations
- Always set the currency code explicitly
- Use one payment schedule per currency
- Don't try to apply a USD schedule to a EUR invoice
Good Practice:
Schedule: QUARTERLY-4PMT-USD (for USD invoices)
Schedule: QUARTERLY-4PMT-EUR (for EUR invoices)
Schedule: QUARTERLY-4PMT-AED (for AED invoices)
Constraint Setting
Minimum Payment Amount:
- Set this to avoid tiny final payments
- Consider transaction fees and processing costs
- Typical values: $100, $500, $1,000
Maximum Payment Amount:
- Use to enforce payment limits
- Consider credit limits and approval thresholds
- Typical use: Auto-approval limits
10. Troubleshooting Common Issues
Issue 1: Remainder Payment Too Small
Problem: The last payment is less than the minimum.
Cause: Fixed allocation with strict minimum payment amount.
Solution: Adjust the fixed payment amount or minimum payment amount.
Example:
Total: $10,100
Fixed Amount: $2,000
Minimum: $500
Payment 1-5: $2,000 each = $10,000
Payment 6: $100 ← Below minimum
Fix: Change Fixed Amount to $2,020
Payment 1-5: $2,020 each = $10,100 ← Perfect division
Issue 2: Cannot Divide Amount Evenly
Problem: Fixed Quantity allocation with constraints makes division impossible.
Cause: Number of payments conflicts with min/max constraints.
Solution: Adjust number of payments or relax constraints.
Example:
Total: $100,000
Number of Payments: 3
Maximum Payment: $20,000
$100,000 ÷ 3 = $33,333.33 ← Exceeds maximum
Fix Option 1: Increase number of payments to 5
$100,000 ÷ 5 = $20,000 ← Within maximum
Fix Option 2: Increase maximum payment to $35,000
Issue 3: Custom Percentages Don't Total 100%
Problem: Validation error on custom allocation with percentages.
Cause: Lines don't sum to exactly 100%.
Solution: Verify all line percentages and adjust.
Example:
Line 1: 30%
Line 2: 30%
Line 3: 25%
Total: 85% ← Missing 15%
Fix: Add another line or adjust existing lines
Line 1: 30%
Line 2: 30%
Line 3: 25%
Line 4: 15%
Total: 100% ✓
Summary
Payment Schedules provide a powerful, flexible system for automating payment splitting across multiple installments. By configuring allocation methods, payment frequencies, and constraints, you can model virtually any payment term structure required by your business.
Key Takeaways:
- Three allocation methods cover fixed amounts, fixed quantities, and custom terms
- Seven payment frequencies support various timing needs
- Constraint properties ensure payments stay within business limits
- Reusable templates promote consistency across transactions
- Automatic calculation reduces manual effort and errors
- Integration with AR and AP modules for seamless payment processing
Whether you're managing simple monthly installments or complex milestone-based project payments, Payment Schedules provide the structure and automation to handle them efficiently.