Before the Lot
Car-buying math and state rules: out-the-door prices, quote checks, leases and trade-ins
Should I use this
Quality & Safety
Findings (2)
- LOWin compare_quotes
- LOWin get_method
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"before-the-lot": {
"url": "https://beforethelot.com/mcp"
}
}
}Remote endpoints
https://beforethelot.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (16)
🟢what_can_i_afford(max_payment, apr, term_months, down, trade_offer, ...)
Works out the budget ceiling from a monthly payment: the most that can be financed, the highest out-the-door price after the trade-in tax credit, that ceiling as dealers quote it (before the trade-in credit), and the vehicle price it leaves after the state's tax and typical fees. With a fair price from research, it also gives an opening offer and a walk line. Numbers only; nothing is stored.
Input Schema
{
"type": "object",
"properties": {
"max_payment": {
"type": "number",
"minimum": 0,
"maximum": 20000,
"description": "The highest monthly payment the person is comfortable with"
},
"apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Loan APR in percent (6.49 means 6.49%); a pre-approval rate if they have one"
},
"term_months": {
"type": "integer",
"minimum": 6,
"maximum": 120,
"description": "Loan term in months"
},
"down": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Cash down payment"
},
"trade_offer": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Best written trade-in offer, if any"
},
"trade_payoff": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "What is still owed on the trade-in"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"tax_rate": {
"description": "Combined sales tax rate as a decimal (0.08 for 8%); leave out to use the state's rate",
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"county": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "County from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "City or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP"
},
"doc_fee": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Expected doc fee; leave out to assume the state's cap, or a typical $450 where there is none"
},
"title_reg": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Expected title and registration"
},
"fair_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "A fair vehicle price from research, before tax and fees"
},
"invoice": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Dealer invoice, for a new car, if known"
},
"condition": {
"default": "new",
"type": "string",
"enum": [
"new",
"used"
]
}
},
"required": [
"max_payment",
"apr",
"term_months",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢out_the_door(price, rebates, doc_fee, add_ons, title_reg, ...)
Itemizes an out-the-door estimate for a vehicle price: rebates, doc fee, add-ons, the state's sales tax (with its rules on rebates and caps), title and registration. Optionally adds a trade-in (and the tax it saves where the state credits it), a down payment and a loan for the payment. Compares the doc fee with the state's cap and the total with a walk line.
Input Schema
{
"type": "object",
"properties": {
"price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Vehicle selling price before rebates, fees and tax"
},
"rebates": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Maker rebates taken off at signing"
},
"doc_fee": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee; leave out to assume the state's cap, or a typical $450 where there is none"
},
"add_ons": {
"default": [],
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "What the dealer calls the add-on"
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "Its price"
}
},
"required": [
"name",
"amount"
]
}
},
"title_reg": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Title and registration; leave out for a typical $250"
},
"other_fees": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 50000,
"description": "Any other fees"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"tax_rate": {
"description": "Combined sales tax rate as a decimal; leave out to use the state's rate",
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"county": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "County from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "City or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP"
},
"condition": {
"default": "new",
"description": "New or used: a state's tax can apply to new cars only (Oregon)",
"type": "string",
"enum": [
"new",
"used"
]
},
"trade_offer": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Best written trade-in offer"
},
"trade_payoff": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "What is still owed on the trade-in"
},
"down": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Cash down payment"
},
"apr": {
"description": "Loan APR in percent, for the payment",
"type": "number",
"minimum": 0,
"maximum": 40
},
"term_months": {
"description": "Loan term in months, for the payment",
"type": "integer",
"minimum": 6,
"maximum": 120
},
"walk_line": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The walk line, out the door"
},
"vehicle_weight_lbs": {
"description": "Washington DC only: the vehicle's unladen weight in pounds (DC's excise rate goes by weight and city MPG)",
"anyOf": [
{
"type": "integer",
"minimum": 500,
"maximum": 20000
},
{
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
}
]
},
"city_mpg": {
"description": "Washington DC only: the vehicle's EPA city MPG, with its weight",
"anyOf": [
{
"type": "number",
"minimum": 1,
"maximum": 200
},
{
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
}
]
},
"electric": {
"description": "Washington DC only: a battery-electric vehicle (its own, lower column)",
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": [
"true",
"false"
]
}
]
},
"buyer_in_chicago": {
"description": "Illinois only: the buyer's address is in the City of Chicago (the city and county given are the dealer's)",
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": [
"true",
"false"
]
}
]
},
"buyer_in_cook_county": {
"description": "Illinois only: the buyer's address is in Cook County",
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": [
"true",
"false"
]
}
]
}
},
"required": [
"price",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢check_quote(text, lines, state, tax_rate, walk_line, ...)
Reads a dealer's out-the-door quote, pasted as text (up to 8 KB) or given as line items, and checks it line by line: the out-the-door total, the doc fee against the state's cap (and capped service fees such as Ohio's $50 convenience fee), the tax line against the state's rate, finance-office add-ons with typical prices, the trade allowance against written trade-in offers, the trade equity and amount financed, and the walk line. Lines with an email address or phone number are removed before reading and never returned. Nothing is stored.
Input Schema
{
"type": "object",
"properties": {
"text": {
"description": "The quote as pasted (an email or a buyer's order). Leave out to send lines instead.",
"type": "string",
"maxLength": 8192
},
"lines": {
"description": "The quote as line items, instead of text",
"type": "object",
"properties": {
"dealer": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "The dealership's name (a business, never a person)"
},
"vehicle_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Selling price before rebates, fees and tax"
},
"rebates": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Rebates or discounts shown below the price"
},
"doc_fee": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee"
},
"add_ons": {
"default": [],
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "What the dealer calls the add-on"
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "Its price"
}
},
"required": [
"name",
"amount"
]
}
},
"sales_tax": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 200000,
"description": "The quote's sales tax line"
},
"title_reg": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Title, registration and other government fees"
},
"other_fees": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 50000,
"description": "Any other fee"
}
},
"required": [
"vehicle_price"
]
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"tax_rate": {
"description": "Combined sales tax rate as a decimal; leave out to use the state's rate",
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"walk_line": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The walk line, out the door"
},
"trade_allowance": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The trade-in allowance on the quote, when sending lines (read from text otherwise)"
},
"best_trade_offer": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The best written trade-in offer still open (CarMax, Carvana...), to compare with the allowance"
},
"trade_offers": {
"description": "Written trade-in offers, to compare the best open one with the allowance",
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "Who made the offer: CarMax, Carvana, a dealer. Never a person."
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The offer"
},
"expires": {
"description": "Its last day, yyyy-mm-dd",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"source",
"amount"
]
}
}
},
"required": [
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢compare_quotes(quotes, walk_line, state)
Ranks two to ten itemized dealer quotes by out-the-door price, with each one's gap to the lowest and to the walk line, and (with a state) each doc fee against the state's cap.
Input Schema
{
"type": "object",
"properties": {
"quotes": {
"minItems": 2,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"dealer": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "The dealership's name (a business, never a person)"
},
"vehicle_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Selling price before rebates, fees and tax"
},
"rebates": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Rebates or discounts shown below the price"
},
"doc_fee": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee"
},
"add_ons": {
"default": [],
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "What the dealer calls the add-on"
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "Its price"
}
},
"required": [
"name",
"amount"
]
}
},
"sales_tax": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 200000,
"description": "The quote's sales tax line"
},
"title_reg": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Title, registration and other government fees"
},
"other_fees": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 50000,
"description": "Any other fee"
}
},
"required": [
"vehicle_price"
]
}
},
"walk_line": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The walk line, out the door"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
}
},
"required": [
"quotes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢rebate_vs_apr(rebate, own_apr, promo_apr, term_months, promo_term_months, ...)
Compares a maker's cash rebate taken with the person's own loan against the maker's special APR (with any cash that combines with it): each side's payment, interest and total, the difference, the own-loan rate where the two cost the same, and the sales tax a rebate saves in states that tax the price after it. Give the amount financed before the rebate, or a vehicle price to work it out.
Input Schema
{
"type": "object",
"properties": {
"rebate": {
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "Cash rebate available with your own loan or cash"
},
"own_apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Your own loan APR in percent (a pre-approval)"
},
"promo_apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "The maker's special APR in percent"
},
"term_months": {
"type": "integer",
"minimum": 6,
"maximum": 120,
"description": "Loan term in months"
},
"promo_term_months": {
"description": "The special APR's longest term, if shorter",
"type": "integer",
"minimum": 6,
"maximum": 120
},
"promo_cash": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "Cash that combines with the special APR"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"tax_rate": {
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"county": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "County from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "City or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP"
},
"amount_financed_before_rebate": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Out-the-door price before the rebate, less down payment and trade equity"
},
"vehicle_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Vehicle price, to work out the amount financed instead"
},
"doc_fee": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee; leave out to assume the state's cap, or a typical $450 where there is none"
},
"title_reg": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Title and registration"
},
"down": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Cash down payment"
},
"trade_offer": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Trade-in offer"
},
"trade_payoff": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Owed on the trade-in"
}
},
"required": [
"rebate",
"own_apr",
"promo_apr",
"term_months",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢loan_payment(amount, apr, term_months)
The monthly payment, total interest and total paid on a car loan, with what a term over 60 months adds in interest compared with 60.
Input Schema
{
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 2000000,
"description": "Amount financed"
},
"apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "APR in percent"
},
"term_months": {
"type": "integer",
"minimum": 6,
"maximum": 120,
"description": "Term in months"
}
},
"required": [
"amount",
"apr",
"term_months"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢lease_check(msrp, selling_price, residual_percent, money_factor, lease_apr, ...)
Works a lease quote from MSRP, selling price, residual and money factor (or the lease's APR): the depreciation and rent charges, the payment with tax (and a state lease tax on top where there is one, such as Pennsylvania's 3%; Alabama's 1.5% and West Virginia's 5% lease-payment rates in place of their sales rates; in states that tax a lease once at the start, such as Texas and Ohio, the payment carries no tax and the result says so), the money factor as an APR, and the total cost. With a loan APR and term, it also compares leasing with buying the same car over the lease's months (on a labelled depreciation assumption).
Input Schema
{
"type": "object",
"properties": {
"msrp": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "MSRP (sticker price)"
},
"selling_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The negotiated price the lease is built on"
},
"residual_percent": {
"type": "number",
"minimum": 5,
"maximum": 95,
"description": "Residual as a percent of MSRP (58 for 58%)"
},
"money_factor": {
"description": "Money factor, e.g. 0.0025",
"type": "number",
"minimum": 0,
"maximum": 0.01
},
"lease_apr": {
"description": "The lease's rate as an APR, instead of the money factor",
"type": "number",
"minimum": 0,
"maximum": 40
},
"term_months": {
"type": "integer",
"minimum": 6,
"maximum": 60,
"description": "Lease term in months"
},
"due_at_signing": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Cash down, lease rebates and trade equity that lower the price"
},
"fees": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 20000,
"description": "Acquisition and other fees rolled into the lease"
},
"disposition_fee": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Turn-in fee at the end"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"tax_rate": {
"description": "Combined sales tax rate as a decimal (state and local); leave out to use the state's rate. A state lease tax (Pennsylvania's 3%) is added on top either way; Alabama's and West Virginia's own lease-payment rates replace their state sales rate; where the state taxes a lease once at the start (Texas, Ohio), this is that tax's rate and the payments carry none",
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"county": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "County from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "City or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP"
},
"buy_apr": {
"description": "A loan APR, to compare with buying",
"type": "number",
"minimum": 0,
"maximum": 40
},
"buy_term_months": {
"description": "Loan term, to compare with buying",
"type": "integer",
"minimum": 6,
"maximum": 120
},
"buy_down": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Down payment when buying"
},
"doc_fee": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee when buying, for the estimated out-the-door; leave out to assume the state's cap, or a typical $450 where there is none"
},
"buy_out_the_door": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "Out-the-door price when buying; leave out to estimate it"
}
},
"required": [
"msrp",
"selling_price",
"residual_percent",
"term_months",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢refinance_check(balance, current_apr, current_payment, new_apr, new_term_months, ...)
Compares a car loan as it stands with a new loan at a quoted rate, by default over the same months left so a lower payment cannot hide a longer loan, with any fees counted: the new payment, the monthly difference and the total interest saved or added.
Input Schema
{
"type": "object",
"properties": {
"balance": {
"type": "number",
"minimum": 0,
"maximum": 2000000,
"description": "What is owed today"
},
"current_apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Current APR in percent"
},
"current_payment": {
"type": "number",
"minimum": 0,
"maximum": 50000,
"description": "Current monthly payment"
},
"new_apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "The APR a lender quoted for the new loan"
},
"new_term_months": {
"description": "New term; leave out to keep the months left",
"type": "integer",
"minimum": 6,
"maximum": 120
},
"fees": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Fees for the new loan"
}
},
"required": [
"balance",
"current_apr",
"current_payment",
"new_apr"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trade_in_position(offers, payoff, state, vehicle_price, doc_fee, ...)
From written trade-in offers and the payoff: the best offer still open (the floor a dealer's trade number is compared with), the equity or negative equity, and, with a state and vehicle price, the sales tax the trade saves where the state credits it.
Input Schema
{
"type": "object",
"properties": {
"offers": {
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "Who made the offer: CarMax, Carvana, a dealer. Never a person."
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The offer"
},
"expires": {
"description": "Its last day, yyyy-mm-dd",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"source",
"amount"
]
}
},
"payoff": {
"default": 0,
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "What is still owed on the car"
},
"state": {
"type": "string",
"enum": [
"AK",
"AL",
"AR",
"AZ",
"CA",
"CO",
"CT",
"DC",
"DE",
"FL",
"GA",
"HI",
"IA",
"ID",
"IL",
"IN",
"KS",
"KY",
"LA",
"MA",
"MD",
"ME",
"MI",
"MN",
"MO",
"MS",
"MT",
"NC",
"ND",
"NE",
"NH",
"NJ",
"NM",
"NV",
"NY",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VA",
"VT",
"WA",
"WI",
"WV",
"WY"
],
"description": "Two-letter state code (DC included), like PA"
},
"vehicle_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "The new vehicle price, for the tax the trade saves"
},
"doc_fee": {
"type": "number",
"minimum": 0,
"maximum": 5000,
"description": "Doc fee; leave out to assume the state's cap, or a typical $450 where there is none"
},
"tax_rate": {
"description": "Combined sales tax rate as a decimal, local tax included (0.07 for 7%); leave out to use the state's rate",
"type": "number",
"minimum": 0,
"maximum": 0.25
},
"county": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "County from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP"
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"pattern": "^[^\\r\\n]*$",
"description": "City or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP"
}
},
"required": [
"offers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢payoff_plan(balance, apr, months_left, payment, extra_monthly, ...)
A payoff plan for a car loan, for paying it off early with an extra payment each month: the months and total interest at the regular payment, and with an extra amount toward principal each month (optionally for only the first so many months, or skipping some), with the months and interest the extra saves and the payoff month each way. Give the balance, the APR, and the months left or the regular payment. Lenders differ in how they apply extra payments, and some charge a prepayment penalty.
Input Schema
{
"type": "object",
"properties": {
"balance": {
"type": "number",
"minimum": 0,
"maximum": 2000000,
"description": "What is owed today"
},
"apr": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "The loan APR in percent"
},
"months_left": {
"description": "Payments left at the regular payment; or give payment instead",
"type": "integer",
"minimum": 1,
"maximum": 120
},
"payment": {
"description": "The regular monthly payment; or give months_left instead",
"type": "number",
"minimum": 0,
"maximum": 50000
},
"extra_monthly": {
"type": "number",
"minimum": 0,
"maximum": 50000,
"description": "Extra paid toward principal each month"
},
"extra_for_months": {
"description": "Pay the extra for only the first this-many months; leave out for every month",
"type": "integer",
"minimum": 0,
"maximum": 1200
},
"skip_months": {
"default": [],
"description": "Months (1 is the next payment) with nothing extra paid",
"maxItems": 120,
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 1200
}
}
},
"required": [
"balance",
"apr",
"extra_monthly"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_method(stage)
The Before the Lot method: an overview and its seven stages (what to collect, what each produces, which guides, tools and email templates apply, and when the stage is done). Pass a stage id for one stage.
Input Schema
{
"type": "object",
"properties": {
"stage": {
"description": "One stage id; leave out for the whole method",
"type": "string",
"enum": [
"see-the-four-square",
"lock-three-squares",
"price-as-out-the-door",
"set-your-numbers",
"dealers-compete",
"at-the-desk",
"after-the-lot"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢state_rules(state)
A state's rules on dealer doc fees, sales tax (state rate, local add-on range, cap), trade-in tax credit, how a maker's rebate is taxed, and cancellation rights where on file, each with its source, as-of date and confidence, plus the link to the state's page.
Input Schema
{
"type": "object",
"properties": {
"state": {
"description": "Two-letter state code, like PA",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
}
},
"required": [
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢dealer_email(kind, details)
Fills one of the six Before the Lot email templates (request a quote, make an offer, a competing quote, confirm the deal, decline, tell a lender) with the details given and returns the subject and body. Details are numbers and short labels; contact details are refused.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"request-quote",
"make-offer",
"competing-quote",
"confirm-deal",
"decline",
"lender-deal"
],
"description": "Which email"
},
"details": {
"default": {},
"type": "object",
"properties": {
"car": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "The car, like \"2024 Honda CR-V EX\""
},
"stock_or_vin": {
"type": "string",
"maxLength": 40
},
"dealer": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Dealer name"
},
"lender": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Lender name"
},
"out_the_door_price": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"offer": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"walk_line": {
"description": "The walk line, out the door. The templates never state it; an offer above it is not drafted",
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"down_payment": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"trade_equity": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"amount_to_finance": {
"type": "number",
"minimum": 0,
"maximum": 1000000
},
"apr_percent": {
"type": "number",
"minimum": 0,
"maximum": 40
},
"term_months": {
"type": "integer",
"minimum": 1,
"maximum": 120
},
"decide_by": {
"description": "A date or \"Friday\"",
"type": "string",
"maxLength": 40
},
"pre_approved": {
"type": "boolean"
},
"used_car": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢offers_page(make, model)
Where a maker lists its own current offers (and a model's own page where one can be built), with whether the maker lists national offers at all.
Input Schema
{
"type": "object",
"properties": {
"make": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Make, like Toyota"
},
"model": {
"description": "Model, like Corolla Cross",
"type": "string",
"maxLength": 40
}
},
"required": [
"make"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢desk_script(situation)
The Before the Lot line for a moment at the desk. Pass a script id (monthly-payment, trade-first, down-payment, credit-check, numbers-changed, preinstalled-add-ons, initial-worksheet, decide-today, beat-my-rate, fi-product, only-a-month, paint-or-markup, below-invoice, trade-below-offer, leaving) or a short description of the situation.
Input Schema
{
"type": "object",
"properties": {
"situation": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "A script id or a short description, like \"they keep asking my monthly payment\""
}
},
"required": [
"situation"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plan_link(plan)
Builds a Before the Lot planner link that opens with the numbers given already filled in. The plan travels in the link itself, so nothing is stored. Numbers and short labels only; names, phone numbers and emails are refused.
Input Schema
{
"type": "object",
"properties": {
"plan": {
"type": "object",
"properties": {
"car": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"minimum": 1980,
"maximum": 2100
},
"make": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Make"
},
"model": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Model"
},
"trim": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Trim"
},
"condition": {
"type": "string",
"enum": [
"new",
"used"
]
},
"targetPrice": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"budget": {
"type": "object",
"properties": {
"maxPayment": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"termMonths": {
"type": "integer",
"minimum": 1,
"maximum": 120
}
},
"additionalProperties": false
},
"trade": {
"type": "object",
"properties": {
"hasTrade": {
"type": [
"boolean",
"null"
]
},
"estimate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"payoff": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"offers": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Where the offer came from"
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"expires": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"down": {
"type": "object",
"properties": {
"amount": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"financing": {
"type": "object",
"properties": {
"lender": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Lender"
},
"aprPercent": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 40
},
{
"type": "null"
}
]
},
"maxAmount": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"termMonths": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 120
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"price": {
"type": "object",
"properties": {
"state": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"taxRate": {
"type": "number",
"minimum": 0,
"maximum": 0.2
},
"fairPrice": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"walkLine": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"quotes": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"dealer": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Dealer"
},
"vehiclePrice": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"rebates": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"docFee": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"addOns": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Add-on"
},
"amount": {
"type": "number",
"minimum": 0,
"maximum": 10000000
}
},
"additionalProperties": false
}
},
"salesTax": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"titleReg": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"otherFees": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"receivedOn": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"description": "The parts of the plan to fill in"
}
},
"required": [
"plan"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence