Financial services · Credit scoring

Scoring and prioritization

A 0 to 100 score per application or customer, with the weight of each component in plain view, written back to the card so the team first approaches whoever is most likely to become a good loan.

UsageWidely used
EffortMedium
ForBanking correspondents, lending and earned wage access fintechs, and brokers that need to decide whom to approve or whom sales calls first.
Source

Card fields, credit engine, bureau and transactions

Model

Components with stated weights and knockout rules kept separate

Outcome

Score, priority band and reason per application

Activation

Score on the card, sales queue, AI agent and alerts

What it solves

  • Sales works the queue in order of likelihood to become a loan, not in order of arrival.
  • Every score explains itself: you can say how many points came from collateral, income and LTV.
  • The approval cutoff is evaluated against the delinquency that followed, by score band.

Business questions it answers

Ask your agent these questions once the case is live.

Which applications should sales tackle first today?
Why did this application get this score?
What is the score distribution of the applications that came in this month?
Is the score cutoff approving people who later fall behind?
Which rule declines the most applications, and how much volume does that cost?
Did the approval rate of any bank or segment change from yesterday to today?

What you need

  • The pipeline connected to Nekt (Pipefy, Zeev or core system), with the collateral, income and credit amount fields
  • The score components and weights agreed with credit and sales
  • To calibrate the cutoff: the decision log and the delinquency of disbursed contracts

What you get

  • A table per application with the score, the points for each component and the rules that failed
  • The score written back to the card or the CRM, ready to sort the queue
  • An AI agent that explains the score of any application
  • Alerts when the approval rate of a bank or segment breaks from the norm

Where to activate

Score on the card and in the CRM

The score and the points per component go back to the card or the deal, and the sales queue sorts by them.

AI agent via MCP

Explains why an application got its score and which rule knocked it out, with the weights from the context document.

Approval alerts

Daily and per-batch check of the engine log: an approval rate by bank or segment that breaks from the norm goes to Slack.

Ready to build?

The calculation is simple SQL. The work is in settling the weights with the team, cleaning the card fields and building the write-back to the pipeline. The detailed view has the business rules, the pitfalls and the acceptance test. Or send everything straight to your agent with the Nekt MCP.

The problem

The data that decides a loan is scattered: collateral value and year on the card, income typed as text, the bureau score in a log, salary hidden in bank transactions. Each analyst weighs things differently and the queue moves in order of arrival. When someone does build a score, it is usually a single formula with no explanation, recalculated on top of the score the pipeline already stored, and evaluated with data that did not exist on the day of the decision.

How it is usually done, and the rule

Each row is a mistake that already happened in practice.

The common wayThe rule
01
A single formula that returns only the final score.
Components with stated weights that add up to 100

The score is the sum of components, each with a maximum score written in the context document. A real example for vehicle-backed lending: collateral value 20, vehicle year 20, vehicle type 15, collateral quality 15, monthly income 15, employment status 7, location 3, LTV 3, purpose 2. Store each component's points in its own column, next to the total.

02
Diluting the knockout rule as a small weight that another component can offset.
A knockout rule is not a weight

Some conditions sink the application regardless of the rest: a vehicle that is too old, a collateral type the funding does not accept, collateral not in the customer's name or with an outstanding balance, an employer not on the accepted list, salary below the minimum, a failed bureau score. Treat them as a heavy penalty or a cutoff, with one flag per rule. Approved on score means every rule passed, and the decline reason is the rule that failed.

03
Converting the text directly and scoring null income as zero.
Card fields normalized before scoring

