Starter Kit

Stale Estimate Follow-Up Starter Kit

Four files. Three staged prompts. A ranked chase list showing which stale estimates are worth following up, which need clarification, and which should be closed out.

4 Data Files
3 Prompts
6 Steps

1.Data Prep Checklist

Get your data ready before you start. This workflow is intentionally internal-data-first: external research can be useful later for a few strategic estimates, but it is not required for the core run.

Pick the Right AI Model

Use a thinking/reasoning model. Fast models are more likely to lose row links, misread dates, or turn weak evidence into a confident recommendation.

  • ChatGPT: select a thinking/reasoning mode.
  • Microsoft Copilot: use Think Deeper.
  • Google Gemini: use Pro.
  • Claude: use the strongest reasoning model available.

Run Size

Recommended run size is 50 open estimates. Hard max is 75 if notes are compact. Start with open estimates from the last 120 days, filtered to commercially meaningful quoted work rather than every small repair quote.

Your Four Files

1

Estimate Export

One row per open estimate. Include estimate ID, customer, facility, branch, category, quote amount, sent date, expiration date, status, owner, source type, related work order ID, system, urgency, and scope summary.

2

CRM Activity History

Dated quote-sent events, follow-up calls and emails, customer replies, proposal reviews, revisions, internal reminders, and close-lost notes. This is what keeps customer touch calculations honest.

3

Service / Work-Order Context

Related service records tied to the estimate, customer, facility, or related work order. The key field is latest issue status, because active pain must come from the latest related service row.

4

Account Notes

Narrative notes from account managers, service coordinators, dispatchers, lead techs, and branch managers. These help explain timing, clarification needs, approvals, and escalation paths.

FileFormatNeed
estimate_export.csvCSVRequired
crm_activity_history.csvCSVRequired
service_work_order_context.csvCSVStrongly recommended
account_notes.csvCSVOptional but useful

Paste the first prompt before uploading files. The AI should ask for all four CSVs together.

2.Follow-Up Readiness Calculator Prompt

Paste this first in a fresh chat. It should make the AI ask you to upload the four CSV files before it calculates anything.

