# Revvy > Revvy reads the records a trades business already keeps and shows where revenue is slipping away, with every estimate given as a range and backed by its working. Website: https://revvyrocket.com/ Language: en Last Updated: 2026-10-08 --- # Detailed Content ## The Open-Quote Call List - **URL:** https://revvyrocket.com/resources/open-quote-call-list/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Format:** Interactive worksheet - **In ten minutes:** A count and total of your stale open quotes, a one-time figure at a rate you chose, and a printed call sheet to fill in, highest value first. - **PDF:** https://revvyrocket.com/downloads/open-quote-call-list.pdf Count the quotes you presented 14 or more days ago that still have no decision, see which nobody chased, and print a call sheet. A quote nobody answered and nobody chased is still open. The truck has already rolled and the diagnosis is done; what is left is a phone call. This worksheet helps you count the open quotes old enough to call and the ones nobody has chased, works out a one-time figure on them at a rate you choose, and prints a call sheet to work from. ### What you get About ten minutes with one export gets you: - A count of your stale open quotes: still open, and presented 14 or more days ago. - What they add up to, and the average quote among them. - How many of them nobody has chased, read from the follow-up dates you already keep. - A one-time figure at a recovery rate you choose, as a range, with the working printed beside it. - A call sheet to print and fill in by hand. It asks for the quote number and never for the customer's name. There is nothing to install and no sign-up. The worksheet does its sums in your browser. Nothing you type is saved or sent, and it clears when you reload the page. ### Before you start: one export Run your field-service software's estimate report, or open whatever list your office keeps of the quotes it has given. For every quote still open you need three things: - The date the customer was given the quote. - The amount. - The last date anyone followed it up, if anyone did. A spreadsheet works, and so do a printed list and a pen. If your system has no follow-up date, do Steps 1, 2 and 4 today and start recording follow-ups now (see [Write this down from now on](#write-it-down)). Not sure what your system keeps? The [Records Checklist](https://revvyrocket.com/resources/records-checklist/) goes through the estimate fields one by one. If you run several locations, work through each location's quotes on its own, so each office ends up with its own call sheet. ### Step 1: find the stale quotes A stale quote is still open and was presented at least 14 days before the date of your export. Quotes already sold, lost or expired stay out, and so do the newer open ones. The newer ones are left out on purpose. A quote presented on Tuesday is still being decided, and counting it as unworked reads a busy week as lost work. Two weeks gives an ordinary decision time to happen first. The 14 days are Revvy's default. Every default on this page (14 days, and the 15% recovery rate in Step 4) is Revvy's judgement, not an industry figure, and you can change any of them. **A stale quote:** `status is open, and presented date <= export date - 14 days` The worksheet below works out the cut-off date from the date of your export. ### Step 2: count them and add them up Count the stale quotes and add up their amounts. The worksheet works out the average from those two numbers: **Average stale quote:** `total value ÷ number of stale quotes` Then sort the list: largest amount first and, where amounts tie, the oldest quote first. That order is your call sheet. **Note.** Fewer than 5?. Under 5 stale quotes the worksheet puts no figure on them, because Revvy does not: below five, a figure is mostly noise. Work the list anyway. Every quote on it can still be called. ### Step 3: mark the ones nobody chased Look at the follow-up date on each stale quote. A blank one means nobody has recorded a second contact. Revvy reads it the same way: a blank follow-up date on an open quote is the signal its follow-up check looks for. Count those quotes and add up their amounts. They are already among the stale quotes you counted in Step 2. The split shows where to look. If most stale quotes have a follow-up and still no decision, the chasing is happening and the quotes are not closing. If most have none, nobody has worked them yet. ### Step 4: put a figure on it, with your own rate The worksheet multiplies your stale quotes by their average value and by a recovery rate: the share you expect to close after a deliberate second call. It starts at 15%, Revvy's default. Use your own rate if you have one. Revvy set that default low on purpose. Open quotes are the cheapest finding it produces and the easiest one to oversell. *(An interactive worksheet sits here on the page. It runs in the browser on the reader's own numbers.)* How to read the result: - The figure is one-time. These quotes exist today and do not come back every year, so the worksheet never scales them to a year. - It is revenue, not profit. - The range is Revvy's band around the mid-point. Its width depends on how many quotes you counted, not on the rate you chose: ±45% under 30 stale quotes, ±30% from 30, ±20% from 60. - The quotes nobody chased are part of the figure, not extra. Do not add the two. - The mid-point is what your inputs multiply to. It is not a forecast of what the calls will bring in. ### Step 5: work the call sheet Fill in one row of the call sheet for each stale quote, in the order from Step 2. The sheet sits at the foot of the worksheet above and prints with 25 rows. *What goes in each column of the call sheet* | Column | What to write | | --- | --- | | Quote no. | The number from your system. The sheet never asks for the customer's name, so it can sit on a desk. | | Presented | The date the customer was given the quote. | | Amount | The quoted amount. | | Last contact | The last follow-up date, or blank if there was none. | | Next step | What you plan to offer on the call, or the date to try again. | | Outcome | Sold, lost, still deciding or no answer, with the date. | Put the date of every call into your system as well as onto the sheet. That date is what Step 3 reads next time. ### A reason-led second call Have a reason for the call before you dial. An outline to adapt to your trade and your own words: 1. What has changed since the visit, if anything has: the season, the schedule, the parts. 2. What is still open: the problem the quote was for, and the options you gave. 3. A clear next step: a start date, a smaller option, or a time to call back. 4. Write down the outcome, even when it is "no answer". Nothing here says how often a second call works, and the 15% in Step 4 is a judgement. Your outcome column can measure it for your own business. Keep it for a month, work out the share of called quotes that sold, and use that as your rate next time. ### Write this down from now on Record the date of every follow-up against the quote, in your system's follow-up field if it has one. With that one date on file, next month's count is a filter on three columns rather than a hunt through notes: still open, presented before the cut-off, follow-up blank. Keep the open quotes in your records, too. Closing them out to tidy the list throws away the list this worksheet works from. These are the same columns Revvy reads from an estimates file: the amount, the status, the presented date and the last follow-up date. ### The same check in the demo **Demo.** Contoso Plumbing & Drain. Contoso Plumbing & Drain is one of Revvy's demo businesses. Its open quotes still sitting unanswered add $47K–$71K, one-time, to Contoso's total. Most of Contoso's open quotes have no follow-up on record. In Revvy, the check opens to its working: the formula, the stale quotes it counted, their average value, the recovery rate and the range. [Open Contoso's action plan in the demo](https://app.revvyrocket.com/business/biz_contoso/opportunities). ### What Revvy adds - It runs both checks on every analysis, from an estimates file. CSV import works today; ServiceTitan and Housecall Pro connections are planned. - It counts the quotes nobody chased once, inside the open-quote figure, and shows their share on a card of its own. - It gives each figure a confidence and a low, mid-point and high, and every figure opens to its working. - It keeps one-time figures apart from yearly ones, so a pile of quotes is never added to a year. - It also measures your close rate on decided quotes, sold and lost only, which this worksheet does not. [Why open quotes stay out of a close rate](https://revvyrocket.com/blog/close-rate-decided-quotes/). See: [The Booking-Rate Check](https://revvyrocket.com/resources/booking-rate-check/) --- ## The Booking-Rate Check - **URL:** https://revvyrocket.com/resources/booking-rate-check/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Format:** Worksheet and checklist - **In ten minutes:** One measured booking rate, a marked-up intake checklist, and a scenario in the calculator. - **PDF:** https://revvyrocket.com/downloads/booking-rate-check.pdf Measure the share of your leads that became booked jobs without the lead-age trap, walk an intake checklist, then try a target in the calculator. Your booking rate is the share of your leads that became booked jobs. It is easy to get wrong in both directions. Count last week's leads and it reads too low; count only the work that booked and it reads 100%. This worksheet measures yours from one export, with the same rules Revvy's engine uses: the 14-day lead-age floor and the 20-lead minimum. Then it walks you through where leads go missing at intake, and sends you to the calculator to try a target. ### What you get - Your booking rate, over the leads old enough to count, with the sum shown beside it. - Your leads a month, as an average, ready to type into the calculator. - An intake checklist, marked yes, no or unknown, to hand to whoever answers your phone. - A scenario in the Opportunity Score calculator, run on your own numbers. There is no sign-up and nothing to install. The worksheet does its sums in your browser, and nothing you type is saved or sent. ### The lead-age trap A lead that came in two days ago may not have been called back yet. Count it as never booked and a busy last week reads as a booking problem. So leave out every lead newer than 14 days, booked and unbooked alike. Leaving out only the unbooked ones would push the rate up instead. Fourteen days is Revvy's default. Every default on this page (14 days, the 75% target and the 90% completion rate) is Revvy's judgement, not an industry figure, and you can change any of them. The export can trap you too. A file of booked work alone shows a 100% booking rate and tells you nothing, so you need every enquiry, booked or not. ### Step 1: pull 90 days of leads Export every lead from the last 90 days, whatever its source, including the ones that never booked. Your field-service software's lead or booking report is the place to start. If leads live in a call log or a spreadsheet, use that. Each lead needs the date it came in and whether it booked: a booked status or a booked date. A source on each lead is worth having as well. It does not change the rate, but it lets you work out the rate for each source later. If your system keeps only the work that booked, you cannot measure a rate today. Mark "Leads that do not book stay in your records" No on the checklist in Step 3, start a lead log now (date, source, booked yes or no), and come back when 20 logged leads are at least 14 days old. If you run several locations, do each one on its own. A combined rate can hide a location that books far fewer of its leads than the others. ### Step 2: count the leads old enough to count Count the leads created between the first day of your 90 days and the cut-off 14 days before the export, both days included. Enter the date of your export below and the worksheet gives you both dates. That is 76 days of leads. Then count how many of those leads became booked jobs, and enter both numbers. *(An interactive worksheet sits here on the page. It runs in the browser on the reader's own numbers.)* How to read the result: - Under 20 leads there is no rate. Revvy needs at least 20 leads old enough to count before it states one. - Leads a month is an average over the 76 days, with no seasonal adjustment. - The rate is measured from your records. Nothing here compares it with an industry figure, because Revvy holds none. ### Step 3: walk the intake checklist Answer each intake question yes, no or unknown. A rate tells you how many leads booked, not why the others did not, and these questions follow a lead from the phone ringing to a job on the schedule. *Intake checklist* - [ ] In business hours, a named person answers the phone, and someone covers when they cannot. (Yes / No / Unknown): Think of the times they are on another call, out on a job or at lunch. - [ ] Missed calls and voicemails get called back, and one person owns that list. (Yes / No / Unknown): How soon, and how would anyone know a call was missed? - [ ] After-hours calls reach a person, an answering service, or a voicemail someone clears first thing. (Yes / No / Unknown) - [ ] Every lead is recorded with its source and a booked status or booked date. (Yes / No / Unknown) - [ ] Leads that do not book stay in your records, with the date they came in. (Yes / No / Unknown) - [ ] If you run Local Services Ads: you know how many calls you missed during business hours. (Yes / No / Unknown): Google's own words on missed calls are just below. #### If you run Local Services Ads Two sentences from Google's Local Services help pages, read on October 8, 2026. On how the ads are ranked: > Your responsiveness to customer inquiries and requests: Missed calls may negatively affect your responsiveness. > > Google, Local Services Help, "About ad rankings" [1] And in Google's list of the ways a valid lead, which you are charged for, can come about: > You missed a phone call during your business hours and the customer stays on the line for more than 20 seconds. > > Google, Local Services Help, "How leads work" [2] Read together, they say two things. Missed calls may count against your responsiveness.[1] And a call you miss during business hours can still count as a valid lead when the caller stays on the line for more than 20 seconds.[2] Help pages like these can change, so open them from the Sources list below and check before you act on them. More on this: [Missed calls on Local Services Ads: what Google says](https://revvyrocket.com/blog/missed-calls-local-services-ads/). #### How to read your answers Unknown is an answer. It means your records cannot say, and that is a finding about the records, not a zero. If nobody can say how many calls were missed last month, the first fix is to start counting them. No item here carries a dollar value. Revvy measures calls from a calls export, as answered live, missed or sent to voicemail, but it does not put a price on missed calls. Print this page and hand the checklist to whoever answers your phone. Ask them to mark it, then compare notes. ### Step 4: try a target in the calculator Open the Opportunity Score calculator and type in your leads a month and your booking rate from Step 2. Then choose a target rate, a completion rate and your average completed job value. The calculator prices one lever, the booking rate, and says what it assumes: that your team can do the added work, that revenue is not profit, and that no other lever is added. It is a scenario, not your Revvy Opportunity Score. The completion rate is the share of booked jobs that complete and get invoiced. For a target, Revvy's engine uses 75% by default: a rate it judges a business with a staffed phone and a written booking path can reach. Try your own targets too. See: [Opportunity Score calculator](https://revvyrocket.com/opportunity-score/) ### In the demo **Demo.** Contoso Plumbing & Drain. Contoso Plumbing & Drain is one of Revvy's demo businesses. Leads that never became booked jobs are the largest line in Contoso's total: $164K–$246K a year, after the total has allowed for wins that act on the same jobs and for the open slots on the schedule. Revvy also shows the check's own range, before that allowance. Under two thirds of Contoso's calls are answered live. [Open Contoso's dashboard in the demo](https://app.revvyrocket.com/business/biz_contoso). ### What the full analysis adds - It does not add overlapping wins together. Booking more leads, closing more quotes and raising the average ticket act on the same jobs, so of booking and close rate one counts in full and the other at a share, 40% by default, a judgement you can change, and the average-ticket what-if stays beside the total. - It checks the added jobs against the schedule capacity a business has recorded, and scales a figure down when the crews could not run the work. - It gives each figure a confidence and a low, mid-point and high, with the working behind it. - Its Breakdowns screen counts calls answered live, missed and sent to voicemail, beside an answer-rate target marked as an assumption. More on the method: [Measure your booking rate without the 14-day trap](https://revvyrocket.com/blog/measure-your-booking-rate/). ### Sources 1. Google, Local Services Help. "About ad rankings". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7527305?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads.) 2. Google, Local Services Help. "How leads work". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7195435?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads. The second sentence is listed on the page as a scenario that generates a valid lead; lead credits and exceptions are described on the same page.) --- ## The Records Checklist - **URL:** https://revvyrocket.com/resources/records-checklist/ - **Updated:** 2026-10-08 - **Audience:** For owners and buyers - **Format:** Checklist - **In ten minutes:** A gap list of exports and fields, and how many days of records you have. - **PDF:** https://revvyrocket.com/downloads/records-checklist.pdf Six exports a trades business already keeps, the fields that break an analysis when they are missing, and a gap list you can act on today. Which numbers should a trades business track? Start one step earlier, with the records the numbers come from. This checklist covers six exports from the records a trades business already keeps, the question each one answers, and the fields that quietly break an analysis when they are missing. It is written for owners getting ready for any review of the business, and for buyers writing a data request. The [buyer version](#buyer-version) is further down. ### Why records come first Unknown is not zero. When a record is missing, the number it would have produced is missing too, and a missing number is a gap, not a finding. A business with no marketing spend on file has not been shown to waste nothing on marketing. Nobody has looked. Revvy is built on that rule. When a check lacks the records it needs, it says "Not enough data" and why, and it leaves that check out of the score instead of counting it as zero. The first job is knowing what you have. Ten minutes with the checklist below gets you a gap list: what is missing, and what each gap leaves out. ### The six exports, in the order to pull them This is the order Revvy's import guide suggests: jobs first, because completed jobs with their revenue set the average ticket most money figures are priced against. #### 1. Jobs Answers: what did each job earn, and was it for a customer you have served before? Fields Revvy reads: the type of work, the invoiced value, the status (scheduled, completed or cancelled), the completed date on every completed job, and a customer id. The one people forget: the customer id. Without it every job looks like a new customer, so repeat business is invisible and there is no list of customers who have gone quiet. Watch the completed date too. A completed job without one is invisible to every revenue figure, so Revvy's importer refuses it. #### 2. Leads Answers: how many enquiries became booked jobs, and from which source? Fields Revvy reads: the source, the date the lead came in, and a booked status or booked date. The one people forget: the leads that did not book. A file of booked work alone shows a 100% booking rate and tells you nothing. #### 3. Estimates Answers: which quotes sold, which were lost, and which are still open? Fields Revvy reads: the amount, the status (open, sold, lost or expired), the presented date and the last follow-up date. The ones people forget: the open quotes and the follow-up date. A blank follow-up date on an open quote is the sign nobody chased it, so a blank there tells you something. Close the open quotes out to tidy the file and the list of quotes to call goes with them. #### 4. Marketing spend Answers: what did each channel cost, against the leads it brought in? Fields Revvy reads: the channel, the amount, and the first and last day each amount covers. The one people forget: matching names. Each channel in the spend file has to be named the way your leads name their source, or the spend has no leads to be set against. Spend on a channel that no lead source covers is better left out than filed under the wrong source, where it would raise that source's cost per booked job by money it never spent. Without a spend file Revvy will not compare channels at all. Lead volume with no cost beside it says nothing about which budget is working. #### 5. Calls Answers: how many calls were answered live, missed or sent to voicemail? Fields Revvy reads: the outcome and the date of each call. The one people forget: the missed calls. An export of answered calls alone reads as 100% answered. Revvy measures the answer rate from this file; it does not put a dollar figure on missed calls. #### 6. Invoices Answers: what was billed, and what has been collected? Fields Revvy reads: the invoiced amount, the amount paid so far, the invoice date and the job it belongs to. The one people forget: the job link. An invoice whose job is not on file is kept but not tied to its job, which is why Revvy's import guide brings jobs in first. ### How much is enough Revvy will not state a rate from a handful of rows. Before a check reports at all, it needs at least these: *The fewest records Revvy needs before it states a rate* | Records | At least | | --- | --- | | Leads, at least 14 days old | 20 | | Calls | 20 | | Decided estimates (sold or lost), for a close rate | 15 | | Stale open quotes, for a figure on them | 5, at low confidence until 15 | | Jobs | 15 | | Customers | 25 | Time matters as much as rows. Below 60 days of records Revvy scales nothing to a year. From 60 to 364 days it does, with a note that trades work is seasonal, so part of a year can over- or under-state a full one. At 365 days or more you have a full year. **Demo.** Fabrikam Roofing. Fabrikam Roofing, one of Revvy's demo businesses, has 19 days of records from around a September hailstorm, well short of the 60 days a yearly figure needs. So Revvy puts no yearly figure on it and gives it no score at all, and every check says "not enough data", with its reason. ### Build your gap list For each export, say whether you can produce it, and tick the fields it carries. Then enter how many days your records cover. The gap list builds as you go, each gap with what it leaves out. *(An interactive worksheet sits here on the page. It runs in the browser on the reader's own numbers.)* Take the gap list to whoever runs your exports. "Not sure" belongs on it too: it means nobody has checked yet. ### If you buy leads on Local Services Ads Google is moving Local Services Ads into Google Ads. Its timeline puts the first phase in August 2026, for select home and storefront service advertisers in the United States, plumbing, HVAC, electrical and roofing among them.[1] The same help page says: > Your Local Services Ads performance reports will not transition to Google Ads. > > Google Ads Help, "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals" [1] Keep your own record of the leads those ads bring in: the date, the source, and whether each one booked, in your leads export. With that history in your own records you can still work out your booking rate and cost per booked job for that source, whatever happens to the reports. Google's page was read on October 8, 2026, and the move is still under way, so check the current position there. Google's own advice on saving the old reports, as its page read that day, is summed up in [Local Services Ads are moving: keep your lead data](https://revvyrocket.com/blog/local-services-ads-move-to-google-ads/#what-does-not-carry-over). ### Customer names The customer id is what matters. It links a second job to the first, which is how repeat business shows up. The name column is optional. If you send names, Revvy uses one only to label a customer it has not seen before. Its row-by-row import history drops the name. For a data request, ask for ids rather than names. Repeat business can be measured from the ids alone. ### Buyer version Evaluating a business? The same six exports make a data request whose answers you can compare from one target to the next. Ask for: - All six exports, with the fields named in each section above. - At least twelve months of each, so a yearly figure rests on a full year and every season is in it. - More than eighteen months of jobs if you want to see customers who have gone quiet. Revvy counts a customer as lapsed after 18 months without a job, its default and a judgement, not an industry figure, so the history has to reach back further than that. - The open quotes and the leads that did not book, not only the work that was won. - Weekly schedule capacity by location, if the business records it. - Gross margin for the same period, from the books, before any figure is read as profit. #### When a field does not exist Ask how the business tracks it instead, and write the answer down. "We do not record follow-ups" is a fact about the business. Do not let the gap be filled with an estimate: once an estimate sits in a spreadsheet, it reads as a measurement. Mark the field as missing on your request, with what it leaves out (the gap list words each one), so nobody prices that gap as zero. #### Sending the request Print this page with the gap list filled in and attach it to your request letter. It covers the operating records and sits beside the documents an attorney and an accountant review, not in place of them. The U.S. Small Business Administration's guide to buying a business says: > Once you know whether you want to franchise or buy a business, you'll need to evaluate each specific opportunity. In short, it boils down to this: do your due diligence. > > U.S. Small Business Administration, "Buy an existing business or franchise" [2] For the upside claims a seller makes, use the [Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/). For the full list of records to ask a seller for, read [Buying an HVAC or plumbing firm: records to ask for](https://revvyrocket.com/blog/records-to-ask-a-seller-for/). ### What Revvy does with these files - It imports all six as CSV files today, and each format has a built-in example in the app. - It checks a file before writing anything, names the row and column of every problem, and refuses to half-load a batch. - It shows how each cell will be stored before you apply the file, and can undo a file from the import history. - You do not need all six. A check without the records it needs says so, and the others still run. - ServiceTitan and Housecall Pro connections are planned. In the demo they are demo adapters. With your gap list done, two worksheets use the records straight away: the [Open-Quote Call List](https://revvyrocket.com/resources/open-quote-call-list/) works from your estimates, and the [Booking-Rate Check](https://revvyrocket.com/resources/booking-rate-check/) from your leads. For what spend and leads can tell you together, read [Cost per lead vs cost per booked job](https://revvyrocket.com/blog/cost-per-booked-job/). ### Do not upload real records to the demo The live demo is shared and has no sign-in. Anything entered or imported there is visible to anyone who opens it. Use it to see the import check and the example files on Contoso's connections screen, and keep your own records off it. [Open Contoso's connections screen in the demo](https://app.revvyrocket.com/business/biz_contoso/connections). ### Sources 1. Google Ads Help. "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals". No date shown on the page; its timeline names August 2026, late 2026 and 2027. https://support.google.com/google-ads/answer/17213585?hl=en (A live rollout that is still changing; this page was read on October 8, 2026.) 2. U.S. Small Business Administration. "Buy an existing business or franchise". No date shown on the page. https://www.sba.gov/counseling/plan-your-business/#buy-franchise (General guidance, not specific to the trades. The page lists documents an attorney and accountant typically review: letter of intent, confidentiality agreement, contracts and leases, financial statements, tax returns, sales agreement, purchase price adjustment.) --- ## The Upside Diligence Checklist - **URL:** https://revvyrocket.com/resources/upside-diligence-checklist/ - **Updated:** 2026-10-08 - **Audience:** For acquisition teams - **Format:** Checklist and data request - **In ten minutes:** One upside claim marked up question by question, and a list of evidence to request. - **PDF:** https://revvyrocket.com/downloads/upside-diligence-checklist.pdf Twelve questions to put to any revenue-upside figure for a trades business before it goes into the model, with the evidence to request for each. Before an upside figure from a teaser or a deal memo goes into your model, test three things: the records it counted, the target it measured them against, and the arithmetic in between. These twelve questions do that, and turn each gap into a line on a data request. They are the rules Revvy holds its own figures to, written as questions you can put to anyone's. ### What this is for This is operating-records diligence on revenue-upside claims about HVAC, plumbing, roofing and electrical businesses. It asks one thing of a figure: do the business's own leads, quotes, jobs, spend and schedule support it? It sits beside a quality-of-earnings review and legal diligence, never in place of either. It is not investment advice, and it is not a valuation. The U.S. Small Business Administration's guide to buying a business says: > Once you know whether you want to franchise or buy a business, you'll need to evaluate each specific opportunity. In short, it boils down to this: do your due diligence. > > U.S. Small Business Administration, "Buy an existing business or franchise" [1] This checklist covers one slice of that work: the upside story. ### How to use it 1. Pick one upside claim: a line in a teaser, a figure in a memo, something a seller said. One figure at a time. 2. Answer each question for that figure: supported, partly, unsupported or not asked. 3. Wherever the answer is not "supported", note the evidence to request. For "partly", write down which part is missing. Each question suggests a line; write your own if you have a better one. 4. Print the data request the worksheet builds, and send it. "Not asked" is an answer, and it goes straight onto the data request. The worksheet only counts: it gives no score and no money figure, and the boxes clear when you reload the page. *(An interactive worksheet sits here on the page. It runs in the browser on the reader's own numbers.)* ### The twelve questions #### 1. Does each figure name the records it counted? *A good answer.* Each figure says what it counted and over which dates: how many leads, quotes or jobs, from when to when. A figure that cannot name its population cannot be checked. Revvy will not show a money figure that cannot produce its full working. *Evidence to request.* The record counts behind each figure, and the dates they cover. #### 2. Is the target rate stated with its reasoning, and if it is called a benchmark, what is the source? *A good answer.* The figure names the rate it was measured against, and why that rate. If the memo calls it a benchmark, typical or standard, you can open the source and see who it describes. Revvy labels each of its own targets "a judgement and not an industry figure", because it holds no benchmark data. *Evidence to request.* The target behind each figure, the reasoning for it, and the source of any benchmark. #### 3. Is it a range or a single number? *A good answer.* A low, a mid-point and a high, and what sets the width. Revvy gives every money figure as a range, because a single number claims more precision than a sample of records can support. Its band widens from ±20% to ±45% as the sample shrinks. *Evidence to request.* The low and the high for each figure, and what sets the width. #### 4. Are booking, close-rate and ticket gains added together even though they act on the same jobs? *A good answer.* Gains that act on the same jobs are combined, not added. Booking more leads produces more quotes, closing more quotes produces more jobs, and raising the ticket raises those same jobs, so adding all three counts one job three times. Revvy counts one of booking and close rate in full and the other at a share, 40% by default, a judgement you can change. It shows the average-ticket what-if beside the total and never adds it in, and it shows the total line by line. *Evidence to request.* How gains that act on the same jobs were combined. #### 5. How many days of records sit behind a yearly figure, and is seasonality addressed? *A good answer.* A yearly figure rests on a full year of records, or says how many days it scaled up and that trades work is seasonal. Revvy scales nothing to a year below 60 days of records, and adds a seasonality note from 60 to 364 days. *Evidence to request.* The first and last record date behind each yearly figure. #### 6. Are one-time lists, such as open quotes and lapsed customers, kept apart from yearly figures? *A good answer.* Open quotes and lapsed customers are a stock that exists today. A sound figure counts them once, totals them apart from the yearly figures, and never multiplies them up to a year, which would invent quotes and customers that do not exist. *Evidence to request.* Which figures are one-time and which are yearly. #### 7. Is it revenue or gross profit, and is a margin on file? *A good answer.* The figure says which it is. A profit figure uses the business's own gross margin, from its books, for the same period. Revvy leaves profit blank when no margin is on file, rather than borrow an industry average. *Evidence to request.* Gross margin for the same period, from the books. #### 8. Can the schedule run the added jobs, and was capacity recorded or inferred? *A good answer.* Added jobs are checked against the crews and the schedule. Capacity recorded by location and week is better evidence than an estimate, and an estimate says how it was made. Revvy scales a figure down when the added jobs need more open slots than the schedule has, and says so when no capacity is recorded. *Evidence to request.* Recorded schedule capacity by location and week, or how it was estimated. #### 9. What share of leads comes from the top source? *A good answer.* Leads by source over a full year, so you can see how much of the pipeline rests on one channel. A gain priced on a business that gets most of its leads from one source depends on that source staying as it is. Revvy's acquisition view shows lead-source concentration for each business. *Evidence to request.* Leads by source for at least twelve months. #### 10. Which checks had no data, and were they left out or counted as zero? *A good answer.* The checks with no data are named, with the reason, and left out of any score or total. Counted as zero, a check nobody could run reads as a clean bill of health. Revvy leaves such a check out of the score entirely, numerator and denominator, and shows its data coverage beside the score. *Evidence to request.* The checks with no data, and how each one was treated. #### 11. Does any valuation use an earnings basis and a multiple you chose? *A good answer.* Any value put on the business names its earnings basis and its multiple, and both are yours to choose, not the seller's. Revvy's valuation scenario asks the user for both and labels the result a scenario, not a valuation. *Evidence to request.* The earnings basis and multiple behind any value, and who chose them. #### 12. Can you rebuild each figure from its working? *A good answer.* You can redo each figure from its formula, the records it counted, its target and its range, and land on the same number. In Revvy every money figure opens to that working, and the total is built line by line so anyone can rebuild it. *Evidence to request.* The working for each figure: formula, records counted, target and range. ### Three answers from the demo Revvy's demo data covers three demo businesses. Each one answers some of the questions above the way a sound figure should. **Demo.** Fabrikam Roofing: questions 5 and 10. Fabrikam Roofing has 19 days of records, from around a September hailstorm. Revvy gives it no score, not a score of zero, and scales nothing to a year. Every check says "not enough data", with its reason. **Demo.** Northwind Heating & Air: a low score is not a weak business. Northwind Heating & Air, an HVAC business with three locations, is the strongest operator of the three demo businesses. It has the lowest Opportunity Score of the three, 8 out of 100 as the app shows it, at 100% data coverage. The score measures supported upside, not health, and a well-run business has less headroom. In the demo, each of Northwind's figures opens to the records it counted, its target and its range, so you can see why the total is small. **Demo.** Contoso Plumbing & Drain: question 4. Some of Contoso's opportunities act on the same jobs, so Revvy does not add their full values: one counts in full and the others at a share, 40% by default, a judgement you can change. Figures that add jobs are also scaled down to fit the open slots on the schedule. ### Turn the gaps into a data request Every question you marked partly supported, unsupported or not asked lands on the data request at the foot of the worksheet, with your own evidence line or the suggested one. Print it. For the operating records themselves, use the [buyer version of the Records Checklist](https://revvyrocket.com/resources/records-checklist/#buyer-version): six exports, the fields that matter in each, and the period to ask for. See: [The Records Checklist](https://revvyrocket.com/resources/records-checklist/) ### What Revvy will not do Revvy will not say what a business is worth. Its acquisition view has a valuation scenario, and that scenario needs your own earnings basis and your own multiple. The result is labelled a scenario, not a valuation. It holds no industry benchmarks, and no figure appears that is not in the records or worked out from them. ### The acquisition view in the demo The acquisition view sets businesses side by side on revenue, the profit information on file, Opportunity Score, data coverage, lead-source concentration, sales conversion, repeat business, capacity and the estimated improvement, with downside, base and upside cases. In the demo data it holds all three demo businesses, and the demo opens with no sign-in, as a demo analyst. [Open the acquisition view in the demo](https://app.revvyrocket.com/acquisition). For how to read upside in a memo, question by question, see [Upside in a deal memo: 12 questions before the model](https://revvyrocket.com/blog/upside-in-a-deal-memo/). ### Sources 1. U.S. Small Business Administration. "Buy an existing business or franchise". No date shown on the page. https://www.sba.gov/counseling/plan-your-business/#buy-franchise (General guidance, not specific to the trades. The page lists documents an attorney and accountant typically review: letter of intent, confidentiality agreement, contracts and leases, financial statements, tax returns, sales agreement, purchase price adjustment.) --- ## Unsold estimates: count them before you chase them - **URL:** https://revvyrocket.com/blog/count-your-open-quotes/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Answers:** How many unsold estimates are sitting in your system right now? Before you chase a single estimate, count the open ones: quotes presented 14 or more days ago with no decision, what they add up to, and which of them nobody has followed up. That count tells you how big the job is and which calls to make first. ### Open, lost and expired are different piles An unsold estimate can be one of three things in your records. A lost quote has an answer, and the answer was no. An expired quote ran out of time without one. An open quote is still waiting: nobody has said no yet. Only the open pile is still in play, so that is the one to count before anyone picks up the phone. Lost quotes belong in your close rate and open ones do not, because a quote with no decision has not been lost. Counting it as a loss makes a slow pipeline look like a selling problem. The close rate is a separate count, with its own post: [Close rate on estimates: count decided quotes only](https://revvyrocket.com/blog/close-rate-decided-quotes/). ### When a quote becomes stale A quote you presented on Tuesday is still being decided. Calling it unsold on Friday treats an ordinary few days of thinking time as a problem. Revvy draws the line at 14 days: a quote is stale when it is still open and was presented at least 14 days before the date of your export. Those 14 days are Revvy's default, picked to give an ordinary decision time to happen. Every default on this page (14 days, and the 15% recovery rate below) is Revvy's judgement, not an industry figure, and you can change any of them. If your jobs are large and your customers take longer to decide, a longer line is reasonable. Pick one and use the same one every time you count. In practice, take the date of your export and count back 14 days. Every quote still open that was presented on or before that date goes on the list. ### Count it, add it up, find the average You need one export from your field-service software's estimate report: every quote with its status, the date it was presented, the amount, and the last date anyone followed it up. Filter it down to the stale open quotes and write down two numbers, how many there are and what they add up to. Then work out the third. **Average stale quote:** `total value of the stale open quotes ÷ number of stale open quotes` Average over the same quotes you counted, so the three numbers multiply back to the total. The [Open-Quote Call List](https://revvyrocket.com/resources/open-quote-call-list/) turns that list into a call sheet, highest value first. If the export has no presented date or no follow-up date, the [Records Checklist](https://revvyrocket.com/resources/records-checklist/) lists the fields an estimates export needs. Below five stale quotes there is nothing to put a figure on. Revvy will not price open quotes until it has five, because a figure built on three or four quotes is mostly noise. Work the list anyway: three quotes are still three calls. See: [The Open-Quote Call List](https://revvyrocket.com/resources/open-quote-call-list/) ### Never followed up, or followed up and still open? #### What a blank follow-up date tells you Some stale quotes have had a second call and are still open. Others have had nothing since the day they were presented. The follow-up date on the quote tells them apart: on an open quote, a blank last follow-up date means nobody has recorded chasing it. Count those quotes separately and call them first, since nobody has asked the customer anything since the quote went out. If the date is blank because people chase quotes and never write it down, you have learned something too. The count will keep saying the same thing until somebody starts recording it. #### Why the two counts are not added The quotes nobody chased are part of the stale pile, not a second pile. Put a figure on each and add them, and you have priced the same quotes twice. Revvy shows the no-follow-up figure on its own card, as the share of the open-quote figure sitting in quotes nobody chased. It adds nothing to the business total, because the open-quote figure already includes those quotes. ### Putting a figure on the pile **One-time figure for your stale open quotes:** `stale open quotes × average value × recovery rate` The recovery rate is yours to choose: the share you expect a deliberate second call to close. #### Choose your own recovery rate The recovery rate is the one number you cannot count from the export. Revvy starts at 15%, a default it set low on purpose, and the [Open-Quote Call List](https://revvyrocket.com/resources/open-quote-call-list/#step-4) explains why and lets you put in your own. If you have chased old quotes before and kept the outcomes, use the rate they give you. If you have not, treat 15% as a starting point to argue with. A month of calls with the outcomes written down will give you a rate of your own. Revvy also gives the figure as a range rather than one number. The band depends on how many quotes you counted: ±45% under 30 stale quotes, ±30% from 30 and ±20% from 60. It reflects the size of the sample, not how sure anyone is about the rate you chose. #### One-time, not yearly These quotes exist today. Once they are worked they are gone, and next month's pile is a new count. So the figure is one-time. Multiplying it up to a year would be inventing quotes, and adding it to a yearly figure, such as what a better close rate is worth, mixes a list with a rate. #### Revenue, not profit The figure is the value of the quotes, so it is revenue. What you keep depends on your margin on that work. Revvy works out a profit figure only when a gross margin is on file, and never borrows an industry average to fill the gap. ### Then make the calls Work the call sheet from the top, and give each second contact a reason. An outline to adapt: 1. What has changed since the quote went out, if anything: an opening on the schedule, a part now in stock, an answer to a question the customer asked. 2. What is still open on the quote, in one sentence. 3. A next step the customer can say yes or no to, such as a date to book. We make no claim about how often that works; your outcome column will tell you. Write the date of every call into the quote's follow-up field as you go. Next month's count then takes minutes, and it can tell chased quotes from untouched ones. ### In the demo **Demo.** Contoso Plumbing & Drain. In Revvy's demo data, open quotes still sitting unanswered add $47K–$71K, one-time, to Contoso Plumbing & Drain's total. Most of Contoso's open quotes have no follow-up on record. In Revvy, that figure opens to its formula, the counts of quotes behind it and the recovery rate it used, and the Scenarios screen lets you try a different rate before anything is saved. [See the open quotes in the demo](https://app.revvyrocket.com/business/biz_contoso/opportunities) Revvy runs both checks, open quotes and quotes with no follow-up, whenever it analyses an estimates file, and CSV import works today. It counts the no-follow-up quotes once, inside the open-quote figure, and gives each figure a confidence level and a low, a mid-point and a high. ### Questions people ask #### How long should I wait to follow up on a quote? For counting, Revvy treats a quote as stale once it has been open 14 days, and that line is Revvy's default, a judgement and not an industry figure. When to make the first call is a separate decision and yours to make. It depends on the size of the job and on what you told the customer when you presented it. Whatever you choose, record the date of each follow-up, so you can see later what happened. #### Should the tech or the office make the follow-up call? Revvy has no data on which works better, and we found no neutral source that does. A practical rule: give the call to whoever will reliably write down the date and the outcome. A follow-up nobody records looks exactly like no follow-up in your records. #### Should I offer a discount to close an unsold estimate? We cannot tell you what a discount does to your results, and we will not guess. The outline above leads with a reason to call rather than a lower price: what has changed, what is still open and a clear next step. If you do discount, write it down beside the outcome so your own records can show what it did. A discount comes out of margin, and the figure on the pile is revenue, not profit. #### How many unsold estimates is too many? There is no benchmark for this, and Revvy does not hold one. The useful comparison is with your own records: count the stale open quotes and what they add up to this month, then again next month. A pile that keeps growing while the follow-up dates stay blank is a problem you can see without anyone else's number. --- ## Close rate on estimates: count decided quotes only - **URL:** https://revvyrocket.com/blog/close-rate-decided-quotes/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Answers:** How is HVAC close rate calculated? Close rate is sold quotes divided by decided quotes, and a decided quote is one that was sold or lost: sold ÷ (sold + lost). Open and expired quotes stay out of both sides, so the rate measures how often you win once the customer has decided. ### Why open quotes stay out **Close rate on decided quotes:** `sold quotes ÷ (sold quotes + lost quotes)` Count both from your estimates export, by status, over the same period. A quote nobody has answered has not been lost. Count it as a loss and it sits in the bottom of the fraction with nothing in the top, so the rate drops every time customers take a while to decide. A slow pipeline then looks like a selling problem. That is why Revvy works out close rate from sold and lost quotes only. The open quotes still matter. They are a different job, a list to work through and price once, and they have their own post: [Unsold estimates: count them before you chase them](https://revvyrocket.com/blog/count-your-open-quotes/). ### Expired quotes Expired quotes are left out too. An expired quote ran out of time without an answer, and like an open one, it is not a no. That has a side effect worth checking in your own system. If your software marks quotes expired after a set number of days, they drop out of your close rate, and because they are no longer open they are on nobody's call list either. Revvy counts them in neither place: an expired quote is outside the close rate and outside the open-quote figure, which reads only quotes still marked open. So keep a third number beside the rate: how many quotes expired in the period, and what they were worth. It will not change your close rate, and it should not, but it stops work that nobody won from vanishing between two reports. ### How many decided quotes you need Revvy states a close rate only once it has at least 15 decided quotes. Quotes are fewer and larger than leads, so the bar is lower than for a booking rate, but a close rate from eight quotes is noise. Fifteen is the floor. Revvy calls its confidence in a close-rate figure high from 60 decided quotes, four times the minimum, and medium from 30. Below that, the range it puts around the figure is wider. If a quarter does not give you 15 decided quotes, use a longer period. If one location does not, look at the business as a whole until it does. ### What a "good" close rate is We do not offer a figure. The figures quoted on ranking pages disagree with each other, and we did not check any of them against a source, so none is repeated here. Revvy's default target is 45%, a judgement and not an industry figure: a close rate a business presenting options can reach, set below best-in-class on purpose. You can change it, and Revvy's own notes call it the assumption most worth tuning to a business's own records. The comparison that tells you something is with yourself. Work out this quarter's rate and last quarter's the same way, for each location, and then look at what changed in between: who presented, what was quoted, how quickly the quotes went out. ### Close rate, booking rate and ticket act on the same jobs Booking more leads produces more quotes, closing more of those quotes produces more jobs, and raising the average ticket raises the value of those same jobs. #### Why their gains are not added together Price each improvement on its own and add them up, and one job gets counted up to three times: as a booking, again as a sale and again as a bigger ticket. The sum is large because it double-counts. Revvy reconciles them instead. One counts in full and the other counts at a share, 40% by default, which is a judgement you can change. The average-ticket what-if is shown beside the total and never added to it. Every line of the working is on screen, so the total can be rebuilt by hand. The [Opportunity Score calculator](https://revvyrocket.com/opportunity-score/) keeps to one lever, the booking rate, and says so: no other growth lever is added. To measure that side fairly, see [Measure your booking rate without the 14-day trap](https://revvyrocket.com/blog/measure-your-booking-rate/). ### In the demo **Demo.** Contoso Plumbing & Drain. In Revvy's demo data, quotes presented but not sold add $44K–$66K a year to Contoso Plumbing & Drain's total. That is what the close-rate line adds after the total has allowed for the jobs it shares with booking and for the open slots on the schedule. Revvy shows the line's own range as well, with the formula behind it. Revvy's dashboard also compares close rate across a business's locations, and shows a rate only where a location has at least 15 decided quotes. [See the close-rate working in the demo](https://app.revvyrocket.com/business/biz_contoso/opportunities) Close rate leaves out the open quotes still waiting for an answer. The [Open-Quote Call List](https://revvyrocket.com/resources/open-quote-call-list/) helps you count those, put a one-time figure on them at a rate you choose, and print a call sheet to work from. ### Questions people ask #### What is a good HVAC close rate? We do not give one. The figures quoted on ranking pages disagree with each other, and we did not check any of them against a source. Revvy's default target is 45%, a judgement and not an industry figure, and the better comparison is your own rate last quarter, worked out the same way. #### Should I count quotes that expired? No. Close rate counts sold and lost quotes only. An expired quote ran out of time without an answer, so it is not a loss, and Revvy leaves it out of both sides of the fraction. Keep a separate count of expired quotes so they do not drop out of sight. #### Does close rate depend on the kind of work? It can. Revvy does not split quotes by the kind of work: it works out one close rate from every decided quote. Its notes on the 45% default say a business whose quotes are mostly replacements, or mostly service calls, may sit well away from it, which is why the target is editable. If your estimates export carries the type of work on each quote, you can work out a rate for each type yourself with the same formula. #### Can I add a better close rate to a better booking rate? Not by adding the two figures. Both act on the same jobs, so the sum counts some jobs twice. Revvy counts one in full and the other at a share, 40% by default, and shows the working line by line. --- ## Measure your booking rate without the 14-day trap - **URL:** https://revvyrocket.com/blog/measure-your-booking-rate/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Answers:** What is call-to-booking rate? Call-to-booking rate is the share of inbound phone calls that became booked jobs. A lead booking rate counts every enquiry, by phone, form or referral; that is the one Revvy measures, over leads at least 14 days old, so a busy last week does not read as a booking problem. ### Leads, calls and bookings are different counts People measure booking rate on calls or on leads, and the two answer different questions. A call-to-booking rate counts phone calls that turned into booked jobs. A lead booking rate counts every enquiry, whether it came by phone, form, message or referral, and asks how many became booked work. Revvy measures the second. The lead is the unit: each one has a source, the date it arrived and, if it booked, the date it booked. Calls come in separately, each marked answered live, missed or sent to voicemail, with an optional flag for whether it booked a job. A call in Revvy's format carries no lead source, so calls cannot tell you which channel did the booking. Pick one and keep to it, because mixing the two can count one customer twice: once as a call, once as the lead that call became. What happens to the calls themselves is covered in [Missed calls on Local Services Ads: what Google says](https://revvyrocket.com/blog/missed-calls-local-services-ads/). ### The 14-day trap A lead that came in two days before you ran the export may not have been called back yet. Count it as never booked, and a busy last week looks like a booking problem. So leave out every lead created in the 14 days before the end of your period. The 14 days are Revvy's default, set to match the line Revvy uses for stale quotes. Every default on this page (14 days, 75%, 90%) is Revvy's judgement, not an industry figure, and you can change any of them. If your leads usually book much faster or slower, change it, and then use the same number every time. #### Why leaving out only the unbooked ones biases it upward The tempting shortcut is to drop only the new leads that have not booked yet. That pushes the rate up. The new leads that booked quickly stay in, the ones still waiting come out, and the newest days look better than they were. Leave out booked and unbooked alike, and every lead in the count has had the same time to book. **Booking rate:** `leads at least 14 days old that became booked jobs ÷ leads at least 14 days old` Count both over the same leads: everything created on or before the cut-off date. ### Send the leads that did not book A booking rate needs the leads that went nowhere. An export that holds only the enquiries that turned into work will show a booking rate of 100% and tell you nothing. Before you count, check three things in the export: every lead has a source, every booked lead has a booked status or a booked date, and the leads that never booked are still there. The Booking-Rate Check works from a 90-day export. It has you count the leads created over the first 76 of those days and leave the last 14 out, then gives you the rate and your leads a month for the calculator. See: [The Booking-Rate Check](https://revvyrocket.com/resources/booking-rate-check/) ### How many leads you need Revvy states a booking rate only from 20 leads old enough to count. Below twenty, one busy week moves the rate by several points. Nineteen leads is not a booking rate; it is nineteen leads. Twenty is the floor. Revvy calls its confidence in a booking figure high from 80 such leads and medium from 40. If a month or a location does not reach 20, widen the period instead of reading the rate anyway. ### Does speed matter? The Lead Response Management Study, presented in 2007 by InsideSales.com and Dr. James Oldroyd of MIT Sloan, looked at how quickly companies called back web leads. It reported: > The odds of contacting a lead if called in 5 minutes versus 30 minutes drop 100 times. The odds of qualifying a lead if called in 5 minutes versus 30 minutes drop 21 times. > > InsideSales.com and Dr. James Oldroyd (MIT Sloan), "Lead Response Management Study" [1] Read it with its limits. It covered web-form leads at six unnamed companies, and the authors say their own customers were concentrated in mortgage and insurance. It measured contacting and qualifying a lead, not bookings or revenue, and it says so: "This study did not address close ratios."[1] None of it is about plumbing, HVAC, roofing or electrical work, so it cannot tell you what speed is worth to your business. Revvy cannot tell you either: its leads format has a created date and a booked date, and no column for when someone first called back. If you want to know, log the time of the first call back on every lead. Once the quick ones and the slow ones each reach 20 leads old enough to count, compare their booking rates. ### More leads or better conversion? You can put both on your own numbers. More leads at today's rate add bookings at that rate, and each extra lead costs whatever you pay for one. A better rate books more of the leads you already have. **Booking more of the leads you have:** `leads a month × (target rate - current rate) × completion rate × average job value × 12` The calculator works this out for you. It prices one lever. **Buying more leads:** `extra leads a month × current rate × completion rate × average job value × 12` Your own arithmetic: set it beside what the extra leads would cost. The calculator does not price this side. Revvy gives the booking check one of its two highest weights, with the close rate, because those leads are demand the business has already paid for. That is Revvy's judgement. If your rate is already close to your target, more leads may be the bigger lever, and the arithmetic above will show it. The [Opportunity Score calculator](https://revvyrocket.com/opportunity-score/) prices the conversion side on your inputs. It warns that it assumes your team can do the added work, that revenue is not profit, and that no other growth lever is added. Its worked example uses an 85% completion rate; Revvy's default is 90%. Use your own. A better close rate acts on the same jobs as a better booking rate, so do not add the two figures together. [Close rate on estimates: count decided quotes only](https://revvyrocket.com/blog/close-rate-decided-quotes/) explains why. ### Per location If you run several locations, measure each one the same way: the same 14-day cut-off, the same 20-lead floor, and every lead tagged with its location. A location with fewer than 20 old-enough leads in the period has a count, not a rate. **Demo.** Northwind Heating & Air. Northwind Heating & Air is the demo's HVAC business, with three locations. Its dashboard in Revvy compares booking rate by location and shows a rate only where a location has at least 20 leads. That chart counts every lead in the window, so it can differ slightly from the booking rate in the analysis, which leaves the newest 14 days out. Narrow the dashboard to one location to see that location's own score and ranges. [Open Northwind in the demo](https://app.revvyrocket.com/business/biz_northwind) ### Questions people ask #### What is a good booking rate? We have no industry figure we could check, and Revvy holds no benchmark data. Revvy's default target is 75% of leads booked, a judgement and not an industry figure: a rate a trades business with a staffed phone and a written booking path can reach. Compare your rate with your own last quarter, measured the same way, and try a target in the [Opportunity Score calculator](https://revvyrocket.com/opportunity-score/). #### Why leave out the last 14 days? Because those leads may not have been called back yet. Counting them as unbooked lowers the rate for a reason that has nothing to do with how well you book. Leave them all out, booked and unbooked, so every lead in the count has had the same time. #### Should calls count as leads? Count leads for the booking rate and measure calls on their own. In Revvy's format a call records whether it was answered live, missed or sent to voicemail, and whether it booked a job, but not where the caller came from. Revvy shows an answer rate once it has 20 calls. #### Can I compare locations? Yes, with the same method at each one: the same cut-off and the same 20-lead floor. A location below the floor has a count, not a rate. Compare each location with its own last quarter as well as with the others. ### Sources 1. InsideSales.com and Dr. James Oldroyd (MIT Sloan). "Lead Response Management Study". Presented October 16, 2007; this copy saved July 17, 2008. https://www.mortech.com/hs-fs/hub/25649/file-13535879-pdf/docs/mit_study.pdf (Old, and not about home services: web-form leads at six unnamed companies, and the authors say their own customers are mostly in mortgage and insurance. A third party hosts this saved copy. It says nothing about bookings or revenue.) --- ## Missed calls on Local Services Ads: what Google says - **URL:** https://revvyrocket.com/blog/missed-calls-local-services-ads/ - **Updated:** 2026-10-08 - **Audience:** For owners and managers - **Answers:** Do missed calls hurt my Local Services Ads? Google says missed calls may count against your Local Services Ads responsiveness, which is part of how its ads are ranked, and that a call you miss during business hours can still be a valid lead you pay for. Your own call log shows how often that happens, across every source, not only the ads. ### What Google says about missed calls and ranking Google's help page on Local Services Ads rankings lists the factors in its ad auction. One of them is how likely your ad is to result in a lead, and the first thing it lists under that is this: > Your responsiveness to customer inquiries and requests: Missed calls may negatively affect your responsiveness. > > Google, Local Services Help, "About ad rankings" [1] Note the word "may". Google does not say how much missed calls count, or how they are weighed against your bid and everything else, so the page gives you no way to put a number on it. What it does say is that responsiveness counts in the auction, and that missed calls may count against it. The page was read on October 8, 2026. Google is moving Local Services Ads into Google Ads, and its help pages may change during the move, so check the current wording before you act on it. ### When a missed call is still a charged lead Google's page on how leads work starts from what you pay for: > You're charged for each valid lead you receive through your Local Services ad. > > Google, Local Services Help, "How leads work" [2] It then lists the situations that generate a valid lead. One of them is a call nobody answered: > You missed a phone call during your business hours and the customer stays on the line for more than 20 seconds. > > Google, Local Services Help, "How leads work" [2] So a call that rings out during your business hours, from a caller who waits more than 20 seconds, can be a lead you pay for even though nobody spoke to the customer. The same page describes lead credits and exceptions; read it with your own account open. #### A charged lead is not a booked job Google charges for leads. What pays your bills is booked work. Between the two sit every call nobody answered and every voicemail nobody returned, and your own records are where you can count them for every source. Keep each Local Services Ads lead in your records with its source and whether it booked. ### How many calls go unanswered? The one figure on this that we opened and could trace to its publisher comes from a company that sells call-tracking software. Invoca reported (2024): > Our research found that 27% of calls to home services businesses are not answered. > > Invoca (call-tracking software), "See How Much Missed Sales Calls Cost Home Services Businesses" [4] Read it as the vendor's own research. The page does not describe its method or its sample, and its examples are large businesses with many locations. It cannot tell you how your own phones are doing, and your own answer rate is the number worth having. ### Measure your own answer rate Start from a call log, exported from your phone system or call-tracking tool if it offers one. For each inbound call you need the date, what happened to it and, if you know, whether it booked a job. Sort every call into one of three outcomes: - Answered live: a person picked up. - Missed: it rang out with nobody answering and no message left. - Went to voicemail and left a message. A call your phone system routed to voicemail with no message is a missed call here. **Answer rate:** `calls answered live ÷ all inbound calls` Missed calls and voicemails together are the calls that reached nobody live. Count at least 20 calls before you treat the answer as a rate; Revvy waits for 20 too. Keep missed calls and voicemails apart, as Revvy does: a voicemail, counted this way, is a message someone can return, and a missed call left none. Your phone system's own "voicemail" label may include callers who hung up at the greeting, so check before you sort. Look at calls during business hours on their own as well, since those are the ones Google's valid-lead scenario describes. Calls are one side of intake. The other is how many of your leads became booked jobs, measured fairly in [Measure your booking rate without the 14-day trap](https://revvyrocket.com/blog/measure-your-booking-rate/). The Booking-Rate Check covers both, with an intake checklist for whoever answers the phone. See: [The Booking-Rate Check](https://revvyrocket.com/resources/booking-rate-check/) ### Answering service, text-back or a person? Search for help with missed calls and much of what comes back is sold by vendors of answering services, AI receptionists and missed-call text-back. We have not tested any of them, so this post compares none of them and makes no claim about which works. Whatever you look at, put the same questions to it: - What does it record for each call, and can you export that with the date and the outcome? - Does a booked job come back into your own records, so you can count calls that booked rather than calls handled? - What happens after hours? Who returns a missed call or a voicemail, and how soon? - What does it cost, so you can set that beside the bookings it records? After any change, the test is the one you ran before it: your answer rate and the share of calls that booked, from your own log, month on month. ### What Revvy measures and what it does not Revvy imports a call log with each call's outcome and an optional booked flag. Its Breakdowns screen counts calls answered live, missed and sent to voicemail, and once it has 20 calls it shows the answer rate and the share of calls that booked a job. It does not put a dollar figure on missed calls. Pricing one would need to know how often the callers who never got through would have booked, and no record holds that. The screen shows an answer-rate target beside the measured rate, 90% by default, a judgement and not an industry figure, and that target moves no money figure anywhere in Revvy. Revvy reads no ad platform. It cannot see your Local Services Ads account, its ranking or its charges; it reads the leads and calls you export. **Demo.** Contoso Plumbing & Drain. In Revvy's demo data, under two thirds of Contoso Plumbing & Drain's calls are answered live. The calls panel, on the Sales tab of the Breakdowns screen, shows the count for each outcome and the answer rate beside the target. [Open Contoso's Breakdowns in the demo](https://app.revvyrocket.com/business/biz_contoso/insights) ### Questions people ask #### Am I charged for a missed Local Services Ads call? You can be. Google's help page lists, as a scenario that generates a valid lead: "You missed a phone call during your business hours and the customer stays on the line for more than 20 seconds."[2] The same page says you are charged for each valid lead, and describes lead credits and exceptions. Check it against your own account. #### Do missed calls lower my ranking? Google says they may. Its page on ad rankings says: "Missed calls may negatively affect your responsiveness."[1] Responsiveness is part of how likely your ad is to result in a lead, which is one of the factors in the auction. Google does not say by how much. #### What does a missed call cost? We do not know, and Revvy does not price it. A figure would need to know how often the callers who never got through would have booked, and no record holds that. What you can measure is your answer rate and the share of calls that booked a job, from your own call log. If a page quotes a cost per missed call, look for what it assumed about bookings and job value before you use it. #### What changes when Local Services Ads move into Google Ads? Google says Local Services Ads are moving into Google Ads, and that paying per lead carries over: "Pay-per-lead model: You still only pay for valid leads (such as phone calls and messages) rather than ad clicks."[3] What the move means for your reports and your lead history is in [Local Services Ads are moving: keep your lead data](https://revvyrocket.com/blog/local-services-ads-move-to-google-ads/). ### Sources 1. Google, Local Services Help. "About ad rankings". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7527305?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads.) 2. Google, Local Services Help. "How leads work". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7195435?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads. The second sentence is listed on the page as a scenario that generates a valid lead; lead credits and exceptions are described on the same page.) 3. Google Ads Help. "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals". No date shown on the page; its timeline names August 2026, late 2026 and 2027. https://support.google.com/google-ads/answer/17213585?hl=en (A live rollout that is still changing; this page was read on October 8, 2026.) 4. Invoca (call-tracking software). "See How Much Missed Sales Calls Cost Home Services Businesses". May 23, 2024. https://www.invoca.com/blog/how-much-missed-sales-calls-cost-home-services-businesses (The vendor's own research and platform data. The page does not describe its method or sample, and its examples are large businesses with many locations.) --- ## Local Services Ads are moving: keep your lead data - **URL:** https://revvyrocket.com/blog/local-services-ads-move-to-google-ads/ - **Updated:** 2026-10-08 - **Audience:** For owners and buyers - **Answers:** What happens to my Local Services Ads lead history when the account moves to Google Ads? Google says your past Local Services Ads leads move to a new Leads page in Google Ads, but the performance reports, past weekly spend included, do not. Save those reports before your account moves, and keep each lead's source, date and booked status in your own records as well. ### What Google says is changing Google is folding Local Services Ads into Google Ads. Its help page for the move, read on October 8, 2026, says existing campaigns will be migrated automatically to a Performance Max campaign type built for pay-per-lead goals, and that the ads keep showing on Google Search and Google Maps as before.[1] The move runs in phases, and the first one names the trades this site is written for: > August 2026: The first phase of the migration begins for select home and storefront service advertisers in the United States (including plumbing, HVAC, electrical, appliance repair, house cleaning, lawn care, roofing, pest control, and moving). > > Google Ads Help, "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals" [1] Google dates the next phase "Late 2026" and says it takes in "service-area businesses without physical storefronts and accounts with custom bidding or booking configurations." If your business works from a yard rather than a storefront, that later phase may be the one for you. Google also says the account administrator gets an email 14 days before the migration date, with banners in the old dashboard.[1] **Note.** A rollout still under way. Google's page is changing as the move runs. This post quotes it as it read on October 8, 2026. Read it again before you act on any date here, and go by your own account's emails where the two differ. ### What does not carry over > Your Local Services Ads performance reports will not transition to Google Ads. > > Google Ads Help, "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals" [1] The FAQ on the same page says what that covers: "Your previous campaign-level performance metrics (such as past impressions, clicks, weekly spend, and ad-level performance reports) will not migrate to Google Ads." Once your account has moved, the old dashboard sends you to Google Ads instead, and Google says the previous reports will no longer be accessible.[1] Google's advice is to save your performance data before your account migrates. It says a page for downloading the historical reports will be available "soon", and suggests screenshots if you need the reports sooner than that.[1] Of everything on that list, past weekly spend is the line to save. It is the money that cost per lead and cost per booked job both divide, and a screenshot is a poor place to do sums from. ### What moves with you, and what stays the same Your leads do move. To the question "Will my past customer leads carry over?" Google answers "Yes", and says your past lead history, including customer contact details, message history and older call recordings, will "automatically transfer to Google Ads and remain fully accessible within the new Leads page."[1] Google says that page keeps the "charged" status and lead type you are used to, and lets you download your leads to import into your own CRM.[1] How you pay does not change either: > Pay-per-lead model: You still only pay for valid leads (such as phone calls and messages) rather than ad clicks. > > Google Ads Help, "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals" [1] Local Services Help describes the charge the same way: "You're charged for each valid lead you receive through your Local Services ad." A valid lead is not a booked job. Google's list of valid leads includes a call you missed during business hours when the caller stays on the line for more than 20 seconds.[2] Google's page on ad rankings adds that "Missed calls may negatively affect your responsiveness."[3] [Missed calls on Local Services Ads: what Google says](https://revvyrocket.com/blog/missed-calls-local-services-ads/) covers what that means for whoever answers your phone. ### Keep the history in your own records Google will hold your leads, and it says the spend history will not move. Which of those leads became work on your schedule is something your own records answer. Keep two files, and add to them every month rather than the week before your account moves. *What to keep for Local Services Ads, in your own records* | File | Field | Why it matters | | --- | --- | --- | | Leads | Source | Ties each lead to the channel that paid for it. In Revvy's leads import, Local Services Ads is the source `GOOGLE_LSA`. | | Leads | Date it came in | Lets you leave out leads too new to have booked yet. | | Leads | Booked date or booked status | The difference between a lead and a job. | | Leads | The leads that did not book | Without them, the booking rate reads 100% and tells you nothing. | | Spend | Amount, first day and last day | Spend by period: the history Google says will not carry over. | | Spend | Source, named as on your leads | So the spend can be set against the leads it bought. | #### Why a lead count is not enough Google says the new dashboard reports "Conversions", the leads you were charged for, and "Cost / conv.", your average cost per lead.[1] Cost per lead tells you what a channel sends. Cost per booked job tells you what it books: the same spend divided by the leads that became booked jobs. Two channels with the same cost per lead can sit far apart on cost per booked job when one books most of its leads and the other books few. **Cost per booked job, for one channel over one period:** `spend ÷ leads from that channel that became booked jobs` [Cost per lead vs cost per booked job](https://revvyrocket.com/blog/cost-per-booked-job/) works it through channel by channel, including what to do with a channel that booked nothing. #### Getting the files out We have not researched the menus inside Google's tools, so this post gives no steps for them. Start with Google's help page for the move and with your own account, and save what you can before your migration date. If your leads also live in your field-service software, export them from there too, with their booked status. [The Records Checklist](https://revvyrocket.com/resources/records-checklist/) goes through the fields to keep in each of the six exports a trades business already has, and turns the gaps into a list you can work through. ### What Revvy does with the two files Revvy does not connect to Google and holds no ad-platform data. It reads the leads and marketing spend files you import; CSV import works today. Its Breakdowns screen then shows, for each lead source, the leads, the bookings, the booking rate, the spend, the cost per lead and the cost per booked job. The demo has that screen for a demo business: [the Breakdowns screen in the demo](https://app.revvyrocket.com/business/biz_contoso/insights). It runs on demo data and anyone can see what is entered there, so keep real records out of it. ### If you sell or buy a business A buyer will want to know how much of a business's work comes from one source. If most of its leads come from Local Services Ads, the move into Google Ads is a live question for that deal. The seller's own lead and spend files answer it, and they do not depend on reports Google says will not carry over. Question 9 of [the Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/) asks it directly: what share of leads comes from the top source? Revvy's acquisition view shows that share for each business as lead-source concentration: see [the acquisition view in the demo](https://app.revvyrocket.com/acquisition). [Upside in a deal memo](https://revvyrocket.com/blog/upside-in-a-deal-memo/) covers the other eleven questions. If you are the seller, the same two files let you answer that question before a buyer asks it. The other worksheets for owners and buyers are on [the Resources page](https://revvyrocket.com/resources/). ### Questions people ask #### When does the move start? Google's page dates the first phase like this: "August 2026: The first phase of the migration begins for select home and storefront service advertisers in the United States (including plumbing, HVAC, electrical, appliance repair, house cleaning, lawn care, roofing, pest control, and moving)." The rollout is still running, so check the page and your account's emails for your own date.[1] #### Will my reports move over? No. Google says: "Your Local Services Ads performance reports will not transition to Google Ads." Its FAQ lists past weekly spend among the figures that will not migrate. Your past leads do move, to the new Leads page in Google Ads.[1] #### Do I still pay per lead? Yes. Google says: "Pay-per-lead model: You still only pay for valid leads (such as phone calls and messages) rather than ad clicks."[1] A valid lead can be a call you missed, so a charged lead and a booked job are different counts.[2] #### What should I keep? Two files. Leads, one row each, with the source, the date the lead came in, and the date it was booked or a blank if it never was. Spend, one row per channel per period, with the amount, the first and last day it covers, and a source named the same way as on your leads. Those are the fields Revvy's leads and marketing spend imports read. ### Sources 1. Google Ads Help. "Local Services Ads transition to Performance Max campaigns with pay-per-lead goals". No date shown on the page; its timeline names August 2026, late 2026 and 2027. https://support.google.com/google-ads/answer/17213585?hl=en (A live rollout that is still changing; this page was read on October 8, 2026.) 2. Google, Local Services Help. "How leads work". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7195435?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads. The second sentence is listed on the page as a scenario that generates a valid lead; lead credits and exceptions are described on the same page.) 3. Google, Local Services Help. "About ad rankings". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7527305?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads.) --- ## Cost per lead vs cost per booked job - **URL:** https://revvyrocket.com/blog/cost-per-booked-job/ - **Updated:** 2026-10-08 - **Audience:** For owners and buyers - **Answers:** What is the difference between cost per lead (CPL) and cost per booked job (CPBJ)? Cost per lead divides what a channel cost by the leads it sent. Cost per booked job divides the same spend by the leads that became booked jobs, and that is the figure that says whether the money worked. ### Two formulas, same spend **Cost per lead:** `spend on a channel in a period ÷ leads from that channel in the same period` **Cost per booked job:** `the same spend ÷ leads from that channel that became booked jobs` Both divide the same money. Only the number you divide by changes, and that is where channels come apart: a channel with cheap leads that rarely book can cost more per booked job than one with expensive leads that usually do. Revvy's Breakdowns screen sets the two side by side for each lead source, next to the leads, the bookings and the booking rate. ### Why a lead is not a job Ad platforms count what they charge for or what they can see. Local Services Ads charges per lead: "You're charged for each valid lead you receive through your Local Services ad." Google's list of valid leads includes this one: "You missed a phone call during your business hours and the customer stays on the line for more than 20 seconds." A missed call can be a charged lead and never become a job.[1] Google Ads call tracking counts something else again. Its help page says: > This kind of conversion tracking tracks a call as a conversion when it lasts longer than a minimum length you set. > > Google Ads Help, "Set up Tracking calls to a phone number on a website" [2] So a call that runs past a length you chose is a conversion. Whether the caller booked is not part of that count. Neither figure is wrong. Each answers the platform's own question: what you were charged for, or how long the call lasted. Which leads turned into work on your schedule is in your records, and so is your cost per booked job. ### What you need from your records - Spend by channel and period: the amount, the first and last day it covers, and the source it paid for. - Leads with a source, the date each came in, and a booked status or booked date. Include the leads that never booked; a file of booked work alone shows every channel booking 100%. - Matching names. The source on a spend row has to be the one on the leads it paid for, or that spend has no leads to divide by. Spend on a channel that none of your lead sources covers has nothing to go under. Leave it out of this sum rather than filing it under a source it did not buy leads for; otherwise that source looks more expensive than it is. [The Records Checklist](https://revvyrocket.com/resources/records-checklist/) lists these fields with the rest of a trades business's exports, and gives you a gap list for the ones you cannot produce yet. ### Work it out by channel For each paid channel, over the same dates, add up the spend, count the leads, count the ones that booked, and divide. Then hold the results to three rules. #### Leave the newest leads out A lead from last Tuesday may not have been called back yet. Count it as unbooked and every channel looks more expensive than it is. Revvy's channel check counts only leads at least 14 days old at the end of the period, booked or not, and sets them against the spend over the same days, so both sides of the sum cover leads that have had time to book. Fourteen days is Revvy's default, a judgement and not an industry figure. #### A channel that booked nothing ranks last Spend divided by zero bookings has no answer, and it is tempting to drop the channel from the table. Keep it, at the bottom. A channel that took money and booked nothing is your weakest channel, not a missing one. Revvy ranks every paid channel with no booked job below all the others, and its Breakdowns table marks it "Paid, no bookings". #### Spend with no leads: check the names first If a channel has spend on file and not one lead carries its name, look at the spelling before you judge it. "Google Ads" on the spend sheet and "Google PPC" on the leads will never meet. Revvy leaves that spend out of the ranking and names it as it was recorded, because a mismatch in names is not a finding about a channel. Its Breakdowns screen lists it as spend with no leads and says: "Either the leads are filed under another name, or the money produced none." ### Small numbers A channel with a handful of leads can swing from cheap to expensive on one booking. Revvy will not state a booking rate on fewer than 20 leads, and its channel check needs at least 20 leads and two paid channels before it compares any. On your own sheet, hold each channel to the same 20-lead floor: under 20, write the figure down, but do not rank the channel on it yet. One paid channel on its own has nothing to be measured against, and Revvy says so rather than ranking it against an imagined benchmark. This post gives no typical cost per lead or cost per booked job for the same reason. We have none that we could check, and your own channels are the fairer comparison anyway. ### What Revvy shows The Breakdowns screen lists each lead source with its leads, bookings, booking rate, spend in the period, cost per lead and cost per booked job. Beside it, an attribution gaps panel counts leads with no source recorded, names spend with no leads, and says that jobs with no originating lead cannot be measured. That last line is a real limit. In Revvy's import formats a call carries no source and a job carries no link to the lead behind it, so Revvy ties a source to leads and bookings only, not to completed jobs or their revenue. Revvy's channel check, "Spend concentrated in the weaker channels", prices moving part of the weakest paid channel's budget to the best one. It values the moved money at a cost between the two channels' own rates, because a cheap channel costs more as more is pushed into it, and it stops at whichever limit it reaches first: a third of the weak channel's budget, or half again what the best channel already spends. Both are Revvy's defaults, and the working names the one it hit. That is a model, not a measurement, and the working says so. Both rates are the business's own; the two limits are Revvy's judgement, not industry figures. **Demo.** Contoso Plumbing & Drain. In the demo, one of Contoso's paid channels costs several times what another does. Open [Contoso's Breakdowns screen in the demo](https://app.revvyrocket.com/business/biz_contoso/insights) to see cost per lead and cost per booked job side by side, on demo data. If you buy leads on Local Services Ads, its move into Google Ads is a good reason to keep this history yourself: [Local Services Ads are moving: keep your lead data](https://revvyrocket.com/blog/local-services-ads-move-to-google-ads/) explains why. The other worksheets are on [the Resources page](https://revvyrocket.com/resources/). ### Questions people ask #### How is cost per lead calculated? Divide what a channel cost over a period by the leads it brought in over the same period. Use the same dates for both, and count every lead, booked or not. Cost per booked job divides the same spend by the leads that became booked jobs. #### How do I lower my cost per booked job? Nobody can promise a lower figure, and Revvy holds no industry figure to aim at. Work it out by channel on your own records first, so you know which channel is weakest and why. A channel whose leads rarely book points you at what happens after a lead arrives: how calls are answered and how fast leads are called back. [Measure your booking rate without the 14-day trap](https://revvyrocket.com/blog/measure-your-booking-rate/) covers that part. A channel whose leads book well but cost a lot points you at the channel itself. #### Can I see it by channel from the ad platform? Only part of it. An ad platform counts what it charges for or what it can see, such as charged leads or calls longer than a length you set. Google Ads describes one way to bring sales back in: "If you use another system to track when calls lead to sales or other conversions, you might want to create an import calls conversion action instead."[2] Revvy reads no ad platform. It works from the spend and leads files you give it, with the booked status from your own records. #### Which channel would you cut first? We cannot say from here, and nobody can without your numbers. Revvy's channel check prices moving part of the weakest paid channel's budget to the best one, using your own channels' costs per booked job, and stops at whichever of its two limits it reaches first: a third of the weak channel's budget, or half again what the best channel spends. It needs spend on file and at least two paid channels to do that. ### Sources 1. Google, Local Services Help. "How leads work". No date shown on the page; read October 8, 2026. https://support.google.com/localservices/answer/7195435?hl=en (Platform documentation that may change while Local Services Ads move into Google Ads. The second sentence is listed on the page as a scenario that generates a valid lead; lead credits and exceptions are described on the same page.) 2. Google Ads Help. "Set up Tracking calls to a phone number on a website". No date shown on the page. https://support.google.com/google-ads/answer/6095883 (A call conversion is a call over a set length, not a booked job.) --- ## Upside in a deal memo: 12 questions before the model - **URL:** https://revvyrocket.com/blog/upside-in-a-deal-memo/ - **Updated:** 2026-10-08 - **Audience:** For acquisition teams - **Answers:** How do you check a seller's upside figure for an HVAC or plumbing business? Check it against the business's own operating records: leads, booked jobs, quotes, follow-up, spend by channel and schedule capacity. Put twelve questions to the seller's upside figure before it reaches your model, and ask for the records each one needs. ### Where upside claims come from When a teaser, a broker's memo or the seller's own pitch offers upside (answer the phone faster and bookings rise, chase the open quotes, win back the customers who went quiet), treat each line as a claim to check, and find out which part of it the records support. Read the financial statements for what the business earned. Read the operating records for how many leads it booked, how many quotes it closed and how full the schedule ran: those are the numbers an upside story is built from. Between the books and your model, ask whether the business's own operating records support the figure, or whether it rests on someone else's targets and a few good weeks. ### Where this sits in diligence This is one strand of diligence. It sits beside the financial and legal review and replaces neither. The SBA's guide to buying a business puts it plainly: > Once you know whether you want to franchise or buy a business, you'll need to evaluate each specific opportunity. In short, it boils down to this: do your due diligence. > > U.S. Small Business Administration, "Buy an existing business or franchise" [1] The same guide suggests hiring an attorney and an accountant, who typically help you create and evaluate documents such as the letter of intent, the financial statements and the tax returns.[1] A quality-of-earnings report is a separate review by an accounting firm. The twelve questions below look at something else: the operating records an upside figure is built from. **Keep in mind.** None of this is investment advice or a valuation. Revvy does not say what a business is worth, and neither does this post. ### How upside gets overstated Each pattern below maps to questions on [the Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/), which numbers them 1 to 12. #### No records behind the figure (questions 1 and 12) A figure that does not name the records it counted cannot be checked. Ask what was counted, over which dates, and whether you could rebuild the figure from its working: the formula, the records, the target and the range. Revvy holds itself to the same rule: it does not show a money figure that cannot show its working. #### Borrowed targets (question 2) Most upside is the gap between a current rate and a target. If the target is called an industry benchmark, ask for the source and its date. Revvy holds no benchmark data. Each of its default targets is labelled "Revvy's default, a judgement and not an industry figure", and the user can change it. #### Gains that act on the same jobs (question 4) Booking more leads produces more quotes, closing more of those quotes produces more jobs, and a higher average ticket raises the value of those same jobs. Add the three gains together and one job is counted three times. Ask how the gains were combined. Revvy counts one of booking and close rate in full and the other at a share, 40% by default, a judgement call the user can change. It shows the average-ticket what-if beside the total and never adds it in, and it shows the total line by line. #### A few weeks scaled to a year (questions 5 and 6) Ask how many days of records sit behind each yearly figure, and whether anyone allowed for the season. Revvy will not scale fewer than 60 days of records to a year, and from 60 to 364 days it notes that trades work is seasonal, so a part-year can over- or under-state a full one. Then ask whether one-time lists are kept apart from yearly figures. Open quotes and lapsed customers are a stock that exists today, and they can be worked through once. Multiply them by twelve and you have priced quotes nobody wrote. #### Revenue shown as profit (question 7) Ask whether the figure is revenue or gross profit, and ask for the gross margin over the same period, from the books. Revvy works out profit only from a margin on file and never borrows one. Without a margin, its profit figure stays empty rather than estimated. #### Jobs the schedule cannot run (question 8) More bookings need more crew hours. Ask whether the business recorded its schedule capacity or someone inferred it from job counts. Revvy checks added jobs against recorded capacity, fills the open slots with the work worth most per job first, and scales down what does not fit. Where no capacity is recorded, it says the figures were not checked against the schedule. ### The other four questions - Question 3 asks whether the figure is a range or a single number. A single number claims more precision than operating records can support. Revvy gives a low, a mid-point and a high, and widens the band when the sample is small. - Question 9 asks what share of leads comes from the top source. A business that depends on one channel depends on that channel's rules, and those can change. See [Local Services Ads are moving: keep your lead data](https://revvyrocket.com/blog/local-services-ads-move-to-google-ads/). - Question 10 asks which checks had no data, and whether they were left out or counted as zero. A check with no records is unknown. Counted as zero, it makes a thin file look clean. - Question 11 asks whose earnings basis and whose multiple turned the upside into a value. Revvy runs a valuation scenario only on an earnings basis and a multiple you supply, and labels it a scenario. ### Question 4 in the demo **Demo.** Contoso Plumbing & Drain: two gains on the same jobs. In Contoso's total, leads that never became booked jobs add $164K–$246K a year, and quotes presented but not sold add $44K–$66K a year. Both act on the same jobs, so Revvy does not add their full values: one counts in full and the other at a share, 40% by default, and both are scaled to fit the open slots on the schedule. That is question 4, answered the way a sound figure should. Revvy's demo data covers two more businesses, each set up to show a different state of the analysis: one with too few days of records to score, and a strong operator with a low score. [The Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/#three-answers-from-the-demo) goes through what each of them shows. Revvy's acquisition view sets businesses side by side, and in the demo data it holds all three. See the [acquisition view in the demo](https://app.revvyrocket.com/acquisition). It compares them on revenue, gross profit, Opportunity Score, data coverage, lead-source concentration, conversion, repeat business, capacity used and estimated revenue improvement, with downside, base and upside scenarios. ### Turn the gaps into a data request Mark each question supported, partly supported, unsupported or not asked. Everything short of supported is your data request. [The Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/) does the marking on the page, suggests the evidence to ask for under each question, and prints the request. Nothing you mark there is saved or sent. For the records themselves, [Buying an HVAC or plumbing firm: records to ask for](https://revvyrocket.com/blog/records-to-ask-a-seller-for/) lists the six operating exports and the period to ask for, and [the Records Checklist's buyer version](https://revvyrocket.com/resources/records-checklist/#buyer-version) turns them into a list to send with the request. Every worksheet is on [the Resources page](https://revvyrocket.com/resources/). ### Questions people ask #### What is a quality of earnings report, and is this one? A quality-of-earnings report is a separate review by an accounting firm. This is not one. These twelve questions look at the operating records behind an upside figure, and they sit beside that review and your legal diligence, not in place of either. #### Can a target's upside be added up across fixes? Not by simple addition. Booking more leads, closing more quotes and raising the average ticket act on the same jobs, so adding the three gains counts a job more than once. Ask for the combined figure and how it was combined. Revvy does not add them: of booking and close rate, one counts in full and the other at a share, 40% by default, a judgement you can change, and the average-ticket what-if is shown beside the total, never added in. #### How many months of records should I ask for? At least twelve, so the records cover a full year of seasons. Set aside any yearly figure built on fewer than 60 days of records: Revvy will not scale that little to a year. If you also want to see customers who have gone quiet, ask for more than eighteen months of jobs. #### Does Revvy value businesses? No. Revvy's acquisition view compares businesses and runs downside, base and upside scenarios on their records. Its valuation scenario needs an earnings basis and a multiple that you supply, and it is labelled a scenario, not a valuation. ### Sources 1. U.S. Small Business Administration. "Buy an existing business or franchise". No date shown on the page. https://www.sba.gov/counseling/plan-your-business/#buy-franchise (General guidance, not specific to the trades. The page lists documents an attorney and accountant typically review: letter of intent, confidentiality agreement, contracts and leases, financial statements, tax returns, sales agreement, purchase price adjustment.) --- ## Buying an HVAC or plumbing firm: records to ask for - **URL:** https://revvyrocket.com/blog/records-to-ask-a-seller-for/ - **Updated:** 2026-10-08 - **Audience:** For acquisition teams - **Answers:** Which records should I ask a seller for? Ask for the legal and financial file an attorney and an accountant would review, then add six operating exports covering at least twelve months: jobs, leads, estimates, marketing spend, calls and invoices. The financial statements show what the business earned; the operating records show how the work came in, and whether the upside the seller describes is in them. ### What the SBA lists The U.S. Small Business Administration's guide to buying a business suggests hiring an attorney and an accountant, and lists the documents the two of them typically help you create and evaluate:[1] - Letter of intent - Confidentiality agreement - Contracts and leases - Financial statements - Tax returns - Sales agreement - Purchase price adjustment > An accountant can help you determine the full costs of purchasing and operating the business, and even help estimate potential profit. > > U.S. Small Business Administration, "Buy an existing business or franchise" [1] That is the legal and financial file: what the business earned, what it owns and what you are signing. It does not show how many enquiries booked, how many quotes closed or which channel the marketing money went to. Those are in the operating records. ### The operating records, and what each one answers Ask for each as a spreadsheet export, one row per record. The table runs in the order to ask for them. *Six operating exports to request from a seller* | Export | The question it answers for a buyer | Often left out | | --- | --- | --- | | Jobs | What did each job earn, and how much of the work came from customers served before? | The customer id. Without it every job looks like a new customer, and repeat business disappears. | | Leads | How many enquiries became booked jobs, and from which source? | The leads that did not book. A file of booked work alone shows a 100% booking rate. | | Estimates | Which quotes sold, which were lost, and which are still open? | The open quotes, with the last follow-up date. A blank date on an open quote is how you find the ones nobody chased. | | Marketing spend | What did each channel cost, against the leads it brought in? | Channel names that match the lead sources, or the spend cannot be set against its leads. | | Calls | How many calls were answered live, missed or sent to voicemail? | The missed calls. An export of answered calls alone reads as 100% answered. | | Invoices | What was billed, and what has been collected? | The job each invoice belongs to, so billing can be tied back to the work. | If the seller can produce only some of them, jobs come first: completed jobs with revenue set the average ticket that most of the money figures are priced against. Then leads, estimates and spend. Calls and invoices are supporting detail. ### The period and fields to ask for - At least twelve months, so the records cover a full year of seasons. Revvy scales nothing to a year below 60 days of records, and from 60 to 364 days it notes that a part-year can over- or under-state a full one. - More than eighteen months of jobs if you want to see customers who have gone quiet. Revvy's default counts a customer as lapsed after 18 months with no activity, a judgement and not an industry figure; with a single year of records, nobody can have been gone that long. - A customer id on every job. - The date each lead came in, and a booked status or booked date. - The presented date, the decision date and the last follow-up date on every quote. - Spend by channel, with the first and last day each amount covers. - The location on each row, if the business runs more than one. Enough rows matters as much as enough months. Revvy will not state a rate from fewer than 20 leads at least 14 days old, 20 calls, 15 decided quotes (sold or lost), 15 jobs or 25 customers, and a seller's rate built on fewer deserves the same caution. **Demo.** Fabrikam Roofing: 19 days of records. Fabrikam, a demo roofer, has 19 days of records: far too few months for a buyer to read a year from. Revvy shows what is missing in place of a score and scales nothing to a year. Its [acquisition view, in the demo](https://app.revvyrocket.com/acquisition), works the same way: where a figure is missing, it says why instead of filling the cell with a zero. ### When a field does not exist Some businesses never recorded a lead source, a booked date or a follow-up date. When a whole field was never kept, put it on your list as a gap. It is not a zero, and it is a finding about the records rather than about the business. Revvy works the same way. A check without the records it needs says "Not enough data" and gives the reason, and it is left out of the score instead of being counted as nothing. Counted as zero, a missing check makes a thin file look clean. Then ask whether the business can start keeping the field now. Sixty days of new records is the least Revvy would scale to a year, so a field started early in a long deal can still be read before closing. ### Trade-specific items to raise with your advisers Raise three more topics with your own advisers. They are not operating records, and nothing here is legal, tax or compliance advice. #### Refrigerant certification, for HVAC > EPA regulations (40 CFR Part 82, Subpart F) under Section 608 of the Clean Air Act require that technicians who maintain, service, repair, or dispose of equipment that could release refrigerants into the atmosphere must be certified. > > U.S. Environmental Protection Agency, "Section 608 Technician Certification Requirements" [3] The EPA also says: "Section 608 Technician Certification credentials do not expire."[3] Ask the seller which technicians hold the certification, and ask your adviser what that means for the sale. #### The tax form for an asset sale > Both the seller and purchaser of a group of assets that makes up a trade or business must use Form 8594 to report such a sale if: > > Internal Revenue Service, "About Form 8594, Asset Acquisition Statement Under Section 1060" [2] - "goodwill or going concern value attaches, or could attach, to such assets and"[2] - "the purchaser's basis in the assets is determined only by the amount paid for the assets."[2] Read the page and the form's instructions on the IRS site, and ask your tax adviser how they apply to your deal. #### Technicians to hire Ask the seller for the technician roster and how it changed over the same months as the records. That tells you whether this business has kept its crews, which no national figure can. For the trades as a whole, the Bureau of Labor Statistics projects employment by occupation. These are national projections, not counts of businesses and not a forecast for any one town. Its Occupational Outlook Handbook says: - "Employment of heating, air conditioning, and refrigeration mechanics and installers is projected to grow 11 percent from 2025 to 2035, much faster than the average for all occupations."[4] - "Employment of plumbers, pipefitters, and steamfitters is projected to grow 7 percent from 2025 to 2035, much faster than the average for all occupations."[5] - "Employment of roofers is projected to grow 5 percent from 2025 to 2035, faster than the average for all occupations."[6] - "Employment of electricians is projected to grow 9 percent from 2025 to 2035, much faster than the average for all occupations."[7] ### If you are the owner preparing to sell The same list works from the other side. Keep the six exports ready, covering at least twelve months, with customer ids, booked status and follow-up dates filled in. Then you can answer a data request from the records, and you know what they say before anyone else reads them. [The Records Checklist](https://revvyrocket.com/resources/records-checklist/) goes through each export and field and gives you a gap list. Buyers can start from [its buyer version](https://revvyrocket.com/resources/records-checklist/#buyer-version), and put the upside figures they are handed to [the Upside Diligence Checklist](https://revvyrocket.com/resources/upside-diligence-checklist/). [Upside in a deal memo](https://revvyrocket.com/blog/upside-in-a-deal-memo/) explains the twelve questions on it, and the other worksheets are on [the Resources page](https://revvyrocket.com/resources/). ### Questions people ask #### What documents does a buyer review? The SBA lists the documents an attorney and an accountant typically help a buyer create and evaluate: a letter of intent, a confidentiality agreement, contracts and leases, financial statements, tax returns, a sales agreement and a purchase price adjustment.[1] For a trades business, add six operating exports: jobs, leads, estimates, marketing spend, calls and invoices. #### Will the technicians need refrigerant certification? For work on equipment that could release refrigerants, the EPA says: "EPA regulations (40 CFR Part 82, Subpart F) under Section 608 of the Clean Air Act require that technicians who maintain, service, repair, or dispose of equipment that could release refrigerants into the atmosphere must be certified."[3] Ask the seller who holds the certification, and ask your own adviser what it means for the deal. #### Which tax form reports an asset sale? The IRS says: "Both the seller and purchaser of a group of assets that makes up a trade or business must use Form 8594 to report such a sale if: goodwill or going concern value attaches, or could attach, to such assets and the purchaser's basis in the assets is determined only by the amount paid for the assets."[2] Read the IRS page and ask your tax adviser how it applies to your deal. #### How far back should records go? At least twelve months, so a full year of seasons is in them. Ask for more than eighteen months of jobs if you also want to see customers who have gone quiet at Revvy's default 18-month window, which is a judgement and not an industry figure. ### Sources 1. U.S. Small Business Administration. "Buy an existing business or franchise". No date shown on the page. https://www.sba.gov/counseling/plan-your-business/#buy-franchise (General guidance, not specific to the trades. The page lists documents an attorney and accountant typically review: letter of intent, confidentiality agreement, contracts and leases, financial statements, tax returns, sales agreement, purchase price adjustment.) 2. Internal Revenue Service. "About Form 8594, Asset Acquisition Statement Under Section 1060". No date shown on the page. https://www.irs.gov/forms-pubs/about-form-8594 (A tax topic. The sentence is followed by two conditions on goodwill and basis; read them on the IRS page and ask your own adviser.) 3. U.S. Environmental Protection Agency. "Section 608 Technician Certification Requirements". Last updated July 15, 2026. https://www.epa.gov/section608/section-608-technician-certification-requirements (A regulatory topic. This is not compliance advice; ask your own adviser.) 4. U.S. Bureau of Labor Statistics. "Occupational Outlook Handbook: heating, air conditioning, and refrigeration mechanics and installers". 2025 data; projections 2025 to 2035. https://www.bls.gov/ooh/installation-maintenance-and-repair/heating-air-conditioning-and-refrigeration-mechanics-and-installers.htm (Occupation data, not business counts. Projections, not outcomes.) 5. U.S. Bureau of Labor Statistics. "Occupational Outlook Handbook: plumbers, pipefitters, and steamfitters". 2025 data; projections 2025 to 2035. https://www.bls.gov/ooh/construction-and-extraction/plumbers-pipefitters-and-steamfitters.htm (Includes pipefitters and steamfitters. Occupation data, not business counts. Projections, not outcomes.) 6. U.S. Bureau of Labor Statistics. "Occupational Outlook Handbook: roofers". 2025 data; projections 2025 to 2035. https://www.bls.gov/ooh/construction-and-extraction/roofers.htm (Occupation data, not business counts. Projections, not outcomes.) 7. U.S. Bureau of Labor Statistics. "Occupational Outlook Handbook: electricians". 2025 data; projections 2025 to 2035. https://www.bls.gov/ooh/construction-and-extraction/electricians.htm (Occupation data, not business counts. Projections, not outcomes.) ---