Card values arrive as Brazilian-formatted text ('1.234,56', sometimes with R$ and the select field's brackets). Remove the thousands separator, replace the comma with a period and convert. LTV = requested credit amount / collateral value. An outstanding balance on the collateral lowers collateral quality, not the credit amount.

04
Ignoring the empty component and rescaling the score of the others.
Missing data has its own score and flag

An application without income or without the collateral year gets the component's minimum score and a missing-data flag, never the average. Measure each component's coverage: a component filled on only a few cards does not discriminate anyone and its weight should be reviewed.

05
Rebuilding in SQL a score that already exists in the operational system.
If the pipeline already stores a score, read it, do not recalculate

When the card already carries a weighted score calculated by another process, or the credit engine returns a tier that sets the limit, that is the official score. Read the field directly from the card or the engine log. Recalculating on top creates two scores for the same application and sales does not know which one counts.

06
Joining the old decision with the current salary and customer record.
Score as of the decision point in time

To evaluate the cutoff, each component needs the value available on the decision date. Salary detected in transactions is rebuilt point in time: deduplicate repeated transactions, normalize the sign (credits positive) and recalculate with the history up to that date. Evaluating with today's data makes the model look better than it was.

07
Treating every twice-a-month payment as biweekly.
Pay frequency from deposits, not from what was declared

Someone paid on the 15th and the last day of the month (semimonthly) is different from someone paid every 14 days. Classify by the median interval between salary deposits: 15 to 16 days is semimonthly on fixed dates; 14 days is biweekly. The frequency sets the collection date and feeds the capacity score.

08
Changing the cutoff by looking only at the approval rate.
Calibrate the cutoff by band and by vintage

Group decisions into fixed score bands (for example, every 20 points, rounding up) and measure per band: approval, amount disbursed and subsequent delinquency (FPD and delinquency past the policy cutoff) in the decision's vintage. Instant engine responses (up to 1 second, reused decisions) are excluded from the average response time.

09
Exporting a spreadsheet with every score for someone to paste into the card.
Write-back in the pipeline's format

The score goes back to the operational system as one row per card and field: (card_id, field_id, new_value), ready for Pipefy's batch field update or for the CRM property. Send only what changed since the last send and store the calculation date with the score.

Score components: a real example

Vehicle-backed lending. Weights add up to 100; each company calibrates its own.

Market value of the assetCollateral20 points
Heavy penalty for an old vehicleVehicle year20 points
Motorcycles are heavily penalizedVehicle type15 points
In the customer's name with no outstanding balanceCollateral quality15 points
Declared or detected monthly incomeIncome15 points
Employment type and occupationEmployment status7 points
Market servedLocation3 points
Credit / collateralLTV3 points
Use of the moneyPurpose2 points
Employer not on the list, salary below the minimum, failed bureau scoreKnockout rules, outside the sumflag per rule

Definitions

Application score
sum of the component points, from 0 to 100, per card and calculation date
Component points
score obtained in the component, between zero and the stated maximum weight, per card
LTV
requested credit amount / collateral value, per application, on the calculation date
Approved on score
true when every knockout rule passed, per application
Decline reason
the knockout rule that failed, per application; if more than one, the first in the policy's order
Score band
the fixed point range (for example, every 20) the score falls into on the decision date
Approval rate by band
approved applications / evaluated applications, by score band and decision month
Delinquency by band
contracts with FPD / disbursed contracts, by score band at decision and vintage
Component coverage
cards with the component's data filled / scored cards, in the period

Pitfalls that already happened

Two scores for the same card

The card already carried a weighted score filled on almost every application, and a transformation calculated another score on top. Sales started seeing two different numbers.

Define which score is official and read the field from the source.

Doubled salary

Bank transactions repeated during sync and with an inverted sign made the detected salary of some users double, and the limit rose with it.

Deduplicate by user, date, account and amount, normalize the sign and rebuild the history.

Semimonthly treated as biweekly

Users who declared being paid twice a month were classified as every 14 days, and collection was scheduled before the salary landed.

Classify by the median interval between deposits.

Cutoff evaluated with today's data

The cutoff analysis joined old decisions with the current customer record. The score seemed to separate good and bad payers better than it did at the time.

Rebuild the features point in time and store the decision snapshot.

Unrealistic response time

Reused decisions came back in under a second and pulled the engine's average response time down.

Exclude responses of up to 1 second from the average and report them separately.

A list with repeated customers

In a monthly propensity list, the same customer appeared in several likely months and was approached more than once.

One customer per list, in the month and product with the highest likelihood.

Acceptance test

The case is done when every item passes.

Agent package

Paste into Claude, ChatGPT or any client with the Nekt MCP connected.

Full Markdown
Scoring and prioritization
- The official score for product <product> is <card field / engine tier / score table>. Never recalculate a score the source already stores.
- Score = sum of the components, from 0 to 100. Weights: <component: weight>. Each component's points are in their own columns; use them to explain the score.
- Knockout rules stay outside the sum: <list>. Approved on score = all passed. Decline reason = the rule that failed.
- Missing data gets the component minimum and a flag. Never fill with the average.
- LTV = credit amount / collateral value. Card values come as Brazilian-formatted text: normalize first.
- To evaluate the cutoff, use the features as of the decision date, never the current ones.
- Score bands: every <20> points. Current cutoff: <value>.
- Delinquency by band is measured in the decision's vintage (FPD and delinquency over <N> days).
- Engine response time excludes responses of up to 1 second.
- Never show a full CPF (individual tax ID); use the hash or the masked CPF.
Per-client exceptions:
- <client>: for product <product>, the score comes ready in card field <field>.
- <client>: the engine tier sets the limit; the limit progression for good payment is in <table>.
- <client>: the pay frequency comes from <source> and takes precedence over the declared one.

Variations

Machine learning model

A classifier (random forest or gradient boosting) over the history to list the top third of customers; publish the most important variables next to the list.

Insurance propensity

Likely month and line of purchase from the time pattern of policies, with a monthly outreach list without repeated customers.

Engagement score

Levels by number of event or training participations, per normalized CNPJ (company tax ID), to prioritize who gets a credit offer.