Skip to main content
Pylon’s pricing engine fundamentally differs from traditional Products & Pricing Engines (PPE) and Loan Origination Systems (LOS). While traditional systems handle one loan structure at a time, Pylon’s programmatic structuring evaluates thousands of loan structure permutations simultaneously to find the optimal solution for each borrower.

The traditional approach

In traditional PPE and LOS systems, the workflow typically looks like this:
1

Create a structure

Manually create a loan structure (e.g., 3% down, 20% down to avoid PMI).
2

Price the loan

Submit the structure to the pricing engine to get rates and costs.
3

Check guidelines

Put the pricing back into the loan file and check if DTI rules are met.
4

Restructure if needed

If guidelines are breached, manually restructure the loan and repeat the process.
This iterative process is time-consuming, error-prone, and often results in suboptimal loan structures based on “tribal knowledge” rather than data-driven optimization.

Pylon’s programmatic approach

Pylon’s pricing engine uses programmatic structuring that:

Evaluates thousands of structures

Simultaneously tests thousands of loan structure permutations to find optimal solutions.

Encodes all guidelines

All guidelines and rates are encoded in the software, ensuring comprehensive evaluation.

Optimizes automatically

Finds the most optimal structure based on your objective (minimize out-of-pocket, monthly payment, etc.).

Avoids manual iteration

No need to manually restructure and re-price. The system finds the best option automatically.

Why traditional structures are suboptimal

The mortgage industry has developed “tribal knowledge” around traditional down payment structures:
  • 3% down: Common minimum for conventional loans
  • 20% down: Traditional amount to avoid PMI (Private Mortgage Insurance)
However, these traditional structures often ignore critical factors:
  • Pricing implications: Different LTV ratios have different pricing impacts
  • LLPA cliffs: Loan-Level Price Adjustments (LLPAs) can create significant cost jumps at certain thresholds
  • Guideline eligibility: Some structures may not be optimal even if they meet minimum guidelines

Scenario 1 - LLPA cliff causes pricing ineligibility due to cash-to-close constraints

Initial structure

  • Purchase price: $1,250,000
  • Down payment: $250,000 (20%)
  • Loan amount: $1,000,000
  • LTV: 80.00%
  • Credit score: 705
  • Occupancy: Primary residence
  • Program: Conventional fixed-rate

Borrower cash-to-close constraints

The borrower has explicit liquidity limits:
  • Maximum total cash to close: $265,000
  • Planned down payment: $250,000
  • Available funds for fees, points, and reserves: $15,000 The borrower cannot increase total cash to close beyond this amount without liquidating assets or delaying the transaction.

Pricing impact

At exactly 80.00% LTV, the loan triggers multiple LLPAs:
LLPA sourceAdjustment
LTV (80%)0.75%
Credit score ≤ 7200.375%
Loan size0.25%
Total LLPA1.375%
Total LLPA cost: $13,750

Why this structure fails

To execute this loan at par pricing, the borrower would need to pay:
  • LLPAs: $13,750
  • Base closing costs (excluding down payment): ~$14,000
  • LLPA charges: $13,750
  • Total non-down-payment cash required: ~$27,750
The loan meets guideline requirements but is not executable due to cash-to-close constraints. This exceeds the borrower’s available $15,000 by $12,750, rendering the structure non-executable.

Using optimized pricing

The magic behind optimized structures

Our optimizer deterministically evaluates mortgage structures given a defined set of constraints and objectives. It treats all borrower dollars as fungible across uses, including down payment, points, closing costs, prepaid items, reserves, and pricing adjustments, and reallocates them to identify the optimal executable structure. Given:
  • Hard constraints (program rules, guideline requirements, cash-to-close limits)
  • A borrower-defined out-of-pocket maximum
  • Optimization objectives (for example, minimizing PITIA or cash to close)
The optimizer produces a loan structure that:
1

Satisfy all constraints

Enforce cash limits, reserve requirements, eligibility rules, and pricing bounds as hard constraints.
2

Optimize for borrower objectives

Choose a goal (e.g. minimize out-of-pocket, minimize monthly PITIA, or minimize down payment). The optimizer selects the best structure for that objective within the feasible space.
3

Guarantee guideline compliance

Produce a structure that definitively passes guidelines with no manual overrides, exceptions, or guesswork.

Borrower preferences and pricing constraints

