Month-to-date closed profit is $212k against a $400k goal with 2 business days left —
you land near $300k unless something moves. The gap is not lead flow;
it is seven properties sitting past their fallout window in dispositions,
carrying $184k of projected profit. Lead desk is ahead of pace at 118 net leads this week against 108.
Needs a decision from you
Every board on this site ends in a named list, not a chart. These are the queues that are
past their threshold right now. Nothing appears here without an owner and a record count.
7
Properties past the fallout window
Under contract 45+ days with no accepted buyer offer. FL falls out at 50% vs AL 14% —
past this line, half never close. Owner: Dispositions.
23
Next Contact Date pushed with no call or text
Acquisition reps moved the date forward without a logged touch. Outbound SMS does not count.
Owner: Homebuying Specialists.
14
Attended appointments with no outcome logged
The appointment happened; nobody recorded what came of it. Every one of these is a hole in
closing-rate reporting.
9
New leads unworked past 30 minutes
Median first response this week is 41 min against a 5-min target. Sellers answer best 9–10am;
the desk dials hardest 3–4pm.
The month, against goal
Closed profit MTD ?
$212k
53% of goal · 92% of month
Pending close, next 30 days
$299k
goal $400k−$101k
Contracts signed MTD
24 / 32
75% · 2 days left
Avg profit per deal ?
$16k
goal $25k4th month down
Annual revenue tracker
$2.9m / 4.8m
60% · month 8 of 12
The funnel, one line each
Same five conversions the Exec dashboard carries, but shown as one chain so you can see
which link moved. Each is defined once in the dictionary and referenced everywhere else.
| Stage | Volume | Conversion to next | Goal | vs last week | Constraint |
|---|---|---|---|---|---|
| Net leads | 118 | 48.6% → opp | 50% | +2.1 pt | healthy |
| Opportunities | 57 | 88% appt attended | 85% | +3 pt | above goal |
| Attended appointments | 50 | 19% → contract | 25% | −4 pt | attack point |
| Contracts signed | 24 | 62% → closed | 85% | −7 pt | the constraint |
| Closed deals | 13 | $16k avg profit | $25k | −$1.4k | margin |
Why this page exists. The current site has eighteen destinations and no
opinion about which one you open first. This page is the opinion: what moved, what is off pace, and
the four lists that will not clear themselves. Everything else on the site is where you go once you
know which of these four you are chasing.
The gap this board fills. Your ISD Scorecard in Salesforce has 18 components
and every one of them counts reps — soft contracts,
hard contracts, calls, commissions, interested buyers. Not one of them shows a
property. With FL falling out at 50% and sign-to-close
running to 84 days at p90, the board you are missing is the one below: every property under contract,
how long it has been on the clock, and whether anyone is actually working it. The rep scorecard
follows underneath — it is the second question, not the first.
Properties on the clock
Under contract
38
$742k projected profit
Past the fallout window ?
7
$184k at risk
No buyer activity in 7 days
11
no offer, no showing, no call
Median days to close ?
51 days
p90 84 days
Fallout rate T90
31%
FL 50%AL 14%
Every property under contract
representative rows · live build reads Left_Main__Transactions__c
| Property | Mkt | Rep | Days on clock | Fallout risk | Bought | Marketed | Spread | Buyer activity | Last touch |
|---|---|---|---|---|---|---|---|---|---|
| 1420 Cottage Hill Rd | AL | Marcus | 62 | $78k | $96k | $18k | 0 offers | 11d ago | |
| 307 Blue Angel Pkwy | FL | Tasha | 58 | $104k | $119k | $15k | 2 offers, both low | 4d ago | |
| 88 Panama City Beach Dr | FL | Tasha | 54 | $142k | $171k | $29k | 0 offers | 9d ago | |
| 2201 Schillinger Rd | AL | Marcus | 47 | $61k | $79k | $18k | 4 interested | 2d ago | |
| 915 Navarre Beach Cswy | FL | Devon | 45 | $88k | $99k | $11k | 1 offer pending | 1d ago | |
| 640 Fairhope Ave | AL | Devon | 31 | $95k | $124k | $29k | offer accepted | today | |
| 1105 Gulf Breeze Pkwy | FL | Tasha | 19 | $71k | $93k | $22k | 6 interested | today |
Why deals die
Read from
Cancelled_Contract_Reason__c on the
Transaction — not the Opportunity's Closed Lost Reason, which is null on nearly every record.Cancellation reason · trailing 90 daysby market
| Price — couldn't find buyer | 14 | FL 10 | |
| Seller backed out | 7 | FL 3 | |
| Title defect | 5 | AL 4 | |
| Inspection / condition | 4 | AL 3 | |
| Land / ownership issue | 2 | FL 2 |
The read
Half of Florida's losses are one reason: we bought it and could not
find a buyer. That is not a dispositions execution problem downstream — it is an
underwriting problem upstream, and it shows up 50 days later where nobody is looking.
The board makes that visible on day 20 instead of day 60 by flagging any property with
zero buyer offers past the point where comparable properties had two.
Rep scorecard
This is your existing ISD Scorecard, kept whole but reduced to what is not already
answered above. Goals shown are the ones already written into your component titles.
| Dispositions rep | Soft contracts TW | Hard contracts TW | Interested buyers | Calls / talk time | Avg profit per deal | Fallout rate | Time to first offer |
|---|---|---|---|---|---|---|---|
| MRMarcus | 3 | 2 | 21 | 44 · 2h11m | $21k | 18% | 6 days |
| TWTasha | 2 | 1 | 14 | 31 · 1h24m | $16k | 44% | 14 days |
| DKDevon | 1 | 2 | 18 | 38 · 1h52m | $18k | 27% | 8 days |
| Team · goal | 6 / 5 | 5 / 4 | 53 | 113 | $18k / 25k | 31% | 9 days |
Rebuilt from SDR Dashboard (19 components) and HH Morning Huddle's lead
section. Response time gets top billing because it is the only metric on the old board that is both
below target and entirely inside the desk's control.
Speed to lead
Median first response
41 min
target 5 min
Median · PPC leads only ?
18 min
faster, still off target
Missed inbound call rate
7.2%
goal <5%
Unworked > 30 min
9
right now
Net leads this week ?
118
goal 108
The timing mismatch
Sellers answer between 9 and 10am. The desk dials hardest between 3 and 4pm.
7am carries 97 inbound texts against 10 outbound calls. This chart is the argument for moving the shift.
outbound dials
seller response rate
By person
| Lead manager | Dials | Talk time | Conversations | Queue coverage | Appts set | Appts / 100 dials | Past due |
|---|---|---|---|---|---|---|---|
| KVKevin | 112 | 3h04m | 28 | 94% | 7 | 6.3 | 2 |
| MCMercy | 98 | 2h41m | 24 | 88% | 6 | 6.1 | 1 |
| LGLiliana | 76 | 1h58m | 15 | 71% | 3 | 3.9 | 8 |
| JDJordan | 134 | 2h12m | 19 | 91% | 4 | 3.0 | 3 |
| SRSam | 89 | 2h33m | 22 | 86% | 6 | 6.7 | 0 |
Effort next to output, always. Jordan has the most dials
and the fewest appointments per hundred. Coverage alone would have shown him top of the board.
That pairing is why the two columns never appear on separate pages.
Rebuilt from HBS Dashboard (11 components) plus the acquisition half of
HH Morning Huddle and your follow-up audit. The two "missing data" components from the huddle
are promoted into queues at the top, because a missing outcome is an action, not a statistic.
Queues
23
Date pushed, no touch
Next Contact Date moved without a call or text
14
No appointment outcome
Attended, never recorded
9
Recording link missing
Attended appointments with no call recording
The week
Contracts this week
6 / 8
75%
Contracts this month
24 / 32
8 per rep goal
Closing % ?
19%
goal 25%
Opps with an offer made
71%
+6 pt WoW
Contract → closed T90
62%
goal 85%
By specialist
| Specialist | Appts attended | Offers made | Contracts TW | Closing % | Contract→closed | Calls / talk | Past due |
|---|---|---|---|---|---|---|---|
| ABAaron | 14 | 11 | 3 | 27% | 78% | 51 · 3h12m | 2 |
| RMRosa | 12 | 9 | 2 | 19% | 64% | 43 · 2h48m | 9 |
| TJTyler | 15 | 8 | 1 | 12% | 45% | 38 · 1h51m | 12 |
| NBNia | 9 | 8 | 0 | 17% | 71% | 29 · 2h04m | 0 |
Tyler is not a volume problem. Most appointments
attended, fewest offers made, worst closing rate, twelve records past due. The old dashboard showed
those four numbers on four separate charts on two different boards. One row makes it a conversation.
Carried over largely as built. Your existing title scoreboard already does the
right thing — business-day dwell per Path stage from field history. It gains a goal line, a
week-over-week delta, and the queue at the bottom, then keeps its shape.
Where the days go
Cash conversion cycle
71 days
closing owns 64%
Value of one day cut
$602k/yr
at current volume
Slowest stage · per record
19 med
Resolving Title · p90 62
Biggest stage · by volume
Active
the constraint by throughput
Business-day dwell by Path stage
| Stage | Records | Median business days | p90 | Oldest | Owner |
|---|---|---|---|---|---|
| Active | 42 | 11 | 34 | 51 | Dispositions |
| Resolving Title | 14 | 19 | 62 | 74 | Title |
| Title Ordered ? | 21 | 12 | 29 | 36 | Title |
| Clear to Close | 9 | 4 | 9 | 12 | Closing |
Rebuilt from Exec Dashboard (19 components). Three changes: the gauges become
pace-against-goal (a gauge spanning $150k–750k on the 27th of the month tells you nothing about
whether you will make it), the FL/AL links become the global market filter, and the six duplicated
conversion metrics collapse into the one funnel chain.
Closed profit by month
The month
Closed MTD
$212k
53% of $400k · day 27
Pending this month
$88k
booked, not yet closed
Projection to month end
$300k
−$100k to goal
Next month best case
$418k
above goal if nothing falls out
The conversions
Leads → opps T90
48.6%
goal 50%
Appointment : attended
88%
goal 85%
HBS closing %
19%
goal 25%
Contract → closed T90
62%
goal 85%
Leads → cash T120
4.1%
goal 6%
Margin
Average profit per dealby month
The read
Profit per deal is genuinely down: May–Jul ran $16–17k against
Feb–Apr at $20–25k. Only two blank profit fields all year, so this is not a data artifact —
it is real compression, and at 13 closings a month it is roughly $100k of monthly profit.
Sitting next to it on this page rather than three clicks away, because it explains more of the
revenue gap than volume does.
The biggest single collapse on the site. Your L10 dashboard runs 22 components
because every metric is built twice — once for Florida, once for Alabama — plus a combined view.
With market as a global filter, the same board is eight rows. The scorecard shape below is what an
L10 actually needs: measurable, weekly, owned, on/off track at a glance.
The current week is always partial. This board greys the in-progress column
rather than plotting it, because a Monday reading on a WoW chart looks like a collapse and has
started more than one unnecessary conversation.
Weekly scorecard
| Measurable | Owner | Goal / wk | Jul 27 | Aug 3 | Aug 10 | Aug 17 | Aug 24* | 13-wk avg | Trend |
|---|---|---|---|---|---|---|---|---|---|
| New leads | Laine | 108 | 121 | 114 | 96 | 118 | 74 | 112 | on track |
| Opportunities created | Lead desk | 40 | 44 | 36 | 33 | 41 | 26 | 38 | at risk |
| Appointments attended | Acquisitions | 40 | 37 | 42 | 31 | 40 | 22 | 37 | at risk |
| Offers made | Acquisitions | 27 | 29 | 28 | 22 | 31 | 17 | 27 | on track |
| A/B contracts | Rhen | 6 | 7 | 5 | 4 | 6 | 4 | 5.4 | at risk |
| Soft contracts (dispo) | Dispositions | 5 | 6 | 5 | 3 | 6 | 3 | 5.1 | on track |
| Deals closed | Closing | 8 | 5 | 6 | 4 | 6 | 3 | 5.3 | off track |
| Closed profit | Rhen | $100k | $71k | $88k | $54k | $91k | $42k | $78k | off track |
* partial week · not counted in trend
Market split · same rows, one filter
Alabamagoal 52 leads / 20 opps / 3 contracts per week
| New leads | 61 / 52 | |
| Opportunities | 17 / 20 | |
| A/B contracts | 4 / 3 | |
| Fallout rate | 14% |
Floridagoal 56 leads / 20 opps / 3 contracts per week
| New leads | 57 / 56 | |
| Opportunities | 14 / 20 | |
| A/B contracts | 2 / 3 | |
| Fallout rate | 50% |
Your two STS dashboards are clones of Exec. STS: FL and STS: Mobile are
18 components each, and they are the same thirteen metrics as the Exec dashboard with a market prefix
on every label. That is 55 components expressing 13 measures. More to the point:
they cannot be compared — putting Mobile next to Florida means
opening two tabs and reading two gauges. Same-store sales is a comparison, so this board is built as one.
Market comparison · August 2026
| Measure | Mobile / AL | vs Aug 25 | Florida | vs Aug 25 | Total | vs Aug 25 | Read |
|---|---|---|---|---|---|---|---|
| Closed profit MTD | $134k | +18% | $78k | −31% | $212k | −9% | FL dragging |
| Deals closed | 8 | +2 | 5 | −3 | 13 | −1 | |
| Avg profit per deal | $17k | −$4k | $16k | −$9k | $16k | −$6k | both down |
| Contracts signed | 14 | +3 | 10 | +1 | 24 | +4 | supply fine |
| Fallout rate | 14% | −2 pt | 50% | +11 pt | 31% | +5 pt | the whole gap |
| Net leads | 248 | +9% | 231 | +22% | 479 | +15% | |
| Leads → opp | 51% | +3 pt | 45% | −2 pt | 48.6% | +1 pt | |
| HBS closing % | 22% | −1 pt | 15% | −6 pt | 19% | −3 pt | |
| On the fence ? | $61k | — | $104k | — | $165k | — | FL 63% of it |
| Cost per net lead | $71 | −$8 | $94 | +$16 | $82 | +$3 | |
| Profit per net lead | $540 | +8% | $338 | −43% | $443 | −21% | the real STS number |
Comparison basis: same calendar month, prior year
point-in-time snapshot
Legacy import excluded from both years
Trailing 12 · profit by market
Mobile / AL
Florida
What this board is for. Florida grew leads 22% year over year and lost
31% of its profit. Every number needed to see that sat on the two STS dashboards already — just never
on the same screen. Profit per net lead is the line that makes it undeniable: $540 in Mobile,
$338 in Florida, and the whole delta traces back to one row, fallout.
You said marketing dashboards are nowhere. Half of one exists — on a third system.
Salesforce holds no spend data at all, so it can never answer a marketing question.
dashboard.heartlandbuys.com already has weekly Direct Mail, PPL,
PPC and TV scorecards with spend, CAC and 13-week rolling ROI. Sentinel has the PPC command centre and GA4.
What has never existed anywhere is the board below: all channels on one
row-per-channel table, spend through net profit, so you can rank where the next dollar goes.
Channel P&L · quarter to date
| Channel | Spend | Net leads | Cost / net lead | Opps | Contracts | Cost / contract | Closed | Net profit | ROI | CAC |
|---|---|---|---|---|---|---|---|---|---|---|
| Direct Mail ↗ | $104k | 312 | $333 | 141 | 31 | $3,355 | 19 | $338k | 3.25× | $5,474 |
| PPC ↗ | $61k | 188 | $324 | 94 | 18 | $3,389 | 11 | $192k | 3.15× | $5,545 |
| TV / WKRG + FOX ↗ | $48k | 97 | $495 | 38 | 6 | $8,000 | 4 | $68k | 1.42× | $12,000 |
| PPL / property leads ↗ | $19k | 64 | $297 | 22 | 4 | $4,750 | 2 | $31k | 1.63× | $9,500 |
| SEO / organic ↗ | $9k | 71 | $127 | 36 | 8 | $1,125 | 5 | $88k | 9.78× | $1,800 |
| Referral / word of mouth | $0 | 28 | — | 17 | 5 | — | 3 | $54k | — | — |
| All paid | $241k | 732 | $329 | 331 | 67 | $3,597 | 41 | $717k | 2.98× | $5,878 |
beats the direct-mail benchmark
within 25%
behind
ROI and CAC are trailing 13 weeks, lagged 60–90 days — read as rolling, not this-quarter attribution
The benchmark
Direct mail cost per contract
$3,355
the bar everything is measured against
PPC cost per contract
$3,389
at parity with mail
Cheapest channel
SEO
$1,125 · but only 8 contracts
Worst channel
TV
$8,000 · 2.4× the benchmark
Spend by market
Where the money wentquarter to date
| Mobile / AL | $137k | $540 profit / net lead | |
| Florida | $104k | $338 profit / net lead |
The read
Florida takes 43% of spend and returns 63% less profit per net lead. The instinct is to cut FL spend —
but FL lead volume is up 22% year over year and its cost per contract is fine.
The loss is entirely downstream, at fallout.
This is exactly the decision a marketing dashboard has to be able to prevent: the spend table alone
would have said "cut Florida." Joined to fallout, it says "fix dispositions."
Absorbed from the ops dashboard, largely as built. These four scorecards are the
best thing in your stack and I would change almost nothing about them. What they get here is a home next
to the sales boards instead of on a separate login, plus the shared metric dictionary underneath.
Direct-mail funnel by week, captured Sunday night. Pieces dropped are entered manually per
market; spend = pieces × the quarter's cost-per-piece rate. Leads through net profit are Salesforce,
Lead Source = Direct Mail. Rolling ROI and CAC are trailing 13 weeks, lagged 60–90 days —
read as rolling, not this-week attribution.
Q3 2026
cost per piece $0.62 · editable, applies to this quarter
| Metric | Target | QTD | Aug 2 | Aug 9 | Aug 16 | Aug 23 | Aug 30* |
|---|---|---|---|---|---|---|---|
| Pieces dropped manual | — | 168,400 | 42,100 | 42,100 | 42,100 | 42,100 | — |
| Spend | — | $104k | $26.1k | $26.1k | $26.1k | $26.1k | — |
| Gross leads ↗ | 571 | 148 | 121 | 159 | 143 | 61 | |
| Net leads ↗ | 312 | 84 | 59 | 88 | 81 | 34 | |
| Response rate | 0.34% | 0.35% | 0.29% | 0.38% | 0.34% | — | |
| Cost / net lead lower is better | $333 | $311 | $442 | $297 | $322 | — | |
| Opportunities ↗ | 141 | 38 | 29 | 41 | 33 | 14 | |
| Contracts ↗ | 31 | 9 | 5 | 10 | 7 | 3 | |
| Closings | 19 | 5 | 3 | 6 | 5 | 2 | |
| Net profit | $338k | $81k | $54k | $112k | $91k | $42k | |
| ROI · rolling 13 wk | 3.25× | 3.11× | 3.04× | 3.31× | 3.25× | — | |
| CAC · rolling 13 wk binary | $5,474 | $5,220 | $6,410 | $5,180 | $5,474 | — |
live snapshot
backfilled from current Salesforce state
≥100% of target
80–99%
<80%
* partial week, excluded from QTD
Four colour rules, not one. Straight
higher-is-better gets the 100 / 80 bands. Cost per net lead and CAC are
binary — at or under target is green, over is red,
no yellow, because "97% of your CAC target" is not a near miss, it is a miss.
Cancel rate is banded inverted, and appointments cancelled is exact-match — on target is yellow,
not green. Your ops dashboard already gets this right and almost nothing else does.
Carried over, merged. Pipeline revival and the follow-up audits currently live
in three separate nav groups. They answer one question — is the book being worked — so they become
one board with three sections.
The dormant pool
Dormant opportunities
412
+25 vs day zero
Revived T30 ?
67
16% of pool
Already had an appointment
60%
of the dormant pool
Orphaned records
0
cleared Aug 27
Sixty percent of the dormant pool already sat through an
appointment. That is not a cold list — it is a list of people who met us and did not get followed up.
The board's whole job is to keep that number in front of the floor daily.
This is the piece that fixes "sloppy" more than any layout change.
Across your six Salesforce dashboards, RB - HBS Closing % appears four times,
LM Appointment:Attended four times, Hearts Touched twice, and
Opportunities - Next Contact Past Due three times. Every copy is a chance to drift.
Here each metric has one definition, one owner, and one set of exclusions — and the
? next to any figure on the site links straight to it.
Net lead
A lead that survived qualification.
Status NOT IN (Unqualified, Attempted Contact, Retail).
Gross-to-net baseline is 48.6% on a 90-day window.Source: Lead · DealSignals excluded from every lead figure on this site, always stated
PPC lead
PPC__c = True. Not inferred from Lead Source, which is wrong on PPC records
often enough to have produced a "0 PPC contracts" report when a PPC contract had been signed.Source: Lead / Opportunity / Transaction ·
lead_ppc__c, opportunity_ppc__cClosed deal
Transaction with an
Actual_Closing_Date__c, excluding Flips and excluding
the 66 records flagged Legacy_Import__c from the prior company's June 2024 bulk load.
True Closed Won is 313, not 325.Applied on every board here · currently applied only to the title scoreboard on the live site
Deal profit
Net_Profit_Manually_Entered__c for closed, Projected_Profit_Manually_Input__c
for pending. Opportunity Amount is expected gross deal profit and is not the same number — do not mix them.Source: Left_Main__Transactions__c
HBS closing %
Contracts signed ÷ appointments attended, by Homebuying Specialist lookup.
Goal 25%. used on 4 boards
One definition · referenced by Today, Acquisitions, Exec, L10
A touch
A logged call or an inbound text. Outbound SMS never counts
as a touch — a cadence firing is not a rep working a record.
Inbound texts are Tasks with Subject 'Incoming Sms', body in Description — not SmsHistory
Fallout
A signed A/B contract that did not close. Reason comes from
Cancelled_Contract_Reason__c on the Transaction — the Opportunity's Closed Lost Reason
is null on nearly every record.FL 50% · AL 14% · trailing 90 days
Days on clock (dispo)
Business days from
A_B_Contract_Acceptance_Date__c to today for open
transactions, or to Actual_Closing_Date__c for closed. Median 51, p90 84.New metric · introduced by the dispositions property board
Queue coverage
Share of a person's assigned queue that received a touch in the period.
Undelivered texts (21% of sends) are excluded from the numerator.
Every Task is CreatedBy the integration login, so manual vs cadence texts cannot be
separated — coverage leads with dials for that reason
Path stage: Title Ordered
Filter on the picklist value
Integrity Transactions. The label reads "Title Ordered" and filtering on the label
returns nothing.The single most-repeated mistake in this org's reporting
Hearts touched
The mission counter — 20,030 by 2030. Kept on Today as a footer line rather than a tile,
so it never competes for attention with a number you can act on this week.
Source: Hearts Touched report
Partial week
Any week not yet complete is greyed and excluded from trend and average calculations
across every board.
Site-wide rule
You have three dashboard systems
This is the real finding, and it reframes everything below.
None of the three is complete, all three overlap, and the gaps between them are where the questions
you actually ask go unanswered.
| System | Boards | Components | Covers | Cannot ever cover |
|---|---|---|---|---|
| Salesforce 8 dashboards |
8 | 149 | Sales, floor activity, funnel conversion, per-rep scorecards, market STS clones | Any spend figure — there is no spend object. Also no point-in-time: a stage moved last month silently rewrites last month's number. |
| dashboard.heartlandbuys.com Operations Intelligence |
~25 | — | Weekly channel scorecards with spend / CAC / ROI, QuickBooks P&L, lead sources, automation health, form health, call audit, Sunday-night snapshots | Per-rep coaching detail, property-level pipeline, the daily floor rhythm |
| Sentinel rhen.orgendgame.com |
18 | — | PPC command centre, GA4, lead management floor, cash conversion cycle, revival, title, commissions, 90-day plan | Nothing structurally — this is the one that can hold all of it |
So "marketing dashboards are nowhere" is half true. Salesforce genuinely
cannot answer a marketing question — it holds no spend. The ops dashboard already has excellent weekly
Direct Mail, PPL, PPC and TV scorecards. What has never existed anywhere is the
all-channels-on-one-table view that lets you rank where the next
dollar goes, and the join between spend and fallout that stops you cutting the wrong market.
Both are now on Demand overview.
The diagnosis
Nothing on the current site is wrong. The problem is that it
grew one project at a time, so the navigation records the order things were built rather than the
order you use them. Five specific symptoms:
1
The groups are build history, not workflow
"Command" holds six unrelated boards. "Lead dashboard" and "Lead management" are two groups about
leads. Google Ads — a real command centre — sits under "Connections" next to a server status page.
"Home" is a group containing one item.
2
Everything is equally important
A board you read every morning and a board you read once a quarter are the same size, the same
colour, one click apart. There is no landing state — you arrive and have to choose.
3
Metrics are defined in many places
Across your six Salesforce dashboards, four metrics appear on three or more boards each. On the
site, the legacy-import exclusion is applied to the title scoreboard and nowhere else. Every copy
drifts eventually.
4
Boards report; they don't produce work
A chart showing 23 records past due is information. A named list with an owner and a button is
a queue. Your revival work already proved the second one is what the floor actually runs on.
5
Market is duplicated instead of filtered
The L10 dashboard is 22 components because nearly every measurable is built three times: Florida,
Alabama, combined. Worse, STS: FL and STS: Mobile are 18-component
clones of the Exec dashboard — the same thirteen measures with a market prefix. Exec plus its
two market clones is 55 components carrying 13 numbers. One global filter deletes roughly seventy
components across the eight boards without losing a single figure — and the comparison you actually
wanted from same-store sales becomes possible for the first time, because the markets finally land
on one screen.
The organising principle
Three horizons, one spine. An operator's day has a shape:
what needs me now → what is the floor doing today → is the business on track this quarter.
The navigation is that shape. Underneath it, a fourth group holds the supply side and the plumbing,
and a metric dictionary sits under everything so a number means the same thing wherever it appears.
Before and after
Today
3 systems · 18 Sentinel destinations across 8 groups · 149 Salesforce components across 8 dashboards · ~25 ops-dashboard pages behind a second login
CommandSales scoreboard · 90-day plan · Cash conversion cycle · Title scoreboard · Pipeline revival · Commissions
Follow-upAcquisition reps · Lead managers · Text cadences
Lead mgmtManagement · Floor board
HomeAll dashboards
Lead dashOverview · Volume & trend · Sources & status · Pipeline · Data quality
ConnectionsStatus · Google Analytics · Google Ads
Coming nextLocal SEO · Dispositions
SalesforceExec · HH Morning Huddle · L10 · HBS · SDR · ISD Scorecard · STS: FL · STS: Mobile
Ops dashWeekly · Direct Mail · PPL · PPC · TV scorecards · Lead Sources · Financials · Automations · Transactions · Form Health · Call Audit · 8 monthly reports
→
Proposed
17 destinations · 5 groups · one system · one definition per metric
StartToday — the briefing and the four queues
The floorLead desk ← SDR + huddle + floor board
Acquisitions ← HBS + huddle + follow-up audit
Dispositions ← ISD Scorecard + the new property board
Title & closing ← title scoreboard
The businessExec ← Exec dashboard, gauges become pace
Same-store sales ← STS: FL + STS: Mobile, finally comparable
L10 scorecard ← L10, market filtered
Pipeline & revival ← revival + both follow-up audits
Cash & margin ← CCC + commissions + ops-dash Financials
90-day plan ← unchanged
MarketingDemand overview new — all channels, spend to profit
Channel scorecards ← ops dash Mail / PPL / PPC / TV, absorbed
PPC command centre ← Sentinel, unchanged
Attribution health ← lead sources + gclid gap + data quality
The machineMetric dictionary new
Automation health ← ops dash, unchanged
Connections ← unchanged, demoted
What I took from the ops dashboard
dashboard.heartlandbuys.com is better than the Salesforce
dashboards at nearly everything it attempts, and several of its ideas are better than what I had drawn.
These are carried into the design as-is.
1 · Point-in-time snapshots with visible provenance
The single most valuable thing in your stack, and the one thing Salesforce structurally
cannot do. Salesforce always shows current state, so a stage that moves in September silently
rewrites August's number. The ops dashboard freezes Sunday night and marks every cell
live-captured or backfilled.
This becomes site-wide.
2 · Four conditional-format modes, not one
Higher-is-better gets 100 / 80 bands. Lower-is-better gets them inverted. Cancelled
appointments are exact-match — on target is yellow. Cost per lead and CAC are binary: at or under
is green, over is red, no yellow band. Salesforce gives you one crude rule; this distinction is
the difference between a colour that informs and one that decorates.
3 · Ratio-correct quarter-to-date
Rates are recomputed from summed numerator and denominator rather than averaging the
weekly percentages. A Salesforce summary row averages percentages, which is simply wrong, and it is
wrong in the direction that flatters a bad week.
4 · Targets are editable data, not code
Every target is an inline input persisted per quarter, with traffic-light feedback on the
input border — amber saving, green saved, fades out. No save button, no modal. Your Salesforce goals
are currently prose inside component titles, which means changing one is an admin task.
5 · Drill-through to the source report
Every metric label carries a ↗ that opens the exact Salesforce
report behind it. The dashboard curates without forking the source of truth.
6 · Operator-editable report sources with a Test button
Paste a report ID per metric, hit Test, see
Total 143 · AL 91 · FL 52 for last
week, then commit. Change the filter in Salesforce and the scorecard follows. This is the mechanism
that keeps a curated dashboard from rotting, and I would not have designed it.7 · Definition captions on every page
Each board states its metric definition, attribution rule, and lag inline — the mail one
says the 60–90 day lag should be "read as rolling, not this-week attribution." Pairs with the metric
dictionary rather than replacing it: caption on the page, full definition one click away.
8 · The persistent "This Week" bar
Now at the top of every page here. Its best trait is the failure behaviour: live
week-to-date → if stale, the same numbers labelled "last good refresh" → if dead, last completed
week → if that fails, hide silently. The bar is chrome and never blocks the page.
9 · Stable per-source colours and auto-rollup
A lead source keeps the same colour in every chart, legend and table, assigned by overall
volume rank; past eight series the rest collapse into "Other (N sources)" so the stack never turns
to confetti.
10 · Per-person section permissions
Empty nav groups hide entirely, landing page is the first board you can see. Necessary
the moment this stops being only your site.
11 · Write-back, not just read
Automation on/off toggles, manual metric entry, cost-per-piece rates — you change the
business from the screen where you see it. Salesforce dashboards are read-only by nature.
12 · The semantic colour + dim pairing
Every status colour exists as a solid and a 15%-alpha version; badges and banners are
always
background: dim, color: solid. Clean system — worth adopting into the
gold-and-steel palette.Two things to fix while absorbing it.
First, the ops dashboard has a live bug:
renderThisWeekBar() references twTimer
and TW_REFRESH_MS, and neither is declared anywhere in the bundle — under strict mode that
throws on every call, inside the shell render. Worth checking whether that bar is actually painting for
anyone. Second, it carries three separate colour palettes: its own design tokens, a Tailwind slate set on
the scorecards, and Google's on Automations — and the scorecard grid is a light table dropped into a dark
app, with pastel fills inherited from the spreadsheet it replaced. Take the token system, drop the strays.Six rules the redesign runs on
1 · Every board ends in a queue
If a board can name a problem, it must produce the named list of records, with an owner
and a link into the Salesforce list view. A chart that cannot become a list does not earn its space.
2 · Every number carries its goal
Your Salesforce components already carry goals — but as prose in the title
("Goal: 400k", "Goal Per Week: 108"). Here the goal is structured data, and colour reflects
pace against goal for the elapsed period, not the raw value.
3 · Market is a filter, never a copy
One global AL / FL / All control on every board. Removes the FL and Mobile satellite
dashboards and roughly half of L10.
4 · One definition, referenced everywhere
The dictionary is the source. Any figure can be traced to a field, a filter, and an
exclusion list in one click.
5 · Effort never appears without output
Dials sit next to appointments per hundred dials. Coverage sits next to conversion.
A rep cannot look good on activity alone.
6 · Partial periods are greyed, not plotted
The current week is never counted in a trend or an average, anywhere.
Suggested build order
| # | What | Why first | Effort |
|---|---|---|---|
| 1 | Metric dictionary + snapshot store with provenance | Everything references the dictionary; the snapshot store must start capturing now, because history cannot be backfilled later | 2 days |
| 2 | Demand overview · all channels, spend to profit | The genuinely missing marketing board, and the one that stops you cutting Florida for a dispositions problem | 2 days |
| 3 | Dispositions property board | The other genuinely missing board, and it sits on the constraint — contract to close | 2 days |
| 4 | Today briefing + queue engine | Turns the site from a place you visit into a place that tells you something | 2 days |
| 5 | Global market filter + nav restructure + Same-store sales | Mechanical; unlocks the L10 and STS collapse and retires two Salesforce dashboards | 2 days |
| 6 | Absorb the four channel scorecards from the ops dashboard | Port, don't rebuild — they are already right. Brings spend and CAC onto the same login as sales | 2 days |
| 7 | Lead desk / Acquisitions rebuild from SDR + HBS | Replaces the two boards the floor opens daily | 2 days |
| 8 | Exec + L10 rebuild, then retire the duplicated SF boards | Last, because you can keep reading these in Salesforce meanwhile | 3 days |
One thing worth deciding now. The Exec dashboard's
"Deals Buy This Month" gauge, the L10 weekly goals, and the ISD monthly goals do not reconcile with each
other: 32 contracts a month against 6 A/B contracts a week (26/month) against 18 soft contracts a month.
They are measuring different objects at different stages, which is fine — but they are all labelled
"contracts". The dictionary forces that to get resolved, and it is better resolved before the boards
are built than after.