You are helping a commercial HVAC and mechanical services leader prepare for a Monday pipeline meeting. Your job in this step is calculation only. Produce a per-estimate follow-up readiness table from the source files. Do not recommend which estimates to chase yet. Do not score recovery probability yet. Do not write outreach advice yet. The next prompt will do that. Your Data I will upload up to four CSV files together after you ask for them. After the files are uploaded, check which files are present. If the required files are present, immediately produce the readiness CSV. Do not ask me to confirm again before calculating. 1. Estimate export - required. One row per open estimate. Includes estimate ID, customer, facility, branch, estimate category, quote amount, sent date, expiration date, status, owner, source type, related work order ID, primary system, urgency, and scope summary. 2. CRM activity history - required. Dated activity rows for quote sent events, follow-up calls/emails, customer replies, proposal reviews, revisions, internal reminders, and close-lost notes. 3. Service / work-order context - strongly recommended. Service records tied to the estimate, customer, facility, or related work order. Includes service date, visit type, system, issue status, severity, technician, work summary, and recommended work. 4. Account notes - optional but useful. Dated narrative notes from account managers, service coordinators, dispatchers, lead techs, and branch managers. If I upload files in batches, wait until I say I have finished uploading before producing the table. If the estimate export or CRM activity history is missing, stop and ask me for the missing required file. If the service / work-order context is missing, you may proceed only after warning me that related service recency and active issue fields will be marked unknown and confidence will be lower. If account notes are missing, proceed without them and mark note summaries as "No account notes provided." Current Date Use this current date for all calculations: 2026-05-28 State this date at the top of your output. Critical Rules - Compute every metric directly from the uploaded rows. - Use exact estimate IDs, work order IDs, activity IDs, note IDs, names, and labels from the data. - If a value cannot be computed from dated source rows, write "unknown." Do not guess. - Do not treat vague notes as follow-up activity. Follow-up activity must come from dated CRM activity rows. - Do not treat missing data as bad news. Missing data lowers confidence; it is not a recovery signal by itself. - Calculate one row for every estimate in estimate_export.csv. - Do not invent estimates, customers, contacts, work orders, notes, activity rows, dates, dollar amounts, or events. - This step is not a sales recommendation. It is a math and extraction pass. Definitions Date math: - quote age days = current date minus sent date - days until expiration = expiration date minus current date - expired flag = Yes if expiration date is before current date, otherwise No - days since last customer touch = current date minus the latest dated customer-facing CRM activity for that estimate after quote sent. This includes both outbound customer-facing follow-up activities and inbound customer responses. - days since last internal activity = current date minus the latest dated internal CRM activity for that estimate after quote sent - first follow-up lag days = first qualifying follow-up activity date after quote sent minus sent date - last customer response age days = current date minus latest qualifying customer response after quote sent - related service recency days = current date minus latest related service/work-order date If a date is missing or no qualifying row exists, write "unknown." If the latest customer-facing activity is only Quote Sent and there are no qualifying follow-up activities or customer responses after that, still compute days since last customer touch, but set No Touch Since Sent to Yes and say "No customer-facing touch beyond quote sent" in the activity signal summary. If there is a Customer Reply, Proposal Review, Meeting Held, Needs Revision, Waiting on Budget, or Waiting on Approval after quote sent, set No Touch Since Sent to No even if there were zero outbound follow-up touches. An inbound customer response is still customer-facing activity after quote sent. Customer-facing activities: Count these CRM activity types as customer-facing follow-up touches when they happen after quote sent: - Follow-Up Email - Follow-Up Call - Proposal Review - Revision Sent Follow-Up Touch Count must include all four activity types above. Count Proposal Review as a follow-up touch even when its direction is Inbound, because it is still a customer-facing post-quote activity. Also count qualifying customer responses as customer-facing activity for latest customer touch. If a Customer Reply is newer than the last outbound follow-up, the Customer Reply is the latest customer touch. Do not count these as customer-facing follow-up touches: - Quote Sent - Internal Reminder - Close-Lost Note - pre-quote Site Walk Days Since Last Internal Activity and latest internal activity source ID must use only CRM rows where activity type is Internal Reminder or Close-Lost Note after quote sent. Never use Follow-Up Email, Follow-Up Call, Proposal Review, Revision Sent, Quote Sent, or Customer Reply as internal activity. Qualifying customer responses: Count these as customer responses when they happen after quote sent: - CRM activity type is Customer Reply - CRM activity type is Proposal Review - outcome is Customer Responded - outcome is Meeting Held - outcome is Needs Revision - outcome is Waiting on Budget - outcome is Waiting on Approval Related service context: A service/work-order row is related if either: - its estimate ID matches the estimate, or - its work order ID matches the estimate export's related work order ID, or - the customer name and facility name both match the estimate row When computing related service recency days, use the latest related service date. If multiple related service/work-order rows share the latest service date, treat all same-day latest rows as the latest service context. In that case: - related service recency days = current date minus that shared latest service date - latest related service source ID = all same-day latest work order IDs, separated by semicolons - related active issue flag = Yes if any same-day latest row has an active issue status - service signal summary must mention that same-day latest rows had multiple statuses if the statuses differ Related active issue flag = Yes if the latest related service/work-order row, or any same-day latest related service/work-order row, has an issue status of: - Temporary Fix - Unresolved - Customer Deferred - Needs Quote Approval Otherwise No. If the latest related row is Monitoring, mark the related active issue flag as No and mention the monitoring status in the service signal summary. Do not infer active issue status from account notes alone. Notes can be cited in the note signal summary, but the flag must come from service/work-order rows. Metrics to compute: For each estimate, compute quote age days, days until expiration, expired flag, days since last customer touch, days since last internal activity, follow-up touch count, customer response count, first follow-up lag days, last customer response age days, related service recency days, related active issue flag, no touch since sent flag, customer engaged after quote flag, source IDs, activity signal summary, service signal summary, and note signal summary. Before Finalizing The Readiness CSV Run these consistency checks against the uploaded source files before you output the CSV: - Follow-Up Touch Count includes every post-quote Follow-Up Email, Follow-Up Call, Proposal Review, and Revision Sent row, regardless of direction. - Customer Response Count includes every post-quote Customer Reply, Proposal Review, or row with an outcome of Customer Responded, Meeting Held, Needs Revision, Waiting on Budget, or Waiting on Approval. - Days Since Last Internal Activity and latest internal activity source ID use only post-quote Internal Reminder or Close-Lost Note rows. - No Touch Since Sent is No if there is any post-quote customer-facing follow-up or customer response. - If multiple related service/work-order rows share the latest service date, all same-day latest service IDs are cited and Active Issue is Yes if any same-day latest row has an active issue status. - No calculation rule should depend on the sample company, sample estimate IDs, or any fixed row values from an example dataset. Output Format Produce the readiness output as a CSV file or comma-separated CSV text, not a Markdown table. If your interface supports creating downloadable files, create a file named: follow_up_readiness_table.csv If your interface does not support downloadable files, output plain CSV text in the response. Do not use a Markdown table. Sort rows by: 1. Expired estimates first 2. Then quote age days descending 3. Then quote amount descending CSV columns, in this exact order: Estimate ID, Customer / Facility, Branch, Category, Quote Amount, Owner, Sent Date, Expiration Date, Quote Age Days, Days Until Expiration, Expired?, Days Since Last Customer Touch, Days Since Last Internal Activity, Follow-Up Touch Count, Customer Response Count, First Follow-Up Lag Days, Last Customer Response Age Days, Related Service Recency Days, Active Issue?, No Touch Since Sent?, Customer Engaged After Quote?, Source IDs, Activity Signal Summary, Service Signal Summary, Note Signal Summary. After the CSV output, include data quality notes in 2-4 sentences. Mention any missing columns, estimates with unknown values, date issues, or unusually thin files. End with this exact sentence: Paste the Recovery Prioritizer prompt into this same chat to continue. Getting Started Start by confirming you understand your role in one short sentence: calculation only, no ranking or recommendations yet. Then ask me to upload the source files. 1. Ask me to upload these CSV files together: - estimate export - estimate_export.csv - required - CRM activity history - crm_activity_history.csv - required - service / work-order context - service_work_order_context.csv - strongly recommended - account notes - account_notes.csv - optional but useful 2. Remind me that the files should be CSV, not .xlsx, and that the recommended run size is 50 estimates with a hard max of 75. 3. After I upload files, check which files you received and verify the required files are present. Do not print a long receipt message. 4. If estimate_export.csv or crm_activity_history.csv is missing, ask for the missing required file before continuing. 5. If service_work_order_context.csv is missing, explain that service recency and active issue fields will be unknown and ask whether I want to proceed anyway. 6. If account_notes.csv is missing, explain that note summaries will say "No account notes provided" and confidence may be lower. 7. If the two required files are present, immediately produce the readiness CSV using 2026-05-28 as the current date. Do not ask me to confirm again before calculating. If I upload files separately or out of order, adapt gracefully, but once the two required files are present, proceed unless you are missing a file that you need me to decide about. After the readiness table, do not rank estimates, produce a top 10 list, recommend outreach actions, draft emails, diagnose branch or owner performance, use external research, or end the readiness-table output with questions or offers to continue.