The optimizer only considers structures that stay within hard constraints. Those constraints come from borrower preferences (stored on the loan) or from pricing constraints you pass when calling pricing (e.g. when calculating the most optimal structure). If you don’t pass pricing constraints, the system uses the loan’s borrower preferences. Common constraints include:
ConstraintPurpose
maxOutOfPocketTotal cash the borrower can bring to closing (down payment + fees, points, prepaids). The optimizer will not suggest structures that exceed this.
maxLtvMaximum LTV. Keeps the loan within the borrower’s or program’s comfort zone (e.g. cap at 90% LTV). With MIN_DOWN_PAYMENT, yields fixed structures (e.g. 90% LTV).
closingCostsCap on closing costs (excluding down payment).
monthlyPaymentCap on PITIA. Ensures the payment stays within the borrower’s budget.
maxDiscountPointsLimits how many points the borrower is willing to buy.
downPaymentAmountFixed down payment when the borrower has already decided the amount.
Borrower preferences are set per loan (e.g. via the loan’s borrower preferences). When you run pricing or optimal-structure calculations, you can optionally pass pricing constraints to override or narrow those bounds for that specific run. The optimizer then finds the best structure that satisfies both program/guideline rules and these constraints.

Optimization objectives

Choose the objective that aligns with your borrower’s goals:
ObjectiveUse CaseDescription
MIN_OUT_OF_POCKETBorrower has limited cashMinimizes total cash required at closing
MIN_PITIABorrower focused on monthly paymentMinimizes monthly PITIA (principal, interest, taxes, insurance, and association fees)
MIN_DOWN_PAYMENTBorrower wants to preserve cashMiddle ground between MIN_OUT_OF_POCKET and MIN_PITIA: buys down the rate as much as possible given available cash to close but does not exhaust available assets. With maxLTV, yields fixed structures (e.g. 90% LTV).

Pricing response types

Pricing responses use the same type system whether you call the full rate sheet or the most-optimal-structure flow. Use this reference when handling products, structures, and ineligibility or error details.

Product-level results

Each product is either:
TypeDescription
EligibleProductPricingProduct is eligible; it has a rateStack array of structures (each structure is eligible, ineligible, or an error).
IneligibleProductPricingProduct is not available as a whole; it has details (ineligibility reasons) and no rateStack.

Structure-level results (StructuringResult union)

Each structure in a rate stack (or in most-optimal-structure’s productBreakdown) is one of:
TypeDescription
EligibleProductStructureStructure meets all constraints and guidelines; full pricing fields (rate, APR, PITIA, closing costs, etc.).
IneligibleProductStructureStructure fails one or more rules; same pricing fields plus ineligibilityDetails (violation types below).
StructuringErrorOptimizer could not find a feasible structure; product/rate context plus unsatisfiabilityDetails (e.g. GuidelineViolation, OptimizerUnsatisfied).

Structure ineligibility details (IneligibleProductStructure.ineligibilityDetails)

Each item is one of:
TypeDescription
DebtToIncomeViolationDTI would exceed the allowed limit.
LoanToValueViolationLTV is outside the allowed range.
QmFeeCapViolationWould violate the Qualified Mortgage (QM) fee cap.
ReservesNotMetViolationDoes not meet reserves requirements.

Structuring error details (StructuringError.unsatisfiabilityDetails)

TypeDescription
GuidelineViolationA guideline was violated in a way that’s represented as a general violation rather than a specific DTI/LTV/reserves/QM type.
OptimizerUnsatisfiedThe optimizer could not satisfy the constraints (e.g., the problem is infeasible).

Best practices

  1. Set appropriate objectives: Choose the optimization objective that matches borrower priorities.
  2. Trust the optimization: The system evaluates thousands of structures. Trust that it finds optimal solutions.
  3. Explain the value: Help borrowers understand that optimized structures may differ from traditional percentages (3%, 20%) but provide better terms.

Pricing optimization guides

Choose the right approach for your use case:

Full rate sheet optimizations

Show the full rate stack across all products—eligible structures and ineligible products/structures with their reasons.

Most optimal structure

Get the single best structure for your objective (e.g. MIN_PITIA). Optional Product Breakdown shows the best structure per product.

Fixed loan structures

Get a fixed structure (e.g. 90% LTV) by using MIN_DOWN_PAYMENT with maxLTV.