Anu Agency
Playbook
Work with Anu
04.05 Score and prioritize your database with the reactivation workbook

04.05

Score and prioritize your database with the reactivation workbook

Paste your cleaned export into a free spreadsheet that segments every contact, picks a permitted channel, scores priority from 0 to 100 and ranks who to contact first.

50 minNeeds verificationChecked 2026-10-20

Video walkthrough

Coming soonThe 100-point score: who to call first and why
It will cover
  1. A score you can explain to anyone: five factors, 100 points
  2. Mapping your CRM export into the workbook's yellow columns
  3. Reading the Segments tab: tiers, channels, missing consent
  4. Changing a weight and watching the ranks move
  5. Sending tiers back to the CRM as a field or tag
This chapter is complete without it. Every step is written out on this page.

What you're building

A working copy of the Database Reactivation Workbook with your contacts in it. Every contact gets a segment, the one channel you are allowed to use first, a priority score from 0 to 100, a tier (A, B or C) and a rank. Tier A contacts are your first pilot.

Why it matters

With 3,000 contacts and 5 hours a week, you will reach a few hundred people. A score decides which few hundred, and because every point is visible you can argue with it and change it. Black-box "AI lead scores" cannot be checked; this one can.

What you need

  • Your cleaned WORKING.csv with the Reactivation fields filled (chapters 2 and 3)
  • Excel 2016 or later, Google Sheets, or Numbers (the workbook uses DATEDIF, COUNTIFS, INDEX/MATCH)
  • The workbook below

Time and cost

Time
40 to 60 minutes the first time, 10 minutes per refresh
Cost
$0

Step by step

  1. Map your export columns to the workbook

    Where each workbook column comes from
    Workbook columnHighLevel exportFollow Up Boss exportAllowed values
    contact_idthe contact ID column if your export has one, otherwise a row numbera row number you addany unique text
    first_name, last_name, email, phonesame namesfirst phone and email columnstext
    relationshipRelationship (custom)Relationship (custom)past-client, sphere, lead, unknown
    strengthRelationship StrengthRelationship Strength1, 2, 3
    last_conversationLast Conversation DateLast Conversation Datea date, or blank
    email_opt_outEmail DNDunsubscribed tag presentY or N
    sms_consentSMS Consent (and SMS DND off)SMS Consent (and number not orange)Y, N, U
    phone_dncPhone DNC CheckPhone DNC CheckY = Listed, N = Clear, U = Not checked
    dnd_allDND alldo-not-contact tag presentY or N
    homeownerHomeownerHomeownerY, N, U
    years_in_homethis year minus Year Purchasedsamenumber
    source, consent_source, notesSource, Consent SourceSource, Consent Sourcetext

    Check: Your WORKING.csv has the 17 columns in the template's order.

  2. Paste into the Contacts tab

    Delete the 12 EXAMPLE rows (clear cells A2:Q13 only, not whole rows). Copy your data without the header row and use Paste Special > Values into A2. Do not paste into the grey columns R to W; they calculate.

    Grey columns: months_quiet (months since last conversation), channel (the first permitted channel: Text, then Email, then Call, or None), segment, score, tier, rank among scored contacts.

    Check: Row 2 shows a segment and score, and the last contact row is filled down to its rank.

  3. Set the report date and review the weights

    Leave Report date as =TODAY() for a live view, or type a fixed date to freeze a snapshot. Then read the weights. The defaults total 100 at most:

    FactorPointsWhy
    RelationshipPast client 30, Sphere 20, Former lead 10People who trusted you before answer first
    Strength5 per level (1 to 3)Your judgment of how well you know them
    Time quiet6 to 23 months 25, 24 to 59 months 15, 60+ 5, never 5Long enough to need a nudge, recent enough to remember you
    Homeowner in your market15Owners can list; renters may buy
    Years in home7+ years 15, 4 to 6 years 8Longer tenure usually means more equity and life change

    Tier A is 70 or more, Tier B 45 to 69, Tier C below 45. These weights are a starting framework, not research findings. Change any value; scores, tiers, ranks and the Segments tab update. The Scoring tab shows the new maximum in B18.

    Check: Scoring!B18 shows 100 with default weights.

  4. Read the Segments tab

    COUNTIFS formulas count each segment by tier, each first channel, contacts ready for a pilot (Tier A plus B), scored contacts with no consent source, and phones that still need a DNC check. If "Missing consent source" is high, go back to chapter 3 before texting anyone.

    Check: The segment total equals the number of rows you pasted.

  5. Send tiers back to your CRM

    Sort Contacts by rank. In HighLevel, create a dropdown custom field Priority Tier (A, B, C), then import a CSV with email, phone and Priority Tier through Contacts > Import mapping the column to that field. In Follow Up Boss, import one file per tier (email plus name) and type the tag tier-a, tier-b or tier-c in the import's Tags box; Follow Up Boss applies those tags to every contact in the file, new and existing.

    Check: A Smart List filtered on Priority Tier = A (HighLevel) or tag tier-a (Follow Up Boss) shows the same count as Tier A in the Segments tab.

