Target Savings - V2 Configuration
Product Type: Goal-Based Savings with Gamification
Use Case: Structured savings for specific goals with rewards
Minimum Amount: ₦10,000 - ₦50,000 per month
Goal Period: 3-60 months
Interest Rate: Base 4% + Performance Bonus (up to +6%)
Overview
Target Savings is a gamified goal-oriented savings product that helps customers save systematically toward specific objectives (emergency fund, education, vacation, home purchase). Features milestone tracking, performance bonuses, achievement badges, and automated saving tools.
Key Features
- Goal Definition: Set target amount and deadline
- Milestone Tracking: 25%, 50%, 75%, 100% progress rewards
- Performance Bonuses: Up to +6% for on-time deposits
- Auto-Debit: Automatic monthly contributions
- Round-Up Savings: Round transactions to nearest ₦100
- Gamification: Badges, certificates, achievement unlocks
- Flexible Contributions: Add extra anytime
- Partial Withdrawals: Limited, with conditions
YAML Field Reference
Basic Information Section
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
productCode | String | ✅ Yes | Unique product code | "TS-GENERAL-001" |
productName | String | ✅ Yes | Display name | "Target Savings" |
description | String | No | Product description | "Goal-based savings with rewards" |
isActive | Boolean | No | Product status | true |
depositAccountType | String | ✅ Yes | Account type | "TargetSavings" |
lineOfBusiness | Enum | No | Business classification | "Retail" |
Goal Configuration Section
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
minimumTargetAmount | Decimal | ✅ Yes | Minimum goal | 100000 |
maximumTargetAmount | Decimal | No | Maximum goal | 50000000 |
minimumGoalPeriodMonths | Integer | ✅ Yes | Shortest duration | 3 |
maximumGoalPeriodMonths | Integer | ✅ Yes | Longest duration | 60 |
allowGoalExtension | Boolean | No | Can extend deadline | true |
extensionPenalty | Decimal | No | Penalty for extension | 0 |
Monthly Contribution Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
minimumMonthlyContribution | Decimal | ✅ Yes | Minimum per month | 10000 |
maximumMonthlyContribution | Decimal | No | Maximum per month | 0 |
allowVariableContributions | Boolean | No | Can vary monthly amount | true |
allowAdditionalDeposits | Boolean | No | Extra deposits anytime | true |
Interest Rate Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
baseRate | Decimal | ✅ Yes | Base interest rate | 4.0 |
calculationMethod | Enum | ✅ Yes | Calculation approach | "DailyBalance" |
creditFrequency | Enum | ✅ Yes | When interest is paid | "Monthly" or "Maturity" |
Performance Bonus Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
enablePerformanceBonus | Boolean | No | Reward on-time deposits | true |
bonusCalculationBasis | Enum | No | How to calculate bonus | "OnTimeDepositRate" |
maximumBonusRate | Decimal | No | Max bonus rate | 6.0 |
missedDepositPenalty | Decimal | No | Penalty for missed deposit | 0.5 |
Performance Bonus Tiers:
performanceTiers:
- onTimeRate: 100 # 100% deposits on time
bonusRate: 6.0 # +6% bonus
- onTimeRate: 90 # 90-99% on time
bonusRate: 4.0 # +4% bonus
- onTimeRate: 80 # 80-89% on time
bonusRate: 2.0 # +2% bonus
- onTimeRate: 70 # 70-79% on time
bonusRate: 1.0 # +1% bonus
Milestone Rewards Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
enableMilestones | Boolean | No | Track milestone progress | true |
milestones[] | Array | No | Milestone definitions | See below |
Milestone Structure:
milestones:
- progressPercentage: 25
rewardType: "Badge"
rewardValue: "Quarter Goal Badge"
cashBonus: 0
- progressPercentage: 50
rewardType: "CashBonus"
rewardValue: "Halfway Achievement"
cashBonus: 5000
- progressPercentage: 75
rewardType: "Badge"
rewardValue: "Three-Quarter Champion"
cashBonus: 0
- progressPercentage: 100
rewardType: "Certificate"
rewardValue: "Goal Achieved Certificate"
cashBonus: 10000
Auto-Debit Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
enableAutoDebit | Boolean | No | Automatic contributions | true |
autoDebitSourceAccount | String | No | Debit from account | "PrimarySavings" |
autoDebitDay | Integer | No | Day of month | 5 |
autoDebitRetryAttempts | Integer | No | Retry on failure | 3 |
autoDebitFailureAction | Enum | No | Action on failure | "NotifyCustomer" |
Round-Up Savings Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
enableRoundUp | Boolean | No | Round-up transactions | true |
roundUpTarget | Decimal | ✅ If enabled | Round to amount | 100 |
roundUpSourceAccounts[] | Array | No | Which accounts | ["CurrentAccount"] |
roundUpMaxPerTransaction | Decimal | No | Max per transaction | 100 |
Withdrawal Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
allowPartialWithdrawal | Boolean | No | Permit withdrawals | false |
partialWithdrawalLimit | Decimal | No | Max withdrawal % | 20 |
withdrawalPenalty | Decimal | No | Penalty % | 5 |
minimumBalanceAfterWithdrawal | Decimal | No | Remaining minimum | 50000 |
Gamification Configuration
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
enableBadges | Boolean | No | Award badges | true |
enableLeaderboard | Boolean | No | Public leaderboard | false |
enableStreakTracking | Boolean | No | Track consecutive deposits | true |
streakBonusRate | Decimal | No | Bonus for streaks | 0.5 |
Fees Configuration Section
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
goalSetupFee | Decimal | No | One-time setup | 0 |
monthlyMaintenanceFee | Decimal | No | Monthly fee | 0 |
earlyLiquidationFee | Decimal | No | Close before goal | 2500 |
Eligibility Configuration Section
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
minimumAge | Integer | No | Minimum age | 18 |
allowCorporateAccounts | Boolean | No | Corporate accounts | false |
allowIndividualAccounts | Boolean | No | Personal accounts | true |
requiredDocuments[] | Array | ✅ Yes | Mandatory documents | ["ValidID", "BVN"] |
kycLevel | Enum | No | Required KYC tier | "Tier1" |
Notifications Configuration Section
| Field Name | Data Type | Required | Description | Example |
|---|---|---|---|---|
sendGoalCreationConfirmation | Boolean | No | Confirm goal setup | true |
sendMonthlyProgressReport | Boolean | No | Monthly progress | true |
sendMilestoneAchievementNotification | Boolean | No | Alert on milestone | true |
sendAutoDebitReminder | Boolean | No | Remind before auto-debit | true |
sendGoalCompletionCertificate | Boolean | No | Email certificate | true |
Complete Sample YAML Configuration
basicInfo:
productCode: "TS-GENERAL-001"
productName: "Target Savings"
description: "Achieve your financial goals with structured saving"
isActive: true
depositAccountType: "TargetSavings"
lineOfBusiness: "Retail"
currencyCode: "NGN"
goalConfig:
minimumTargetAmount: 100000
maximumTargetAmount: 50000000
minimumGoalPeriodMonths: 3
maximumGoalPeriodMonths: 60
allowGoalExtension: true
extensionPenalty: 0
monthlyContributionConfig:
minimumMonthlyContribution: 10000
maximumMonthlyContribution: 0 # Unlimited
allowVariableContributions: true
allowAdditionalDeposits: true
interestConfig:
baseRate: 4.0
calculationMethod: "DailyBalance"
creditFrequency: "Maturity"
performanceBonusConfig:
enablePerformanceBonus: true
bonusCalculationBasis: "OnTimeDepositRate"
maximumBonusRate: 6.0
missedDepositPenalty: 0.5
performanceTiers:
- onTimeRate: 100
bonusRate: 6.0
- onTimeRate: 90
bonusRate: 4.0
- onTimeRate: 80
bonusRate: 2.0
- onTimeRate: 70
bonusRate: 1.0
milestoneRewardsConfig:
enableMilestones: true
milestones:
- progressPercentage: 25
rewardType: "Badge"
rewardValue: "Quarter Goal Achievement"
cashBonus: 0
- progressPercentage: 50
rewardType: "CashBonus"
rewardValue: "Halfway Hero"
cashBonus: 5000
- progressPercentage: 75
rewardType: "Badge"
rewardValue: "Almost There Champion"
cashBonus: 0
- progressPercentage: 100
rewardType: "Certificate"
rewardValue: "Goal Achieved Certificate + Voucher"
cashBonus: 10000
autoDebitConfig:
enableAutoDebit: true
autoDebitSourceAccount: "PrimarySavings"
autoDebitDay: 5
autoDebitRetryAttempts: 3
autoDebitFailureAction: "NotifyCustomer"
roundUpSavingsConfig:
enableRoundUp: true
roundUpTarget: 100
roundUpSourceAccounts:
- "CurrentAccount"
- "PrimarySavings"
roundUpMaxPerTransaction: 100
withdrawalConfig:
allowPartialWithdrawal: false
partialWithdrawalLimit: 0
withdrawalPenalty: 5
minimumBalanceAfterWithdrawal: 0
gamificationConfig:
enableBadges: true
enableLeaderboard: false
enableStreakTracking: true
streakBonusRate: 0.5 # +0.5% per 6-month streak
fees:
goalSetupFee: 0
monthlyMaintenanceFee: 0
earlyLiquidationFee: 2500
eligibilityConfig:
minimumAge: 18
allowCorporateAccounts: false
allowIndividualAccounts: true
requiredDocuments:
- "ValidID"
- "BVN"
kycLevel: "Tier1"
notificationsConfig:
sendGoalCreationConfirmation: true
sendMonthlyProgressReport: true
sendMilestoneAchievementNotification: true
sendAutoDebitReminder: true
sendGoalCompletionCertificate: true
channels:
sms: true
email: true
push: true
Use Cases & Examples
Example 1: Emergency Fund Target (12 Months)
Goal: Build ₦500,000 emergency fund in 12 months.
Configuration:
targetAmount: ₦500,000
goalPeriod: 12 months
monthlyContribution: ₦42,000
baseRate: 4%
performanceBonus: Up to +6%
Monthly Plan:
Required Monthly: ₦41,667
Recommended: ₦42,000 (buffer for rounding)
Auto-Debit Schedule:
5th of each month: ₦42,000 from savings
Notification 2 days before
Progress Tracking:
Month 3 (25%): Badge + Progress Report
Month 6 (50%): ₦5,000 cash bonus + Badge
Month 9 (75%): Badge + Motivation message
Month 12 (100%): Certificate + ₦10,000 bonus
Final Outcome:
Total Deposits: ₦504,000 (12 × ₦42,000)
Base Interest (4%): ₦10,080 (average balance ₦252k)
Performance Bonus (6%): ₦15,120 (100% on-time)
Milestone Bonuses: ₦15,000
Total Interest + Bonuses: ₦40,200
Final Balance: ₦544,200
Goal Achieved: ✅
Exceeded Target By: ₦44,200
Example 2: Education Savings (36 Months)
Goal: Save ₦2,000,000 for child's university in 3 years.
Configuration:
targetAmount: ₦2,000,000
goalPeriod: 36 months
monthlyContribution: ₦56,000
allowAdditionalDeposits: true
Contribution Strategy:
Month 1-12: ₦56,000/month = ₦672,000
Month 13-24: ₦56,000 + bonuses = ₦700,000
Month 25-36: ₦56,000 + windfalls = ₦750,000
Additional Deposits:
Birthday gifts: ₦50,000
Tax refund: ₦100,000
Bonuses: Variable
Round-Up Savings:
Current account transactions rounded to ₦100
~₦30/transaction × 50 trans/month = ₦1,500/month
Annual round-ups: ₦18,000
Performance Tracking:
On-Time Deposits:
Year 1: 12/12 (100%) → +6% bonus
Year 2: 11/12 (92%) → +4% bonus (missed 1 month)
Year 3: 12/12 (100%) → +6% bonus
Average Performance: 97% → +5% effective bonus
Milestones:
₦500,000 (25%): Badge
₦1,000,000 (50%): ₦5,000 bonus
₦1,500,000 (75%): Badge
₦2,000,000 (100%): Certificate + ₦10,000
Streak Bonuses:
6-month streak: +0.5%
12-month streak: +1.0%
18-month streak: +1.5%
Final Outcome:
Total Contributions: ₦2,016,000
Round-Up Savings: ₦54,000
Additional Deposits: ₦150,000
Total Principal: ₦2,220,000
Base Interest (4%): ₦133,200
Performance Bonus (5% avg): ₦166,500
Streak Bonus (1.5%): ₦49,950
Milestone Bonuses: ₦15,000
Total Interest + Bonuses: ₦364,650
Final Balance: ₦2,584,650
Goal Exceeded By: ₦584,650 (29% surplus!)
Example 3: Vacation Fund with Variable Contributions
Goal: Save ₦300,000 for family vacation in 10 months.
Configuration:
targetAmount: ₦300,000
goalPeriod: 10 months
minimumMonthlyContribution: ₦10,000
allowVariableContributions: true
Variable Contribution Plan:
Month 1-5 (Lean months): ₦25,000/month = ₦125,000
Month 6 (Bonus month): ₦75,000
Month 7-9 (Normal): ₦30,000/month = ₦90,000
Month 10 (Final push): ₦40,000
Total: ₦330,000 (₦30,000 buffer)
Performance Impact:
All deposits made on time: 10/10 (100%)
Performance Bonus: +6%
Base Rate: 4%
Bonus Rate: +6%
Effective Rate: 10%
Interest Calculation:
Average Balance: ₦165,000
Period: 10 months
Interest: ₦165k × 10% × (10/12) = ₦13,750
Milestone Bonuses:
50% (₦150k): ₦5,000
100% (₦300k): ₦10,000
Total: ₦15,000
Final Balance: ₦330,000 + ₦13,750 + ₦15,000 = ₦358,750
Vacation Budget: ₦358,750 (₦58,750 extra for upgrades!)
Performance Bonus System
On-Time Deposit Tracking
performanceBonusConfig:
bonusCalculationBasis: "OnTimeDepositRate"
Calculation:
Goal: ₦600,000 in 12 months
Monthly: ₦50,000
Deposit Schedule:
✅ Jan 5: ₦50,000 (on time)
✅ Feb 5: ₦50,000 (on time)
✅ Mar 5: ₦50,000 (on time)
⌠Apr 5: MISSED (sick, forgot)
✅ Apr 15: ₦50,000 (late by 10 days)
✅ May 5: ₦50,000 (on time)
✅ Jun 5: ₦50,000 (on time)
... continues
Performance at Month 6:
On-Time: 5/6 = 83%
Tier: 80-89% → +2% bonus
Performance at Month 12:
On-Time: 11/12 = 92%
Tier: 90-99% → +4% bonus
Bonus Calculation:
Base Rate: 4%
Performance Bonus: +4%
Effective Rate: 8%
Base Interest: ₦600k × 4% × (12/12) = ₦24,000
Bonus Interest: ₦600k × 4% × (12/12) = ₦24,000
Total Interest: ₦48,000
Missed Deposit Penalty
missedDepositPenalty: 0.5 # -0.5% per missed deposit
Example:
Goal: 12 months
Missed: 2 deposits
Base Rate: 4%
Earned Bonus: +4% (10/12 = 83%)
Missed Penalty: -1% (2 × 0.5%)
Effective Rate: 7%
Impact:
With perfect record (100%): 4% + 6% = 10%
With 2 missed (83%): 4% + 4% - 1% = 7%
Difference: -3% or ₦18,000 on ₦600k
Milestone Rewards
Progress Tracking
milestones:
25%: Badge
50%: ₦5,000 cash + Badge
75%: Badge
100%: Certificate + ₦10,000
Timeline Example (₦500k / 12 months):
Month 0: Goal Created
Balance: ₦0
Next Milestone: ₦125,000 (25%)
Month 3: First Milestone
Balance: ₦126,000 (25.2%)
Reward: "Quarter Goal" Badge
Notification: "🎉 You've reached 25%! Keep it up!"
Profile: Badge displayed
Month 6: Halfway Point
Balance: ₦252,000 (50.4%)
Reward: ₦5,000 cash bonus + "Halfway Hero" Badge
Notification: "🎉 Halfway there! ₦5,000 bonus credited"
Balance After: ₦257,000
Month 9: Three-Quarter Mark
Balance: ₦378,000 (75.6%)
Reward: "Almost There Champion" Badge
Notification: "🎉 75% complete! Final stretch!"
Month 12: Goal Achieved
Balance: ₦504,000 (100.8%)
Rewards:
- Certificate: Personalized PDF emailed
- ₦10,000 cash bonus
- "Goal Achieved 2026" Badge
- Shopping voucher: ₦20,000
Final Balance: ₦534,000
Notification: "🎉🎉 Goal achieved! Certificate sent to email"
Gamification Elements
gamificationConfig:
enableBadges: true
enableStreakTracking: true
streakBonusRate: 0.5
Badge System:
Milestone Badges:
- "First Step" (first deposit)
- "Quarter Goal" (25%)
- "Halfway Hero" (50%)
- "Almost There Champion" (75%)
- "Goal Achieved" (100%)
Streak Badges:
- "3-Month Streak" (bronze)
- "6-Month Streak" (silver) → +0.5% bonus
- "12-Month Streak" (gold) → +1.0% bonus
- "Perfect Year" (12/12 on-time) → +2.0% bonus
Special Badges:
- "Early Bird" (goal achieved before deadline)
- "Overachiever" (exceeded goal by 20%+)
- "Savings Champion" (multiple goals completed)
Auto-Debit & Automation
Auto-Debit Setup
autoDebitConfig:
enableAutoDebit: true
autoDebitSourceAccount: "PrimarySavings"
autoDebitDay: 5
autoDebitRetryAttempts: 3
Process Flow:
Day 3 (2 days before):
SMS: "Auto-debit of ₦50,000 will occur on Jan 5"
Check balance: ₦150,000 ✅
Day 5 (debit day):
Step 1: Validate source account balance
Step 2: Debit ₦50,000 from savings
Step 3: Credit target savings account
Step 4: Update progress (Month 1 complete)
Step 5: SMS: "₦50,000 added to your goal. Balance: ₦50,000"
If Insufficient Funds:
Day 5: Attempt 1 FAILED
Day 6: Attempt 2 (retry)
Day 7: Attempt 3 (final retry)
If still failed: Mark as MISSED
- Notify customer
- Impact performance bonus
- Customer can manually deposit
Round-Up Savings
roundUpSavingsConfig:
enableRoundUp: true
roundUpTarget: 100
roundUpMaxPerTransaction: 100
How It Works:
Current Account Transactions:
Transaction 1:
Coffee: ₦450
Round up to: ₦500
Transfer to target savings: ₦50
Transaction 2:
Groceries: ₦12,350
Round up to: ₦12,400
Transfer: ₦50
Transaction 3:
Fuel: ₦8,920
Round up to: ₦9,000
Transfer: ₦80
Transaction 4:
Transfer: ₦100,000 (large)
Round up to: ₦100,000 (no change, exactly ₦100)
Transfer: ₦0
Daily Round-Ups: ₦50 + ₦50 + ₦80 = ₦180
Monthly (30 trans): ~₦1,500
Annual: ~₦18,000
Benefit: Painless micro-savings
Validation Rules
Goal Setup Validation
Implementation details removed for security.
Contact support for implementation guidance.
Performance Bonus Calculation
Implementation details removed for security.
Contact support for implementation guidance.
Troubleshooting
Issue: "Missed a monthly deposit, lost bonus"
Cause: Insufficient funds in source account on auto-debit day.
Solutions:
Problem: Month 4 deposit missed due to low savings balance
Impact:
Performance drops: 100% → 75%
Bonus reduces: +6% → +1%
Interest loss: ~₦15,000 on ₦500k goal
Prevention Strategies:
1. Buffer Balance
Maintain ₦100k buffer in savings
Set low balance alert at ₦75k
2. Auto-Debit Timing
Schedule after salary (e.g., day 5)
Avoid month-end when balances low
3. Backup Funding
Link secondary account
Manual top-up option
4. Catch-Up Deposit
Make manual deposit within 5 days
System can mark as "late but paid" (partial credit)
Recovery:
Current: 3/4 on-time (75%)
Remaining: 8 deposits
Need: 8/8 perfect → 11/12 (92%) → +4% bonus
Still better than missing more!
Issue: "Goal too ambitious, can't keep up"
Cause: Unrealistic target or life circumstances changed.
Solutions:
Original Goal: ₦1,000,000 in 12 months (₦83,333/month)
Reality: Can only manage ₦50,000/month
Option 1: Extend Goal Period
New Period: 20 months
Monthly: ₦50,000
Penalty: None (if allowGoalExtension: true)
Impact: Delay achievement, but keep momentum
Option 2: Reduce Target Amount
New Target: ₦600,000
Period: Keep 12 months
Monthly: ₦50,000
Trade-off: Lower goal, but achievable
Option 3: Variable Contributions
Some months: ₦50,000
Other months: ₦80,000 (when possible)
Average: ₦65,000
Flexible approach
Option 4: Partial Liquidation
Withdraw: ₦200,000 (if allowed)
Penalty: 5% = ₦10,000
Continue: ₦800,000 goal
Last resort: Better than full liquidation
Recommendation: Option 1 (extend) preserves savings discipline
Issue: "Early liquidation needed"
Cause: Emergency expense.
Analysis:
Target Savings Account:
Goal: ₦500,000
Current: ₦350,000 (70% complete, Month 8/12)
Interest Earned: ₦14,000
Milestone Bonuses: ₦5,000
Total: ₦369,000
Early Liquidation:
Fee: ₦2,500
Receive: ₦369,000 - ₦2,500 = ₦366,500
Lost Future Benefits:
- 75% milestone badge (sentimental)
- 100% completion bonus ₦10,000
- 4 months interest: ~₦7,000
- Performance bonus: ~₦10,000
Total Lost: ₦27,000
Alternatives:
1. Partial Withdrawal (if allowed)
Withdraw: ₦100,000
Penalty: 5% = ₦5,000
Receive: ₦95,000
Remaining Goal: Continue with ₦250k → ₦500k
2. Short-Term Loan
Borrow: ₦100,000 for 30 days
Interest: ~₦3,000
Keep target savings intact
Cheaper than liquidation
3. Adjust Goal
Reduce target: ₦350k → ₦500k
Extend deadline: +2 months
Complete successfully
Choice depends on emergency urgency vs long-term goals
Migration from V1
V1 Target Savings Mapping
| V1 Field/Table | V2 YAML Path |
|---|---|
| TargetAmount | goalConfig.minimumTargetAmount (use for validation) |
| GoalPeriod | goalConfig.maximumGoalPeriodMonths |
| MonthlyContribution | monthlyContributionConfig.minimumMonthlyContribution |
| InterestRate | interestConfig.baseRate |
| AutoDebit | autoDebitConfig.enableAutoDebit |
Last Updated: January 2, 2026
API Version: V2 (BPMCore)
Product Category: Deposit Products
Complexity: ââââ (High - Gamification & Automation)