Tag: GoHighLevel Reporting

  • Moving a Franchise Phone Number in GoHighLevel: What Stays Behind

    Moving a Franchise Phone Number in GoHighLevel: What Stays Behind

    A franchise branch is closing. The phone number printed on its vans, business cards, and customer invoices is staying with the business. The plan sounds simple: move that familiar number into another GoHighLevel location and let the receiving team answer it.

    There is a catch: HighLevel can move an eligible number between subaccounts in one agency, but the prior contacts and conversations stay in the source account. Messaging registration and call settings need their own checks. The new branch might have the right number in its phone list and still be unready for the next caller.

    If you need to move a GoHighLevel phone number between subaccounts, the useful decision happens before anyone clicks Move Numbers. What must the destination be able to do on the first call, and what information will remain behind?

    First, identify which kind of number move you’re making

    This article covers one specific case: reassignment of an eligible number between two existing subaccounts under the same HighLevel agency. It does not cover transferring an entire subaccount to another agency or porting a number from an outside carrier.

    According to HighLevel’s September 4, 2026 Move Numbers guidance, the agency-level tool supports LC Phone to LC Phone moves. It also supports Twilio to Twilio moves when both subaccounts share the same Master Twilio account. The in-app route currently supports US and Canadian numbers, with up to ten eligible numbers in one move.

    Those conditions matter when a franchise restructures. Two branches can share a brand and still sit under different agencies or phone providers. A Twilio number under another Master Twilio account is not eligible for the same in-app transfer. A provider change between LC Phone and Twilio belongs to a different process.

    HighLevel’s phone-number migration and porting guide explains the other paths. Use that guide when the agency relationship, provider, or country does not match the same-agency tool. BrandLyft’s multi-location setup checklist covers the wider branch rollout. This move assumes the receiving branch already has its own subaccount.

    The number moves. Five kinds of history and setup do not simply follow it

    Imagine an established branch transferring its main line to a nearby office after the original location closes. The new office knows the telephone number, but a returning customer expects somebody to recognize an unfinished estimate from last month.

    Moving the number alone will not put that estimate conversation in the destination inbox. HighLevel separates the phone number’s assignment from other records stored against a subaccount. That is the central boundary to plan around.

    ItemWhat the move establishesWhat to do separately
    Phone numberEligible number is reassigned to the destination subaccountConfirm the exact number appears in the intended location
    Contacts and conversationsCustomer records and prior threads are not copied with itDecide how authorized staff will find needed history
    AnalyticsPast account reporting does not move with the numberPreserve source-period references before access changes
    Recordings and voicemailsHistorical assets do not automatically transferRetain permitted assets while the source is accessible
    Messaging registrationThe destination’s A2P registration is not carried overConfirm the receiving location and number are ready for messaging
    Call settings and workflowsDo not assume every number setting, assignment, or automation works afterwardReconfigure where needed and run live-path tests

    A familiar number can make a customer assume the person answering has the former location’s account notes, even though those records are still elsewhere. When that assumption is wrong, the receiving team needs a legitimate way to retrieve context. The move did not bring those records over.

    Decide what the receiving team can see before cutting off source access

    Find the relationships that remain active: appointments, open estimates, service issues, unpaid invoices, and promised callbacks. Then establish where those records currently live and which employee can answer questions about them after the transition.

    Commuter bicycle secured in a repair stand with its front wheel removed and tire-service materials on a nearby workbench.
    A familiar number may reach a new branch while unfinished customer work and its history remain associated with the original location. The receiving team needs an approved way to retrieve that context.

    A franchise may keep approved access to the old location for a period. It may retain permitted exports or move selected customer information through a separate process. Each option is a separate data and permission decision. Move Numbers does none of that. Nor does moving the number give staff permission to copy conversations or ignore communication preferences.

    Keep source references with enough detail to explain what happened. If a customer says, “I left a voicemail yesterday,” staff need somewhere to look. Who can access the older voicemail, and when does that access end? An internal owner and an accessible record are better than a promise that someone will somehow find the old thread.

    BrandLyft’s CRM data migration article addresses broader record-selection decisions. For this cutover, ask what history a caller will reasonably expect the next branch to have.

    Check destination messaging registration before relying on texts

    For eligible US local numbers, A2P 10DLC status belongs to the subaccount and its registration. It does not follow the digits alone. After the move, check the destination’s approved brand and campaign, then link the number where required by the messaging setup. A number appearing in the destination’s Phone Numbers screen does not prove it can send compliant business SMS.

    HighLevel’s September 8 A2P number-linking instructions describe the number-level check. In the destination, review the approved campaign and link the number when needed. Then check for the expected A2P Verified indicator. An approved campaign and a linked number are two different conditions.

    Toll-free messaging takes another path. Do not assume a toll-free verification automatically accompanies a transferred number; confirm its status in the receiving account. International and other messaging configurations have their own requirements. Avoid testing outbound SMS through an account that has not met the applicable registration and permission rules.

    Moving a phone number does not create fresh permission for new automated texts, even if the receiving branch serves the same customers. The destination’s consent, opt-out, and communication-preference handling needs review apart from number ownership. A missed-call text-back workflow is particularly easy to overlook because it may send without an employee touching the conversation.

    Write down the call path customers already use

    A franchise number may ring several places depending on the hour: the front desk during business hours, an answering service after closing, or a backup employee when the desk is busy. When nobody answers, callers hear a voicemail greeting, and a separate workflow may offer a callback by text. The same number could also appear as outbound caller ID for staff.

    Inventory the working behavior before moving it. Record forwarding, ring behavior, assigned users, voicemail, recording, whisper messages, business hours, and missed-call handling. Add the workflows that select or reference that number. Then name the intended destination behavior for each one.

    The new branch might need a different greeting and routing rule, which is reasonable if the team planned it. Trouble starts when staff assume the old setup follows the phone number unchanged.

    Check what external systems still publish or reference the number, too. A website, Google Business Profile, directory, ad, or old invoice may still send people to it. Keeping the digits can preserve that entry point, but it does not make the destination’s answering workflow correct.

    The wider question of which branch should own each new lead belongs to BrandLyft’s GoHighLevel lead-routing guide for franchises. This move is smaller: prove that calls to one number reach the intended team.

    Choose the cutover window based on call coverage, not convenience

    An admin may have time to make the change on Friday afternoon. The business might not have anyone available afterward to test every route and fix a failed callback. A less busy window is useful only if someone can stay accountable through the checks.

    Assign the HighLevel admin, test-call recipient, SMS registration owner, and final approver before the move. Someone else should own provider escalation if the setup fails. If a route fails, staff need a supported fallback for customer contact.

    Do not build the plan around a guaranteed zero-interruption cutover. HighLevel does not promise that a moved number arrives with its old routing, messaging approval, and history already usable. Nor does a phone-number move provide a one-click restoration of customer context.

    Set a short validation period after the transfer and tell the receiving team what will be checked. Someone should record the first failed test without marking the transition complete merely because the number shows up on screen.

    Use the in-app move only after the preflight is signed off

    For an eligible same-agency move, go to Agency Settings and open Phone Integration. Under Sub Account Settings, choose Move Numbers. Choose the source and destination subaccounts, select the eligible number or numbers, review the destination, and complete the move. The current interface permits up to ten numbers in one operation.

    Pause before the final action. The source and destination Location IDs should already be in the change record. Confirm the exact number, country, phone provider, and receiving branch against that record. Similar location names are a poor substitute for IDs when the franchise operates several offices in one region.

    Once the number appears in the destination, the transfer itself may be complete. The customer-facing cutover is not. That second decision belongs to the acceptance tests below.

    Phone Number Move Acceptance Sheet

    Use one sheet per moved number, even when several numbers are transferred together. The purpose is to prevent a successful tool action from becoming an unverified declaration that the branch is ready.

    Record the number in international format, both Location IDs, agency, provider, country, planned window, and actual move time. Add test owners and the release approver. Keep any registration evidence and historical-data access decision attached to the same record.

    Acceptance checkEvidence to recordRelease condition
    Identity and eligibilityNumber, provider, source/destination Location IDs, countryCorrect pair and supported move confirmed
    Historical contextOld contact/thread access owner and permitted retained assetsActive customer history has an agreed access path
    Destination numberPost-move number-list verification and timeCorrect number appears in correct location
    Inbound and outbound voiceTest caller, time, answered by, displayed outbound caller IDBoth directions reach intended people
    Unanswered and after-hoursVoicemail, forwarding, fallback and callback resultsCoverage matches the branch’s operating rule
    Messaging registration and consentA2P/campaign or toll-free status; permitted test recipientApplicable approval and number linking verified
    Inbound and outbound SMSTest time, sending number, receiving account and delivery resultBoth directions work where SMS is enabled
    Release or holdExceptions, owner, next check time, approving operatorBlocking failures resolved or covered by an approved fallback

    The sheet should allow three outcomes for every test: Pass, Blocked, or Not applicable with a reason. A blank SMS result is not a pass. A branch that does not use SMS should say so rather than inventing a successful messaging test. Review the final release decision once every required row has an owner and result.

    Run the tests from outside the destination, not just inside the settings screen

    Start with an inbound call from an external test handset. Check whether the right location receives it and whether the intended staff member answers. Then make an outbound call and confirm which caller ID the recipient actually sees. Outbound-number preferences can differ from what the team expects, especially when users have access to more than one number.

    Next, test an unanswered call. Listen to the voicemail or forwarding behavior rather than reading the configuration and assuming it is correct. For an after-hours path, use an approved test window or a safe configuration review. Do not interfere with real callers. Any missed-call text-back path should be included when messaging is allowed.

    For SMS, use an authorized test contact after checking the destination’s registration and consent requirements, then send an inbound message and verify the receiving account. Then send an outbound reply through the intended workflow or operator and verify the recipient sees the right sender. Record failures and their error details, not just a checkbox.

    Finally, inspect a test conversation and associated task or alert. Does the destination team see the message, know who owns the reply, and receive the expected notification? The tests should reflect real branch behavior. One call from the admin who moved the number is not enough.

    A failed test changes the release decision

    Voice may work while SMS fails because the number still lacks the appropriate campaign link in the destination. That is an incomplete handoff. Keep that messaging path on hold while the registration issue is resolved. Do not send unregistered automated texts simply because calls are now reaching the correct office.

    If calls reach the wrong employee, check forwarding, assignments, and the number’s configuration first. If customers cannot reach the destination, use the planned escalation path and an accurate temporary contact method. Moving the number back is not a guaranteed rollback. It could require another eligible move, setup work, and the same tests.

    If an eligible LC Phone move fails, HighLevel asks for both Location IDs and the affected numbers when contacting Support. Keep the failed action, error, time, and support reference in the change record. When the provider is unsupported, use the applicable migration process instead of repeating the failed attempt.

    Do not declare the cutover complete while the receiving branch is unready

    The destination must own the number, the intended team must answer its calls, and any active messaging path must have its required registration. Older customer context needs an agreed access route, too. An authorized operator should sign off on any remaining exceptions.

    That is how a familiar franchise phone number can keep doing its job after the office behind it changes. The number itself is only one part of the handoff.

    The cutover decision

    The number moved. Is the branch ready to answer it?

    If the move affects calls, missed-call texts, or active conversations, a discovery call can help identify the relevant review scope.

    Before release: Voice tested  •  Messaging verified  •  History access assigned

    Discuss your number cutover

    Exploring the broader franchise setup? See BrandLyft’s GoHighLevel for Franchises service.

  • Are Angi Leads Worth the Cost? Track What Won Jobs Actually Earned

    Are Angi Leads Worth the Cost? Track What Won Jobs Actually Earned

    The estimator got the job. In GoHighLevel, the opportunity is marked Won, with a $4,800 value beside it. That looks like a good outcome for a lead the company paid to receive. But the work may still be on the schedule, the final invoice may be different, and nobody has checked what it cost to complete.

    This is where Angi lead ROI for contractors becomes a different question from lead response or estimate booking. A won estimate can be good news. It cannot tell you whether the Angi lead was profitable. To answer that, the original charge needs to meet the completed-job record and the actual financial result.

    BrandLyft’s Angi and HomeAdvisor lead follow-up guide covers what happens from a paid inquiry through the estimate process. Here, the estimate decision is already recorded. We need to find out what the business earned, what it spent, and which numbers are still unconfirmed.

    Go straight to the paid-lead profitability worksheet if your Angi charges and job records are ready.

    A Won opportunity is not the same as a completed, paid job

    HighLevel’s Lead Source Report, updated October 6, 2026, groups opportunities by their recorded source, status, and value. It lets a user open the underlying opportunity records and see missing sources. That is useful when a contractor wants to know what happened to the inquiries coming from Angi.

    But the report counts opportunities, not unique purchased lead charges. One customer with three opportunities can appear three times. And an opportunity value might have come from the initial estimate, a salesperson’s update, or an automation. HighLevel’s own reporting FAQ says that its dashboard revenue based on Won opportunities is the sum of their monetary values, not the payments actually received.

    A contractor needs three different confirmations after marking a deal Won. Did the customer accept the scope and price? Was the job completed and its final revenue recorded? How much was collected, and what did the work actually cost?

    Those facts may live in field-service software, invoicing tools, payroll records, or the accounting system. A CRM report can point you toward the jobs. It does not automatically settle the accounts.

    Start with charged Angi leads, not every marketplace record

    Before calculating cost per won job, count what the contractor actually paid for. In Angi’s current terminology, an Opportunity is a homeowner project the pro can review. A lead is a connection that supplies contact details and may trigger a fee. The billing arrangement depends on how the business receives leads and on its account terms. A GoHighLevel opportunity is a separate CRM sales record.

    Those distinctions were important to intake in the earlier article. Here they matter for a narrower reason: the denominator for paid-lead economics must reflect charges, not the number of GHL opportunities, contact profiles, or marketplace projects someone opened.

    Angi’s billing guidance says lead pricing varies by task, location, and demand. Subscription and pay-per-lead arrangements also have different billing patterns. Pull the actual statement for the period. Do not multiply lead count by a supposed average Angi price from another contractor’s article.

    A delivery can also reach your CRM more than once without creating another charge. Angi’s partner API reference describes a unique lead ID, leadOid, a service request ID, srOid, and a fee field. It also documents delivery retries when an endpoint fails. The available integration data may differ by connection, so check your receiving records rather than assuming those fields were preserved.

    Keep the billed lead and its source identifier once. A second webhook delivery should not create a second purchase in the profitability worksheet. If Angi actually billed the same lead twice, preserve both billing lines and investigate the credit separately; hiding the second charge as a technical duplicate would understate spend.

    If the source IDs never reach your CRM, BrandLyft’s earlier Angi integration guide explains the receiving connection. The financial check here needs those purchases and their charges to remain traceable after the first handoff.

    Match one lead to its jobs without multiplying the customers

    A person may call about gutter work in March and buy a roof repair in July. That’s one contact with different service requests. Another homeowner may accept an estimate that turns into two separately billed jobs. The financial record has to handle both situations without inventing more leads or more customers.

    The matching rule should start with the paid lead identifier, the original service request, and the GHL opportunity ID. When the estimator records acceptance, add the actual job ID from the system that controls scheduling and billing. Save that relationship even if the office later renames the opportunity or the customer returns for different work.

    Where one paid inquiry leads to several genuine jobs, link each job to the original lead, while keeping the lead fee only once. If two different paid inquiries may have influenced the same job, mark the attribution as disputed. Pick a documented primary attribution rule or a clearly identified allocation method before assigning revenue. Counting the full job under both leads would make the channel look twice as productive.

    There will be imperfect matches. Some job systems have no Angi lead ID, and a technician may open a fresh customer profile. Use the address, job reference, contact history, and acceptance paperwork to investigate. Mark the link Verified, Probable, or Unknown. That last category is a reporting gap, not a zero-dollar job.

    Subtract only credits you can actually support

    A paid lead that does not turn into work is not automatically eligible for a credit. Angi’s lead-credit guidance describes possible reviews for problems such as invalid contact details, service mismatches, wrong locations, or duplicate charges. It also excludes ordinary outcomes such as a homeowner choosing another contractor. Eligibility and deadlines depend on the current account rules.

    Separate the stages in your cost record. A requested credit is not an approved credit. An approved credit is not necessarily cash refunded. Angi says issued credits are applied toward future lead charges, with expiration conditions. Subscription accounts have different treatment.

    For financial reporting, record the original fee, credit status, credited amount, and when that value was actually applied. Attribute it to the original charged lead only once, while retaining the later statement where the credit appeared. Otherwise you might subtract the same adjustment from the old lead cohort and again from next month’s purchase total.

    Include any fixed Angi account expense or other directly attributable acquisition charges under a documented allocation rule. A contractor with a subscription should not treat a nominal per-lead field as the whole channel cost if other required fees were paid.

    What the job record must prove after the estimate is accepted

    Once a job is sold, the opportunity value becomes a reference point. It is not the final number to place in a profit calculation.

    Take a quoted roof repair worth $4,800. The scope changes after work begins, and the final customer invoice is $5,150. The crew uses $2,100 in materials, $1,350 in direct labor, and $300 in subcontractor costs. Before other direct job expenses, that leaves $1,400 of job gross profit based on the final revenue figure, assuming the revenue is properly recognized.

    That example still says nothing about whether the customer paid the invoice. Nor does it include the cost of obtaining the lead. If the finance team cannot establish the job’s actual direct costs, the gross-profit field should remain unverified instead of quietly treating missing costs as zero.

    For each matched job, record its accepted date, completion date, final invoice, recognized job revenue, cash collected, and direct job costs. Direct costs normally include job labor, materials, subcontractors, and other costs directly attributable to doing that job under the business’s accounting method. Keep lead purchases and related acquisition costs separate. Those are subtracted after job gross profit to show what remains from the lead cohort before other overhead and taxes.

    This is also why a payment is not interchangeable with revenue. A deposit may arrive before completion. An invoice may remain unpaid after a completed job. Track both, and have whoever owns the books confirm which amounts count as recognized revenue.

    A worked example: 20 charged leads, five finished jobs

    The figures below are hypothetical. They are not BrandLyft client results or Angi pricing benchmarks. In this example, each paid lead has a final estimate disposition, and every won job is completed. One invoice is not yet fully collected.

    Cohort measureHypothetical result
    Charged Angi leads20
    Original lead fees (20 x $75)$1,500
    Two confirmed, applied $75 credits-$150
    Net lead spend$1,350
    Qualified estimates completed8
    Won jobs, all subsequently completed5
    Recognized revenue from completed jobs$14,500
    Cash collected so far$13,000
    Verified direct job costs$9,300
    Job gross profit$5,200
    After net lead spend, before other overhead and taxes$3,850

    Cost per qualified estimate is $1,350 divided by eight, or $168.75. Cost per won job is $1,350 divided by five, or $270. Those denominators include the cost of unsuccessful purchased leads. Using only the five leads that won jobs would make acquisition appear much cheaper than it was.

    The $5,200 job gross profit comes from $14,500 in recognized revenue minus $9,300 of direct job costs. Subtracting the $1,350 in net acquisition spend leaves $3,850 before other operating costs and taxes. That is an acquisition-adjusted contribution, not the company’s final net profit.

    There is still $1,500 in revenue not collected in this example. The recognized-revenue calculation and the cash position therefore tell different stories. Before spending more on Angi, review that unpaid balance. The projected financial result is not cash already available.

    Don’t compare fresh leads with jobs that have had time to finish

    Roofing jobs bought through October leads may not finish until November. Remodeling estimates can also take weeks to turn into firm decisions. If you divide October charges by only October’s completed work, the source may look poor simply because the jobs have not had time to close.

    Group purchases by the date the charged lead arrived. Then follow each cohort through estimate, acceptance, completion, and collection. Show the reporting as-of date, the number of still-open jobs, and the number of completed jobs with missing cost or payment evidence.

    Partially installed kitchen cabinets with unfinished toe-kick trim and installation materials in a residential remodeling project.
    A purchased lead can turn into real work before the job is finished. Profitability comparisons need to account for jobs that have not yet reached a verified financial outcome.

    Compare cohorts at equivalent maturity, such as the same number of days after lead delivery, or wait until each cohort is sufficiently resolved. The appropriate window depends on the trade and its real job cycle; no universal 30-, 60-, or 90-day cutoff can make slow projects instantly comparable.

    Also compare like with like. A set of emergency pest-control jobs and a set of full roof replacements may carry very different margins and delays. Service type, territory, and billing arrangement can explain differences that a single Angi-wide total conceals.

    Contractor Paid Lead Profitability Worksheet

    Start with one line per billed lead and a separate line for each real job. Keeping those ledgers apart prevents the same lead fee from being repeated every time one customer buys another service.

    Paid-lead ledgerCompleted-job ledger
    Lead ID, service-request ID, arrival date and tradeJob ID and linked source lead ID
    Actual billed fee and account-cost allocationEstimate acceptance and completion dates
    Credit status, credited amount and application dateFinal invoice and recognized job revenue
    Qualified estimate result and GHL opportunity IDCash collected and any amount still due
    Original source, match confidence and exceptionsDirect job costs, gross profit, source confidence and lead-to-job lag

    A completed row should let someone open the original Angi charge, the corresponding estimate, the job record, and the payment evidence. Use the same lead ID on the job ledger only when the link is supportable. Leave uncertain matches flagged for investigation.

    From the completed records, calculate net acquisition spend, cost per qualified estimate, cost per won job, verified completed-job gross profit, and the amount remaining after acquisition expense. Publish those numbers with the cohort window and exclusions. This worksheet is an operating method, not a claim that HighLevel natively reconciles all those systems.

    What to do when a source looks expensive

    A poor result does not always mean every Angi lead should be stopped. The place where the numbers go wrong matters.

    If valid paid inquiries rarely receive a completed estimate, check contact attempts and estimator coverage before making a profitability judgment. Those leads may be losing their chance long before pricing becomes relevant. If estimates are completed but rarely accepted, review trade fit, quoting, and sales follow-through.

    Another possibility is that jobs sell but leave little gross profit. That calls for looking at job scope, quoted prices, direct costs, and the types of projects being purchased. More aggressive follow-up will not repair a consistently underpriced job.

    When certain trades or ZIP codes repeatedly show weak financial results, restrict the lead types or areas you buy and measure the next completed cohort. If the data is incomplete, repair the source-to-job link before treating an absence of recorded profit as proof of a loss. And if the channel still fails an appropriate margin test after the reporting and sales issues are understood, stopping or reducing spend is a reasonable business decision.

    Follow the fee past the Won column

    At the estimate stage, the question is whether the business can turn a purchased inquiry into a real opportunity. After the job closes, it changes. Which Angi charges produced work, which jobs were completed, what did those jobs earn, and how much of that money was actually collected?

    GoHighLevel can help identify the original opportunity and the recorded source. A completed-job and finance record must supply the rest. Once those records meet, the contractor can decide whether to keep buying the same lead types, change the follow-through, or put the money somewhere else.

    Before the next Angi purchase

    You have the Won count. Can you prove the profit?

    An Angi charge, a finished job, and the payment record should point to the same work. When that trail stops at a CRM opportunity, it may be time to review how your systems exchange the result.

    PAID LEAD JOB RECORD PAYMENT + COSTS

    Discuss lead-to-job tracking

    Want to see the implementation approach first? Explore Revenue System Build.

  • When a Franchise Changes a KPI Definition – How to Keep GoHighLevel Reports Comparable

    When a Franchise Changes a KPI Definition – How to Keep GoHighLevel Reports Comparable

    A franchise reports 100 booked appointments for September and 95 for October. The dashboard shows a decline. But September counted bookings that were later cancelled, while October excludes them. Leadership is comparing two different measurements under the same label.

    Franchise KPI definition changes can make a location appear to improve or fall behind without a matching change in its actual work. This is particularly easy to miss when several GoHighLevel locations feed a corporate report. Someone updates a filter or a workflow rule, and the chart keeps looking familiar.

    The question is not which KPIs a franchise ought to track. BrandLyft’s multi-location reporting guide covers that decision. The problem here starts after leadership has chosen a metric and somebody wants to change what qualifies for it. Before the next report goes out, the team needs to decide what happens to the old numbers.

    One changed booking rule can reverse the trend

    Consider a fictional two-month example. In September, the franchise created 100 appointments. Twenty had been cancelled by the reporting cutoff. October produced 110 bookings, with 15 cancelled by the same cutoff. There is no claim here about BrandLyft client results; these figures simply show what a definition change does to a comparison.

    Under the original rule, all appointments booked during the month count, including those later cancelled. The comparable totals are September 100 and October 110, a 10% increase.

    Under the revised rule, appointments cancelled by the month-end cutoff are excluded. September becomes 80 and October becomes 95, an 18.75% increase on that basis.

    Now suppose the franchise leaves September at 100 but publishes October at 95. The displayed result is a 5% decline. Nothing in that comparison tells leadership whether booking activity weakened. It mainly reveals that the definition changed between the two months.

    Even the cancellation cutoff needs attention. Does the metric describe the appointment’s status at the end of its booking month, or whatever status appears when somebody opens the dashboard later? Those are not interchangeable rules.

    Write down the old rule before anyone edits a report

    The existing formula is often described casually: “We count appointments booked.” That is too loose for a change request. The record needs to say what one booking represents, which calendars qualify, and the date used to place it in a reporting month.

    For the example above, the old rule is specific: count each distinct appointment first created during the reporting month, including appointments cancelled by that month’s reporting cutoff. The new rule keeps the same booking date and population but excludes cancellations recorded by that cutoff.

    That also means settling the treatment of reschedules, no-shows, appointments created by staff, and repeat bookings for the same person. A rescheduled appointment might generate another event in a connected tool. It should not automatically become a second booking if the metric is meant to count unique booking decisions.

    A qualified-lead definition needs the same care. Changing from “contactable inquiry” to “inquiry inside the service area with a confirmed job type” changes who qualifies. Record the inclusion and exclusion rules, not just a revised pipeline stage name.

    Where reporting uses a ratio, capture both its numerator and denominator. A better-looking booking rate means very little if the counted bookings changed but the lead population did not, or the other way around.

    Find everywhere the definition is already being used

    The change request may begin with one corporate dashboard, but the number may also appear in regional reports, emailed summaries, location scorecards, incentive calculations, and management presentations. Some teams may use it to decide which branch receives more ad budget.

    GoHighLevel can hold appointments in several calendars and opportunities in separate pipelines. A franchise may also receive a booking event from another scheduling or operating system. Make an affected-location list and name the source used by each one. Do this before changing shared filters.

    The location review needs to identify the reporting assets, not just their names. Which calendar groups supply the booking count? Are opportunity stages being treated as appointments? Does one location record cancellations in GHL while another updates them only in external software? Could a workflow change alter the status used by the report?

    Where available in the account, HighLevel supports custom metrics with formulas, filters and date properties. That gives operators ways to calculate business-specific measures, but the same metric can become unreliable when its underlying fields differ by location. HighLevel also notes that formulas moved with Snapshots depend on the destination account having the required data sources and fields.

    Where another platform owns the booking or job event, document that boundary rather than treating an incomplete GHL record as proof nothing happened. BrandLyft’s franchise integrations guide deals with those wider system boundaries. This change request only needs the sources that affect the KPI being revised.

    Choose an effective date or recalculate history

    There are two legitimate ways to release a changed definition. Neither should be selected just because the dashboard builder makes it easy.

    Prospective change: the new rule takes effect on an approved date. Earlier periods retain their original basis. Leadership sees a visible break in the series, and comparisons across it carry a note. This is often the safer treatment when old cancellation events or booking timestamps cannot be reconstructed.

    Historical restatement: the team recalculates selected earlier periods using the new rule. That requires trustworthy source records, the same time basis, the same inclusion rules, and documented checks for every affected location. Keep the originally published numbers and label the restated series. A restatement should not quietly overwrite the only copy of the earlier report.

    A third option can help during a transition: publish old-rule and new-rule totals beside each other for a limited overlap period. That reveals the effect of the definition itself before the new version replaces the old one in routine reporting.

    For whichever route is approved, specify the effective date and time zone. A midnight change in one region can land on a different calendar date elsewhere. Also agree on the reporting cutoff. A “September booking” measured as of September 30 is different from that same booking judged by its current status in November.

    Check the records that actually survive in HighLevel

    Being able to export today’s opportunity list does not mean every earlier stage or appointment status can be rebuilt. HighLevel documents CSV exports from Opportunity Smart Lists, but a current-record export is not automatically a time-stamped history of each change.

    There is another reporting trap. HighLevel’s Opportunities Widgets documentation warns that a latest status-change date can reset when a record is reopened. A report using that property may show a different historical result later. Created dates, outcome dates and status-change dates answer different questions.

    HighLevel also provides audit-log CSV exports for authorized users where the feature is available. Its current guidance says in-app audit records are retained for 60 days and completed export files for 30 days. That makes a timely export useful, but it is not a promise of complete appointment-event history or perpetual access.

    Review the actual fields available in each location and any connected booking system. When cancellations were overwritten, records were deleted, or historical status timestamps never existed, mark the period as not safely reconstructable. Changing the formula cannot restore an event that nobody recorded.

    Survey technician brushing dirt from a brass benchmark embedded in older sidewalk concrete beside a recently resurfaced section.
    A preserved survey benchmark remains a reliable reference after its surroundings change. Historical KPI comparisons likewise depend on records that still exist and can be verified.

    Prove the new result with records from both sides of the date

    A test should use recognizable source records, not only a dashboard total. Pull a small set of appointment IDs from the old period and the proposed new period. For each one, record what the old rule counts, what the new rule counts, and why.

    • Cancelled before cutoff: it counts under the example’s old rule but not its new rule.
    • Cancelled after cutoff: check that a frozen month-end number does not change merely because the current status later changed.
    • Rescheduled booking: confirm the defined unit is counted once, even if a connected calendar produces another event.
    • Location with different calendar mapping: verify the same eligibility rule reaches the correct source fields.
    • Unmapped location: record that its result is unavailable for comparison rather than displaying a misleading zero.

    Test both the location-level detail and corporate total. A correct total for one branch cannot establish that every branch uses the revised rule. If a location fails, keep it out of the comparable roll-up until its exception is understood and approved. Show the excluded location and the reason, so leadership can see the limits of the report.

    One more detail can affect the date test. HighLevel’s custom reporting guide describes timezone differences between the browser-based builder and scheduled email previews. Check the actual generated report at the agreed reporting cutoff, not only the screen in the editor.

    Keep a one-page KPI Definition Change Record

    The approval record does not need to be long. It does need to exist outside the changing dashboard settings. Use the following field list as a one-page record for each metric revision. A named owner should complete the entries and attach the evidence before the change goes live.

    Record fieldRequired entry
    Metric and versionExact displayed KPI name, unique change ID, previous version and proposed version
    Previous ruleCounted unit, filters, inclusions, exclusions, date property, reporting cutoff and calculation
    Revised ruleEvery changed condition stated explicitly, including cancellation or qualification treatment
    Effective dateApproved start date, time, reporting time zone and first affected report
    Affected scopeLocation IDs, pipelines, calendar groups, external sources and downstream reports
    History decisionProspective break, historical restatement or dual reporting; periods covered and evidence supporting the choice
    Source gapsMissing fields, unreconstructable periods, unmapped locations and exclusions from the corporate total
    TestsSample record IDs, expected and actual results, pass/fail status and reviewer
    Release and rollbackDashboard/report changes, published comparison note, saved previous configuration and rollback trigger
    Named approvalFranchise operations owner, reporting owner, implementation owner, approval date and communicated locations

    The record belongs with the reporting change ticket or other corporate documentation, where both the old definition and the approval can be found later. It is not a claim that GoHighLevel natively versions KPI definitions or maintains this approval form.

    Make the break visible before reporting growth or decline

    A changed number may feed a corporate slide, a regional ranking, or a decision about coaching and budget. Publish the revised definition and its treatment of history wherever those comparisons are used. If old months remain on the previous basis, label them as such.

    For the fictional booking example, the executive note can be plain: “From October, booked appointments exclude cancellations known by month-end. Earlier months use the previous inclusive definition and are not directly comparable.” If history was recalculated instead, say which months were restated and retain the originally published values.

    Locations that have not mapped the revised rule need an explicit exception or a separate reporting group. Their missing results are not zeros. Likewise, a blank calendar field does not prove the branch booked nothing if its appointments live in another system.

    Check what else uses the metric before releasing it. Reporting emails, scorecards, incentive thresholds, team training, and any dashboard button or next-step instruction tied to the number may require updated wording. Change communications should name the owner of those follow-up edits.

    Rollback is a reporting decision, not a quiet overwrite

    Set rollback conditions before publication. Examples include an unmapped location entering the corporate total, a formula counting the same booking twice, missing cancellation status, or a scheduled report disagreeing with the signed-off samples.

    Keep the prior report configuration and the old published figures. If the new rule fails testing, restore the previously approved reporting view while the team investigates. Avoid bulk-editing underlying bookings simply to make a chart resemble the old result.

    When the corrected definition is ready, repeat the sampled-record checks and secure the same named approval. That may feel slower than changing a dashboard widget. It is quicker than asking every regional manager to explain why last month’s performance suddenly changed.

    Keep the meaning stable when the rule has to change

    Franchise reporting will change as services, calendars and sales processes change. That is reasonable. The problem begins when a new meaning arrives under an old KPI name and leadership reads the difference as business performance.

    Before release, the franchise needs a precise former rule, a precise revised one, a treatment for history, evidence from real records and visible exceptions. Then corporate can compare like with like, or admit that the comparison is not available.

    If your locations already use GHL and reporting definitions need to change across the network, BrandLyft’s GoHighLevel for Franchises service is the relevant implementation path. Book a discovery call to review the affected locations, data sources and reporting decisions before the next corporate report goes out.