v2.0

GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!

Watch the launch videoWatch

Credit Limit Adjustment

Data-driven solution that evaluates payment history, utilization, and financial behavior to automatically recommend credit limit changes.

Solution

This credit limit adjustment system evaluates customer accounts to identify optimal credit limit modifications based on multiple risk factors. The system analyzes payment reliability through on-time payment percentages and recent late payment occurrences. It examines credit utilization by assessing current usage percentages and six-month average patterns to identify healthy borrowing behaviors.

The solution also evaluates broader financial stability indicators including recent credit inquiries, relationship longevity with the financial institution, income verification status, and product portfolio diversity. By combining these factors into a weighted scoring system, it generates percentage-based recommendations for increasing or decreasing credit limits with detailed justifications. Each recommendation includes specific dollar amounts for limit adjustments based on the customer's existing credit allocation.

How it works

The decision system processes account information through multiple evaluation stages:

  1. Payment History Analysis: Evaluates on-time payment percentage and recent late payments to assign a payment history rating and score.
  2. Utilization Assessment: Analyzes current utilization percentage and 6-month average to determine credit usage patterns and apply a utilization score.
  3. Financial Behavior Evaluation: Reviews credit inquiries, relationship tenure, and income verification status to establish a financial behavior rating and score.
  4. Score Aggregation: Combines all evaluation scores into a total adjustment score to determine the overall account strength.
  5. Recommendation Calculation: Maps the total score to specific percentage-based credit limit adjustments with supporting justifications.
  6. Final Determination: Calculates the exact dollar amount change and new credit limit based on the recommended percentage adjustment.

Where teams use it

  • Retail banking credit card portfolio management
  • Consumer lending risk optimization
  • Credit line increase campaigns
  • Customer retention and relationship expansion
  • Risk-based pricing adjustments
  • Automated account review processes
  • Regulatory compliance for responsible lending

Inside the decision model

Credit Limit Adjustment ships as a JDM decision graph with 7 nodes, 4 decision tables and 26 rules. Download it, load it into GoRules, and run it as-is on Zen Engine.

Decision graph7 nodes · read-only
input requesttable payment_history_evaluationtable utilization_evaluationtable financial_behavior_evaluationexpression calculate_total_scoretable credit_limit_recommendationexpression calculate_final_amounts
01

Request

input

One account object carries everything: payment_history with on-time percentages and late payment counts, utilization with current and six-month figures, financial_behavior covering inquiries, tenure, and income verification, plus the current_credit_limit the final step adjusts.

Sample requestJSON
{
  "account": {
    "customer_id": "CUST10025",
    "current_credit_limit": 5000,
    "payment_history": {
      "on_time_payment_percentage": 98,
      "late_payments_last_12_months": 0,
      "total_payments": 24
    },
    "utilization": {
      "current_percentage": 25,
      "average_last_6_months": 40,
      "highest_balance": 2800
    },
    "financial_behavior": {
      "credit_inquiries_last_12_months": 0,
      "years_with_institution": 4,
      "income_verified": true,
      "has_other_products": true
    }
  }
}
02

Payment History Evaluation

table

Repayment quality is read from two fields at once under a first hit policy: an on_time_payment_percentage of 95 or better with zero late_payments_last_12_months rates 'excellent' and +30, 90 with at most 1 late payment rates 'good' and +20, 80 with up to 2 is score-neutral 'average', 70 with up to 3 is 'below_average' at -10, and the fallback is 'poor' at -30.

Giving payment history the widest score swing in the graph (a 60-point spread) parallels how consumer credit models weight it; in the FICO model payment history is the single largest component at about 35 percent. Requiring both a high on-time rate and few recent lates catches accounts whose lifetime average looks fine but which have deteriorated lately.

Decision tablefirst hit policy
On-time Payment Percentageaccount.payment_history.on_time_payment_percentageLate Payments (Last 12 Months)account.payment_history.late_payments_last_12_monthsPayment History Ratingevaluation.payment_history_ratingPayment History Scoreevaluation.payment_history_score
>= 95<= 0'excellent'30
>= 90<= 1'good'20
>= 80<= 2'average'0
>= 70<= 3'below_average'-10
--'poor'-30
03

Utilization Evaluation

table

Usage patterns pair the snapshot with the trend: a current_percentage under 30 alongside a six-month average under 50 rates 'low' and +25, the 30 to 50 band with a 50 to 70 average is 'moderate' at +15, and successively heavier bands step through 'high' (0), 'very_high' (-15), and the 'excessive' catch-all at -25.

