# Pricing a loan

The Pricing section takes the behavior your cohort (the loans your segment selects) has actually shown, how much it lost and how fast it prepaid, and prices a **representative new loan** of that kind. It always solves for the **required rate**: the note rate at which this loan's projected return meets the target you set. If you also enter the rate you plan to offer, it shows how the two compare.

What you enter is covered below. What Results shows, and how to check it by hand, is in [Reading pricing results](/modeling/reading-pricing-results/). The method behind each component is explained in [Loan pricing](/concepts/loan-pricing/).

## The section at a glance

The Pricing section has five parts, top to bottom. You fill in the first four; the fifth is the answer.

1. **Funding (FTP) curve**: your institution's cost of funds by term. Required; there is no default.
2. **Loan**: the loan amount, the term, and optionally the rate you plan to offer.
3. **Costs and fees**: what it costs to make and service the loan, and any fees you collect.
4. **Required return**: the return the loan must earn, as a target return on assets or on equity.
5. **Results**: the required rate, the comparison with your proposed rate, profitability, the rate build-up, and the month-by-month projection. See [Reading pricing results](/modeling/reading-pricing-results/).

## 1. Enter your funding (FTP) curve

A **funds-transfer pricing (FTP) curve** is the rate your treasury charges for funds at each term. The required rate starts from it, so Vintage will not invent one: until you provide a curve, Results shows **Provide your funding (FTP) curve to see results** instead of numbers. Everything else on the screen keeps working.

You can provide the curve two ways:

- **Enter your curve.** A two-column grid of term (months) and rate. When you have no curve yet, it starts with the standard terms (12, 24, 36, 60, 84, and 120 months) and blank rates for you to fill in. **Add point** adds a row, and any row can be removed.
- **Or upload a CSV.** A file with a term column (in months) and a rate column fills the same grid. A header such as `term_months, rate_pct` works best, and **Download sample** gives you a template. Vintage finds the term and rate columns by their headers, or by the shape of the values when the headers do not say. If it cannot find both, it tells you rather than misreading the file.

The grid takes rates in percent. In an uploaded file, rates can be written as percents (`4.5`), decimal fractions (`0.045`), or basis points (`450`; a basis point is a hundredth of a percentage point); Vintage brings them all to the same scale. When a file could be read more than one way, it shows **Check the rate scale we read**, says which reading it chose, and asks you to check the grid. A scale misread by a factor of 100 would make every figure wrong at once, so this is worth a look.

Under the grid, a line states the curve's span (for example, that your curve covers 12 to 120 months). If a row was dropped, duplicated, out of order, or looks implausible for a funding rate (below -5% or above 30%, which usually means a decimal was read as a percent or the reverse), **Check your funding curve** lists what Vintage did about it. A duplicated term keeps the last rate given; an implausible rate is kept and flagged, not changed.

Between the terms you quote, Vintage reads the rate on a straight line between the two nearest points. Outside your curve it holds the nearest quoted rate flat: below your shortest term at that term's rate, and past your longest term at its last rate. [Results says so](/modeling/reading-pricing-results/#when-your-loan-runs-past-your-curve) when your loan runs past your longest term.

## 2. Describe the loan

- **Loan amount.** The box starts empty, showing the cohort's average loan size as placeholder text, labeled for what it is: **Cohort average original amount** when your data reports original amounts, otherwise **Cohort average current balance**. Those are different figures, and on a seasoned book very different ones. While the box is empty, pricing uses that cohort average. Clearing the box returns to it rather than pricing a $0 loan. You can type amounts the way they display, separators and all: `250,000` is two hundred fifty thousand.
- **Term.** Seeded with the cohort's balance-weighted average term, shown as **Cohort average: 60 months** (for example). It stays as you leave it, and it is always a whole number of months.
- **Proposed rate (optional).** The note rate you plan to offer, if you have one in mind. Leave it blank to price at the required rate alone.

When the term you enter differs from the cohort's average, a note beside the term field names both numbers and says what the difference means, which depends on the direction:

- **Longer than the cohort's term:** beyond the cohort's own horizon there is no measured experience, so its loss, default, and prepayment rates are carried forward at their long-run levels.
- **Shorter than the cohort's term:** every age used is measured, but on loans repaying over a longer schedule, which carry more balance at each age than this loan will.

Either way, the note suggests slicing your segment to loans of a similar term.

## 3. Enter costs and fees

Costs raise the required rate; fees lower it.

| Input | Notes |
|---|---|
| **Origination cost** | Pre-filled with a Vintage default of $1,500. |
| **Annual servicing cost** | Pre-filled with a Vintage default of $250 per year. |
| **Upfront fees** | Collected once, at origination. Starts at zero. |
| **Annual recurring fees** | Collected each year. Starts at zero. |

The two pre-filled costs each carry a marker naming the default. On the origination cost it reads **Our default of $1,500, not a figure from your data. Replace it with your own.** A pre-filled number that looks typed would read as yours, and these two drive the required rate. The marker disappears once you type your own figure, even one equal to the default. Switching the field between dollars and percent does not count as replacing it.

Each of these four inputs has a **$ / %** toggle to enter it as dollars or as a percent of the loan amount. Toggling converts the figure so the economics do not change: on a $100,000 loan, a $1,500 origination cost becomes 1.5% when you switch to percent. The toggle needs a loan amount to convert against; without one it is disabled and says **Enter a loan amount to switch between $ and %.**

### Custom costs and fees

**Add cost** and **Add fee** create your own line items, each with a label you type (for example, `Dealer flat`). The label appears in the rate build-up. Each item has two toggles, **$ / %** and **One-time / Yearly**, so it can take four forms: a one-time dollar amount, an annual dollar amount, an annual percent, or a one-time percent. The one-time percent covers charges quoted in basis points, such as a dealer flat.

An annual dollar item is charged as a rate on the outstanding balance, like servicing: it bills the figure you entered in the first year and less each year as the loan pays down.

Converting a line item needs a loan amount, and converting between one-time and yearly also needs the loan's projected life, which in turn needs a rate to project the loan at (your funding curve, or the cohort's own average note rate when it reports one). When a conversion cannot be done, the toggle is disabled and says what to enter, rather than storing the figure in the wrong unit.

## 4. Set the required return

The **Required return** is the profit the loan must earn on top of its costs. Choose how to state it:

- **Target ROA**: a target **return on assets**, the pre-tax return on the loan balance. The box starts at 1%, which its hint notes is typical.
- **Target ROE**: a **Target pre-tax ROE** (return on equity) and a **Capital allocation**: the share of the loan you hold as capital. Capital allocation starts at 9% and the target ROE at 15%. Vintage calculates the equivalent ROA and shows it as **Implied ROA**:

$$
\text{ROA} = \text{capital allocation} \times \text{ROE}
$$

For example, 9% capital at a 15% ROE implies a 1.35% ROA. This is the risk-adjusted return on capital (RAROC) approach.

## Limits on the inputs

Some inputs have hard limits. A figure typed past one is **clamped, and the clamp is shown**: the box changes to the limit, and a short line under the field names it, such as **Capped at 50%, the maximum.** or **Raised to 1 month, the minimum.** The box and every result always show the same number.

| Input | Limit |
|---|---|
| Proposed rate | 0% to 50% |
| Origination cost, annual servicing cost, upfront fees, annual recurring fees (entered as %) | At most 100% of the loan |
| Loan amount | Not negative |
| Term | 1 to 600 months |
| Target ROA | 0% to 20% |
| Capital allocation, target ROE | 0% to 100% |

A figure that could still become a valid one, such as a 0 on its way to a larger term, is left as typed until you leave the field. A figure that arrives past a limit without being typed (for example, a dollar cost larger than the loan switched to a percent) is held to the limit the same way, with the same line.

## Compare the required rate with your proposed rate

The first things Results shows, after any notices and a one-line summary, are the comparison and the rate choice. They are where your proposed rate comes into play.

### The comparison

The comparison always shows the **Required rate**: the note rate at which this loan earns your target. If you entered a proposed rate, it also shows **Your proposed rate** and the gap between them in basis points, signed from the loan's point of view: **25 bps underpriced** when your rate is below the required rate, **25 bps of cushion** when it is above, or **Priced on target**.

### Model this loan at

Directly under the comparison, **Model this loan at** chooses which rate the rest of Results projects the loan at: the required rate or your proposed rate. Typing a proposed rate does not switch it on its own, and Vintage remembers your choice. With no proposed rate entered, the control stays on the required rate and says where to enter one.

Every block below this control carries a badge naming its rate, so you always know which loan you are looking at. See [How Results is laid out](/modeling/reading-pricing-results/#how-results-is-laid-out).

## How your inputs are saved

Your inputs save automatically as you type. They are saved for you personally within your organization and follow you across devices and sessions. The calculations run in your browser, so results update as soon as you change an input.

## What happens next

With a funding curve and a loan amount (or a cohort average to fall back on) in place, Results shows the required rate and the projection behind it. [Reading pricing results](/modeling/reading-pricing-results/) explains each block of Results and every notice that can appear in it.

## Related

- [Reading pricing results](/modeling/reading-pricing-results/)
- [Loan pricing](/concepts/loan-pricing/)
- [Exporting results](/modeling/exporting-results/)
- [What Vintage does not do](/concepts/what-vintage-does-not-do/)
- [Limits](/reference/limits/)