3.Recovery Prioritizer Prompt

Paste this after the readiness table appears in the same chat. Spot-check two or three readiness rows against the source files before continuing.

You are now helping a commercial HVAC and mechanical services leader decide which stale open estimates are worth following up this week. Use the readiness table you just produced, plus the four source files already in this chat: - estimate export - CRM activity history - service/work-order context - account notes Your output is a ranked chase list with evidence and a specific next action. This is not an automated follow-up campaign. This is an evidence-backed prioritization pass for a human sales or operations leader. Critical Rules - Every claim must be grounded in the source files or the readiness table. - Cite evidence with IDs and dates: estimate ID, activity ID, work order ID, note ID, and dates where available. - Use exact customer names, facility names, owner names, branches, categories, statuses, and dollar amounts. - Do not invent contacts, customer intent, pricing objections, approvals, competitors, or service issues. - Do not put customer contacts in owner columns. Owner columns are for internal people at the company being analyzed only. - Do not make every stale estimate sound worth chasing. Some estimates should be marked low priority or close-out candidates. - Quote amount is not the recovery score. A large quote with no engagement may rank below a smaller quote with active service pain and customer response. - Use days_since_last_customer_touch as the recency signal for actual follow-up. Internal reminders and close-lost notes are process signals, not customer engagement. - Treat service pain as live only when the readiness table says the related active issue flag is Yes. Resolved, Monitoring, and unknown service rows are not live service pain. - Do not use phrases like "live service pain offsets weak activity" unless the related active issue flag is Yes. - Do not punish an owner or branch for missing data. Missing data lowers confidence. - Do not use external research. Recovery Signal Taxonomy Assign exactly one primary recovery signal to each estimate: 1. Unresolved operational pain - related service/work-order context shows the underlying issue is still active, temporarily fixed, deferred, or waiting on quote approval. 2. Budget timing - CRM activity or notes indicate the customer is waiting on budget cycle, approval, capital release, fiscal timing, or internal review. 3. Technical clarification needed - activity or notes suggest the customer needs clearer scope, options, urgency, downtime, warranty, or tradeoff explanation. 4. Decision-maker gap - the estimate appears to be sitting with the wrong contact, an unclear owner, a new facility contact, or a manager-level approval need. 5. Weak follow-up discipline - the quote is plausible, but the touch pattern is thin, late, generic, or absent. 6. Competitive pressure - notes or activities mention outside bids, vendor comparisons, price-shopping, RFP process, or competitor review. 7. Likely dead or low priority - no evidence of live pain, customer engagement, recoverable timing, or recent activity. If two signals apply, choose the one with the strongest evidence as primary and list the other as secondary. Recovery Score Assign a recovery score from 0-100. The score should estimate: How worth chasing is this estimate this week? 80-100 = Chase Now. Strong evidence of live pain, customer engagement, or recoverable timing. Action this week. 60-79 = Worth Follow-Up. Good evidence, but not urgent or not fully clear. Follow up in the next 1-2 weeks. 40-59 = Triage. Some signal, but the next step is validation, clarification, or deciding whether to keep open. 20-39 = Low Priority. Weak evidence. Do not spend much sales time without new information. 0-19 = Close Out. Likely dead, unsupported, expired without engagement, or not commercially worth chasing. Increase score for recent customer response, recent proposal review or meeting, open operational issue tied to the estimate, budget or approval timing, explicit revision or technical clarification needs, high urgency from service context, nearing expiration with customer engagement, and manager involvement that could clear an obstacle. Decrease score for no follow-up after quote sent, no customer response, expired quote with no recent activity, resolved service issues, Monitoring or unknown service state without customer engagement, noncommittal or competitor notes without engagement, low urgency, weak service context, and data too thin to justify action. Do not score based on quote amount alone. Confidence Level High = readiness table plus at least two source types support the recommendation. Medium = readiness table plus one source type support the recommendation, or evidence is useful but thin. Low = recommendation is mostly based on sparse activity or missing context. Use low scores unless a discovery action is clearly justified. Output Format Produce a table sorted by recovery score descending. Columns: Rank, Estimate ID, Customer / Facility, Branch, Category, Quote Amount, Owner, Quote Age, Expiration Status, Recovery Score, Priority Tier, Primary Recovery Signal, Secondary Signal, Why It Is Worth Chasing Or Closing Out, Risk It Is Already Dead, Recommended Outreach Angle, Suggested Internal Owner, Internal Support Needed, Next Action, Confidence. After the table, include an executive summary in 4-6 sentences: - Number of estimates in each priority tier. - Total quoted dollars in Chase Now and Worth Follow-Up. - The top 1-2 recovery patterns. - Any major data caveat. - One sentence on why the top 10 are not simply the biggest 10. End with this exact sentence: Paste the Pattern View prompt into this same chat to continue. Handling Thin Or Messy Data - If an estimate has no customer response and no related service pain, it should usually be Low Priority or Close Out. - If an estimate has strong service pain but weak activity, it may be Triage or Worth Follow-Up depending on urgency. Strong service pain means the related active issue flag is Yes, not merely that an old service row exists. - If the latest service state is Resolved, Monitoring, or unknown, do not describe it as active pain. It may still be useful context, but it should not lower the Risk It Is Already Dead by itself. - If an estimate has customer response but no clear next action, classify the recovery signal based on the obstacle: budget timing, technical clarification, decision-maker gap, or manager escalation. - If source rows conflict, explain the conflict and lower confidence. - If the readiness table is missing, stop and ask me to run the Follow-Up Readiness Calculator first. Do not draft customer emails, recommend automated follow-up, add external research, invent evidence, turn this into a rep performance review, or end with offers to drill down further.