The 30 percent line is the utilization guideline most credit scoring commentary converges on, below which revolving usage is considered healthy. Testing average_last_6_months as well as the current reading separates a customer who briefly ran up a balance from one who is persistently maxed out, and only the latter should cost limit headroom.

Decision tablefirst hit policy
Current Utilization Percentageaccount.utilization.current_percentageAverage Utilization (Last 6 Months)account.utilization.average_last_6_monthsUtilization Ratingevaluation.utilization_ratingUtilization Scoreevaluation.utilization_score
< 30< 50'low'25
>= 30, < 50>= 50, < 70'moderate'15
>= 50, < 70>= 70, < 85'high'0
>= 70, < 85>= 85, < 95'very_high'-15
--'excessive'-25
04

Financial Behavior Evaluation

table

Three signals combine into one rating: fewer than 1 credit inquiry in 12 months, 3 or more years_with_institution, and income_verified true earns 'excellent' at +25; slightly looser combinations grade 'good' (+15) and 'average' (+5), while fewer than 4 inquiries with under a year of tenure and unverified income falls to 'below_average' at -10, and the catch-all is 'poor' at -20.

Inquiry counts proxy for credit-seeking pressure, and long tenure gives the bank observed behavior it can trust more than bureau data alone. Verified income matters beyond risk appetite: US card issuers must consider a customer's ability to pay before raising a limit under the CARD Act, so an increase recommendation built on unverified income would be hard to action.

Decision tablefirst hit policy
Credit Inquiries (Last 12 Months)account.financial_behavior.credit_inquiries_last_12_monthsYears with Institutionaccount.financial_behavior.years_with_institutionIncome Verificationaccount.financial_behavior.income_verifiedFinancial Behavior Ratingevaluation.financial_behavior_ratingFinancial Behavior Scoreevaluation.financial_behavior_score
< 1>= 3true'excellent'25
< 2>= 2true'good'15
< 3>= 1-'average'5
< 4< 1false'below_average'-10
---'poor'-20
05

Calculate Total Score

expression

A single sum produces total_adjustment_score by adding evaluation.payment_history_score, evaluation.utilization_score, and evaluation.financial_behavior_score. The unweighted addition keeps each table's internal point scale as its implicit weight, and the result is the only input the recommendation ladder needs.

Expressions1 fields
total_adjustment_scoreevaluation.payment_history_score + evaluation.utilization_score + evaluation.financial_behavior_score
06

Credit Limit Recommendation

table

Eleven descending bands convert total_adjustment_score into recommendation.percent_change with a first hit policy: above 50 grants a 30 percent increase, then 25, 20, 15, 10, and 5 percent steps down to scores just above 0, while negative territory maps to a hold at 0 and cuts of -5, -10, -15, and finally -20 percent below -40. Every row also emits a plain-language justification, from 'Significant increase recommended' down to 'Major decrease recommended due to severe risk factors'.

Graduated moves in the 5 to 30 percent range match how issuers actually manage lines, since small periodic adjustments avoid sudden exposure jumps and customer shocks. The asymmetry is notable: the best score earns +30 percent but the worst only cuts -20, a common posture because aggressive decreases can trigger utilization spikes and attrition among salvageable accounts, and each row's justification text doubles as the explanation a customer or reviewer would see.

Decision tablefirst hit policy
Total Adjustment Scoretotal_adjustment_scorePercent Changerecommendation.percent_changeJustificationrecommendation.justification
> 5030'Significant increase recommended based on excellent history and behavior.'
> 4025'Strong increase recommended based on very good history and behavior.'
> 3020'Moderate increase recommended based on good history and behavior.'
> 2015'Increase recommended based on above average history and behavior.'
> 1010'Small increase recommended based on satisfactory history and behavior.'
> 05'Minimal increase recommended based on acceptable history and behavior.'

+5 more rows in the downloadable template

07

Calculate Final Amounts

expression

Dollar figures come last: recommendation.amount_change rounds account.current_credit_limit times percent_change over 100, and recommendation.new_credit_limit adds that change back to the current limit. Emitting concrete numbers means the account system can apply the decision without re-deriving the percentage math.

Expressions2 fields
recommendation.amount_changeround(account.current_credit_limit * (recommendation.percent_change / 100))
recommendation.new_credit_limitaccount.current_credit_limit + $.recommendation.amount_change

Make this template
your own.

Load Credit Limit Adjustment into GoRules, adjust the rules to your policy, and ship it behind your own API.