What success looks like

  • Every contact has a segment, channel, score and tier
  • You can explain any contact's score from five numbers
  • Tier A count is known and visible in the CRM
  • No Suppressed or Recently active contact has a tier

Copyable templates

textThe score formula (row 2 of Contacts)

Already in the workbook. Shown here so you can rebuild it in any spreadsheet.

=IF(A2="","",IF(OR(T2="Suppressed",T2="Recently active"),0,
  IF(F2="past-client",Scoring!$B$3,IF(F2="sphere",Scoring!$B$4,IF(F2="lead",Scoring!$B$5,0)))
 + MAX(1,MIN(3,N(G2)))*Scoring!$B$6
 + IF(H2="",Scoring!$B$10,IF(R2<24,Scoring!$B$7,IF(R2<60,Scoring!$B$8,Scoring!$B$9)))
 + IF(M2="Y",Scoring!$B$11,0)
 + IF(N(N2)>=7,Scoring!$B$12,IF(N(N2)>=4,Scoring!$B$13,0))))
textThe channel formula (permission first)
=IF(A2="","",IF(L2="Y","None",IF(AND(E2<>"",J2="Y"),"Text",IF(AND(D2<>"",I2<>"Y"),"Email",IF(AND(E2<>"",K2="N"),"Call","None")))))

Try it

Database prioritizer

12 fictional contacts, report date 2026-10-01. Same rules as the workbook.

Tier A5
Tier B1
Tier C3
Excluded3
Show segment
ContactSegmentScoreChannel
In pilot
Past client100 (A)Text
In pilot
Past client88 (A)Text
In pilot
Past client80 (A)Text
In pilot
Past client78 (A)Email
In pilot
Sphere75 (A)Email
Dormant lead68 (B)Text
Dormant lead30 (C)Email
Dormant lead20 (C)Email
Needs review10 (C)Email
Suppressed-None
Recently active-Text
Suppressed-None
Top scores with a permitted channel. In real life: 100.

Tier A is 70 or more, Tier B is 45 to 69. Select a name to see exactly where its points came from. Opted-out and DND contacts never score, whatever the weights.

The workbook's rules on 12 fictional contacts. Change a weight and watch the order change; select a name to see its points.

How to test it

  1. In the demo above, set Homeowner points to 0. Maya Ortiz should drop from 100 to 85. Do the same in your workbook's Scoring tab and check one homeowner's score drops by 15.
  2. Set dnd_all = Y on a Tier A contact. Their segment must become Suppressed, tier '-', and they leave the rank.
  3. Pick 5 Tier A contacts. Would you happily call each one today? If not, adjust weights until the top of the list matches your judgment.

Troubleshooting

Grey columns show #VALUE! in months_quiet.

last_conversation holds text, not a date. Re-enter as a date (YYYY-MM-DD) or format the column as Date.

Everyone is Needs review.

relationship values do not match exactly. Use past-client, sphere, lead or unknown in lower case.

Numbers shows formulas as errors.

Use Excel or Google Sheets for the workbook. Upload to Google Drive and open with Google Sheets if you lack Excel.

Rank has gaps or ties.

Equal scores share a rank. Break ties by sorting on strength or months_quiet.

Advanced technical details

Optional. You can follow every step above without these.

Technical detailsHow the logic was tested

The same rules live in TypeScript (reactivation.logic.ts) and are covered by unit tests: exact tier boundaries at 70 and 45, the 100-point maximum, channel suppression for DND and opt-outs, whole-month counting that matches Excel's DATEDIF, and pilot stop rules. The workbook formulas were evaluated against the 12 example contacts and produce the same scores, tiers and ranks.

Rank formula: =IF(OR(A2="",V2="-"),"",COUNTIFS($V$2:$V$1001,"<>-",$U$2:$U$1001,">"&U2)+1). Extend the ranges if you paste more than 1,000 contacts.

Sources

Written from the best available information. One or more steps could not be confirmed; see the notes in the chapter. Last checked 2026-10-20.