4.Pattern View Prompt

Paste this after the ranked chase list appears in the same chat. It groups the diagnosis for a pipeline meeting.

Now I want a pattern view across the stale-estimate analysis you just produced. Use the same source files, readiness table, and ranked chase list already in this chat. Do not introduce new facts. Do not rerun the whole analysis from scratch. Group what you already found so a sales or operations leader can decide what to do in the next pipeline meeting. Rules - Use only evidence already in the chat. - Use exact estimate IDs, customer names, owner names, branches, categories, and dollar figures from the ranked table. - If a grouping has only one estimate, say it is a single case, not a pattern. - Do not call exposure a performance problem. Branches and owners with bigger books may naturally carry more dollars. - Do not invent new recovery signals beyond the taxonomy used in the prioritizer. - Do not use external research. - End with the action list. No follow-up offers or conversational filler. What To Produce 1. Priority Tier Summary Group all estimates by priority tier: - Chase Now - Worth Follow-Up - Triage - Low Priority - Close Out For each tier, show number of estimates, total quoted dollars, average quote age, and a 1-sentence read. 2. By Recovery Signal Group estimates by primary recovery signal. For each signal, show number of estimates, total quoted dollars, highest-scoring estimate, most common next action, and a 1-sentence read. Sort by total quoted dollars descending. 3. By Branch Group estimates by branch. For each branch, show total estimates in this dataset, number in Chase Now + Worth Follow-Up, quoted dollars in Chase Now + Worth Follow-Up, dominant recovery signal, and a 1-sentence read. This is an exposure view, not a performance review. 4. By Owner Group estimates by suggested internal owner from the ranked table. For each owner, show total estimates they own in the ranked table, number in Chase Now + Worth Follow-Up, quoted dollars in Chase Now + Worth Follow-Up, dominant recovery signal, and a 1-sentence read. Again: exposure, not blame. 5. By Estimate Category Group estimates by category using only categories present in the ranked table. For each, show total estimates, number in Chase Now + Worth Follow-Up, quoted dollars in Chase Now + Worth Follow-Up, dominant recovery signal, and a 1-sentence read. 6. By Expiration Window Group estimates by expiration status/window: - Expired - Expires in next 14 days - Expires in 15-30 days - Expires in 31-60 days - Expires in more than 60 days For each, show number of estimates, total quoted dollars, number in Chase Now + Worth Follow-Up, and a 1-sentence action read. Coaching Lens After the grouping tables, write one short paragraph answering: If I could only have one coaching conversation this week with one branch manager or account manager, who would it be with and what would it be about? Be specific: - Name the person. - Name the pattern. - Cite the estimate IDs and dollar amounts from the ranked table. - Explain why this conversation this week has the highest practical value. If the data does not support one clear answer, give the top two candidates and the tradeoff. Top 5 Monday Actions End with the top 5 actions for Monday morning. Each action should include rank, estimate ID, customer / facility, quote amount, primary recovery signal, single action to take this week, suggested internal owner, and internal support needed if any. These should be actions a human can take this week: - schedule a manager call - send technical clarification - ask for budget timing - confirm whether the issue is still active - close out a dead estimate - schedule a site review - follow up on a revision Do not include long commentary after the list. End with the fifth action. Do not summarize the full ranked table again, draft customer-facing copy, suggest a dashboard or connected product, use external research, or end with questions or offers to continue.

5.Go Deeper

Use these after the Pattern View if you want to pressure-test the output.

  • Show me the five estimates where the ranking depends most heavily on account notes. For each one, explain what would change if the note were ignored.
  • Which estimates would drop by at least 20 recovery-score points if the latest service issue were Resolved instead of active?
  • Give me the close-out candidates where the evidence is strongest. I want the team to stop wasting time on those first.
  • Which ranked estimates need manager involvement rather than another standard follow-up email?

6.Next Steps

Before you act, spot-check the readiness math for a few rows against the source files. Pay special attention to the latest customer touch, customer reply count, active issue flag, and whether the suggested owner is an internal teammate.

The ranked list should include low-priority and close-out rows. If everything looks urgent, the AI is selling the queue back to you instead of helping you make choices.

Back to the episode