Cumulative records geocoded in LAB Spot. Cost = count ÷ 1,000 × $5 (Google Geocoding API standard rate). All-time seeds from your current DB on first use, then increments with each new geocode — deleting records won't reduce historical spend.
All-time
$0.00
0 records
This month (—)
$0.00
0 records
0% of monthly threshold used
Adjust counts (e.g. to match your actual Google Cloud Console numbers)
📊 Data
📣 Marketing
🎯 Campaigns
📝 Logs
📈 Results
📐 Underwriting
👥 CRM
🏠 Dashboard
Lists uploaded
0
—
Properties
0
unique, deduped
Geocoded
0
0% complete
Duplicates caught
0
merged into existing
Vendors used
0
—
Total phones
0
across all vendors
Total emails
0
across all vendors
⬆️ Upload
🏘️ Properties
🏢 Vendors
🗺️ Unverified 0
⛔ Non-Skiptraced 0
📬 No Mailing 0
☎️ No Phone 0
📥 Upload property list
Step 1
Drop a CSV or XLSX. We'll auto-detect columns, normalize addresses via Google Maps, and dedupe.
📄
Drop CSV/XLSX here or click to choose
Any column layout — we figure it out
📞 Upload skiptrace results
Step 2
After you've loaded property lists, drop the skiptrace vendor's CSV here.
📞
Drop skiptrace CSV/XLSX
Matches to existing properties by normalized address
Any column layout — we auto-detect phones, emails, and owner fields per vendor.
Uploaded lists
List name
Uploaded
New
Actions
No lists yet.
Skiptrace uploads
Vendor
Uploaded
Actions
No skiptrace uploads yet.
📞 Providers & their phones
Live count of unique phones each vendor contributed
Properties
0 selected
0total records
Per page:
Address
City
ST
ZIP
Owner
Geocode
Flags
Phones
Lists
No properties yet.
Skiptrace vendors
Vendor ↕
Record price ↕
Monthly cost ↕
Records skiptraced ↕
Hits ↕
Hit rate ↕
Props matched ↕
Props w/ phone ↕
Props w/ email ↕
Props w/ mail addr ↕
📊 Vendor comparison & overlap
📞 Phone numbers
📬 Mailing addresses
✉️ Emails
🔥 Number heat
A phone number's heat = share of providers that returned it for the same property.
🔥 Hot
0
—
Click to view →
♨️ Warm
0
—
Click to view →
❄️ Cold
0
—
Click to view →
🔥 Hot & listed 1st by a provider
0
—
Click to view →
Vendor comparison
Side-by-side: each vendor's coverage, heat contribution, overlap with other vendors, cost per hit.
Vendor
Records
Hits
Coverage
Unique phones
♨️ Warm
❄️ Cold
🔥 Hot share
🔥 Hot @ slot 1
Overlap phones
Unique emails
Cost
$/hit
📬 Mailing address coverage
Best mailing address per property = the most common address seen across the property's original record and every vendor's skiptrace row.
📬 With mailing address
0
—
Click to view →
🚫 No mailing address
0
—
Click to view →
🏆 Most common mailing address
—
—
Coming next
Per-vendor mailing-address contribution (who provided what, which match the property record, absentee-owner scoring).
✉️ Email comparison
Coming next — hot/warm/cold heat for email addresses, vendor-by-vendor contribution, and coverage stats mirroring the phone-numbers tab.
🤝 Vendor overlap — 1-on-1
For each pair of providers: how many phones / emails / mailing addresses they share on the same property, and how many each has that the other doesn't. Smaller overlap = more differentiated data, higher combined value.
Cell value = items both row-vendor and column-vendor have for the same property. Diagonal = vendor's total distinct items.
🏠 Unverified properties 0
📞 Unmatched skiptrace 0
📬 Unverified mailing 0
🏠 Unverified properties
Properties Census couldn't geocode. Fix the address and retry, or fall back to Google for one-offs.
—
Owner
Street
City
State
ZIP
Status
Error reason
Actions
📞 Unmatched skiptrace rows
Rows from a skiptrace upload whose address didn't match any property in the DB. Retry with a geocode to canonicalize the address (often fixes spelling/format issues), or add it as a brand-new property so the vendor's phones/emails can be linked.
—
Vendor (source)
Uploaded
Street
City
State
ZIP
Status
Actions
📬 Unverified mailing addresses
Properties with a mailing address on file that hasn't been run through the geocoder yet, or that the geocoder couldn't verify. A verified mailing address is the strongest absentee-owner signal you have.
—
Owner
Property
Mailing street
City
State
ZIP
Status
Source
Actions
⛔ Non-Skiptraced properties
Properties in your system that have zero skiptrace records from any vendor. Best candidates for the next skiptrace pull.
—
Address
City
State
Zip
Lists
📬 No mailing address on file
Properties with literally no mailing address from any source — none on the property, none from any skiptrace vendor. Direct mail is impossible until you find one.
—
Property address
Mailing on file
Status
Lists
☎️ No phone numbers
Properties with zero phone numbers across any vendor. Cold outreach is impossible until skiptraced.
—
Address
City
State
Zip
Skip records
Lists
📋 Lists
🏢 Vendors
🏚️ Foreclosure
0
0 properties
⚖️ Probate
0
0 properties
🚧 Code Violation
0
0 properties
⚡ Utility Lien
0
0 properties
🔥 Fire Damage
0
0 properties
📬 Absentee
0
0 properties
🏘️ Vacant
0
0 properties
👵 Senior Owner
0
0 properties
🚪 Eviction
0
0 properties
💔 Divorce
0
0 properties
💰 Tax Delinquent
0
0 properties
👮 Arrested
0
0 properties
💼 Bankruptcy
0
0 properties
📎 Liens
0
0 properties
🎯 Today's suggested call queue
Top 100 leads ranked by: hot phones, vendor slot-1 agreement, absentee owners, and not-contacted-recently. Score = signal × recency.
Flags:
—
Rank
Owner
Property
Mailing
Top phone
Signals
Score
🏢 Vendor download for campaigns
Pick a vendor and download a CSV with one row per matched property — first/last name, property address, top 4 phones, top 2 emails, mailing address. Drop straight into a calling or mailing campaign.
Filter by list (click chips to toggle — leave all off for every list):
Filter by vendor (click chips to toggle — leave all off for every vendor). Stacked & Master downloads only include the selected vendors:
Vendor
Properties matched
Phones
Emails
w/ mailing addr
Download
CSV columns: First Name · Last Name · Address · City · State · Zip · Phone 1 · Phone 2 · Phone 3 · Phone 4 · Email 1 · Email 2 · Mailing Address · Mail City · Mail State · Mail Zip
🎯 Campaigns
This section is coming next. Tell Claude what you want here — calling-campaign performance, outreach planning, sub-views, etc. — and we'll build it out.
👥 Employees
Drop a fresh Campaign Agent Performance CSV anytime to refresh. Re-imports overwrite the same day. For live mid-day stats, export every hour or two.
→
No agent data yet.
📅 Upload CallTools agent performance
Drop a Campaign Agent Performance CSV exported from CallTools → Reports → Performance Reports → Campaign Agent Performance. Date parsed from the filename. Re-importing the same day overwrites.
👥
Drop agent performance CSV
📝 Saved logs
📥 Upload call results
Drop a Twilio / BatchDialer / ReadyMode export. Matched to your properties by address and to your vendors by phone.
📞
Drop CSV/XLSX
📊 Uploaded to DB
—
total uploaded
Loaded in app
0
in current view
Unique numbers
0
Matched to properties
0
Peak hour (local)
—
📋 Records
📊 Overview
🔥 Heat of your called numbers
Of the unique numbers you actually dialed, how many are Hot/Warm/Cold based on vendor agreement, and how many were listed as phone-1 by at least one provider.
🔥 Hot
0
—
♨️ Warm
0
—
❄️ Cold
0
—
🔥 Hot & listed 1st
0
—
❓ Unknown (no vendor has it)
0
—
📞 Providers on your called numbers
For each phone you called, which skiptrace vendors had that number on file.
🎯 Best 2-vendor combo on your dials
For every pair of providers, how many of the phones you actually dialed at least one of the two had. "Slot 1 only" = vendor's primary guess. "Any slot" = vendor had the number anywhere in their list.
—
Rank
Pair
Combined
Coverage %
📊 Call volume by hour
Local hour (from Last Contact). Hover a bar for exact count.
12a
1a
2a
3a
4a
5a
6a
7a
8a
9a
10a
11a
12p
1p
2p
3p
4p
5p
6p
7p
8p
9p
10p
11p
Contact coverage by list
How many properties in each list you have reached at least once (any result counts). The red Unmatched bar shows results whose address did not link to a property in any of your lists.
📋 Dispositions per list
Each result is counted under every list its property belongs to. Results that didn't match a property fall into "Unknown list." 🏆 goes to whichever bucket (including Unknown) has the highest motivated % of results (≥10 results minimum). Hide Unknown with the checkbox if you only care about named lists.
🌍 Batch geocode unmatched
Try 🔗 Local first (free, instant) then fall back to Census/Google for the leftovers.
🔗 Local:
Batch size:
Call records
Disposition
Name
Address
Phone
Time
Lists
Providers
No call results uploaded yet. Drop a CSV above to get started.
❓ Help
🔍 Analyzing
⭐ Priority
🕵️ Double-Check
✅ Analyzed
🔥 Hot
📤 Offered
📷 Inspection
📝 Contracted
🏁 Closed
📐 Deal Calculator
Single-property underwrite. Enter inputs, formulas auto-recalculate.
Idle
📋 Deal Status
ARV − Asking
—
Suggested Offer
—
Max Offer
—
Commission
—
🏠 Property Info
💰 Comparable Sold Properties (drives After Repair Value)
Sold Comparable Properties (3) — enter sale prices to auto-derive A$/SqFt average. Zillow / Google icons auto-link from the address.
✏️ Edit mode — Drag any field to move it: drop on the upper half of another field to insert above it, lower half to insert below, or drop in empty column space to append at the end. Works between columns AND for re-ordering within the same column. Click a column header to rename it. + Add Column creates a new group. ✕ next to a header deletes that column (its fields move to the first column). + Add Custom Item adds a new field row in the Custom Items section. Click "✓ Done Editing" when finished.
🛠️ Rehab Calculator
Multiplier: Total Livable SqFt
Grand Total — Maximum Cost (everything)
$0
Grand Total — Actually Needed Cost (checked only)
$0
🎯 Final Rehab Amount (used by the exit math): $0
💰 Ideal Flip Profit
Slide to dial in the profit you want before you'll do the deal. Worse condition + longer project = higher margin. Five benchmarks marked, smooth in-between and past Complete.
Cosmetic 8%
Light 10%
Medium 15%
Heavy 20%
Complete 25%
Monster 35%
Condition
—
Base margin
—
Time bonus
—
Final margin
—
Ideal profit $
—
—
📈 Equity per Dollar of Rehab
For every dollar of rehab spent, how much equity (ARV minus what you paid + spent) does it create. A high ratio means cheap value-add work; a ratio below 1 means you're spending more than you're creating.
—
📅 Timeline (Flip + Refi)
Auto-fills Renovation Time on the Flip + Rental Refi cards based on property size × rehab scope. Listed-to-sell is fixed at 2.5 months (market average). Wholesale + Wholetail aren't affected.
Cosmetic 1×
Light 1.5×
Medium 2.5×
Heavy 4×
Complete 6×
Monster 9×
—
🎯 Best Exit Strategy
Five exits compared side-by-side using your inputs above. Click any card to see its full cost & profit breakdown. Recommendation = highest expected return adjusted for time and capital tied up.
—
🔗 External Links
🔍 Analyzing
Status empty or Evaluating.
Nothing in analyzing. Underwrite one in the Deal Calculator and click 💾 Save (leave Packet Status blank or set to "Evaluating").
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
⭐ Priority
Manually flagged for priority follow-up.
Nothing flagged for priority. Open a deal and click ⭐ Priority in the stage selector to add it here.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
✅ Analyzed
Status Submitted or Dead.
Nothing analyzed yet. A deal moves here when you set its Packet Status to Submitted or Dead.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
🔥 Hot
Max Offer within $15k or 25% of Asking.
Nothing hot right now. A deal lands here when its Max Offer is within $15,000 OR 25% of the Asking Price.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
📤 Offered
Deals with an offer out — packet status is Offered. Click any row to open the full property details + calculator.
Nothing offered yet. A deal moves here when you set its Packet Status to Offered.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
📷 Inspection
Deals in the inspection / due-diligence window — packet status is Inspection. Click any row to open the full property details + calculator.
Nothing in inspection. A deal moves here when you set its Packet Status to Inspection (or click 📷 Inspection in the workflow stage selector at the top of any deal).
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
📝 Contracted
Deals under contract — packet status is Accepted. Click any row to open the full property details + calculator.
Nothing under contract yet. A deal moves here when you set its Packet Status to Accepted.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
🏁 Closed
Deals that closed — packet status is Closed. Click any row to open the full property details + calculator.
Nothing closed yet. A deal moves here when you set its Packet Status to Closed.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
🕵️ Double-Check
Awaiting verification.
Nothing waiting for review. When an underwriter is done with a deal, they click 🕵️ Send to Double-Check in the calculator header and it shows up here.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
❓ Help — Properties Needing Review
Properties an employee marked with the 🆘 Needs Help toggle (in the calculator header). Click any row to open the full property and review.
Nothing flagged for review. Open any deal in Analyzing/Analyzed and click the 🆘 button in the header to mark it as needing help.
Address
Status
Rent
ARV
Asking
Max Offer
Accepted
Best Exit
Best Profit
Imported
Last Edit
Actions
❓ Underwriting Help & Reference
A quick-reference guide for what each field does, how the math works, and how to use every feature in the Underwriting tab.
🚀 Getting Started
To analyze a new property:
Click + New Deal in the Analyzing tab
Type the address — autosave kicks in 1.2 seconds after you stop typing (look for the green "Saved just now" pill in the header)
Fill out Property Info, then add 3 sold comps to drive the After Repair Value
Check items in the Rehab Calculator that need work
Set your Offer (and Accepted Price once the seller agrees)
Look at the 5 exit cards at the bottom — the green-bordered one with "BEST" is your recommended exit
Click any exit card to see its full cost + profit breakdown
To revisit an existing property: click any row in the Analyzing or Analyzed list. The Imported column shows how long ago each property was added (green ≤ 7 days, amber ≤ 30, red > 30).
📋 Deal Status — Pricing & Commission
Asking Price — what the seller is asking
Offer — the price you've offered (or are about to offer)
Accepted Price — what the seller agreed to. Once filled, this becomes the actual buy price for all exit math (overrides Offer)
ARV − Asking — gap between After Repair Value and Asking
Max Offer — your highest viable offer to still hit profit cushion ($10k). Computed as No Profit Offer − $10,000
No Profit — break-even price: ARV − rehab − money − selling − closing
Commission — 15% × (Max Offer − Accepted/Asking). Your assignment-fee target on a wholesale
🏠 Property Info — Identity, Dimensions, Risk
Z + G icons next to Address open the subject in Zillow / Google Maps
Total Livable SqFt is auto-summed: Floor 1 + Floor 2 + Floor 3, plus Basement and/or Attic only when their checkboxes are ticked
Flood Zone + 🌊 = FEMA flood map for the address
Crime Grade + 🚓 = CrimeGrade.org for the ZIP
Assessor Site / GIS Map URL — paste any county portal link; the 🌐 button opens it
Lot Size in acres, Parking Status dropdown
💰🏷️🏘️ The Three Comp Panels
Comparable Sold Properties — 3 closed sales nearby. Drives After Repair Value (= Total Livable SqFt × Avg Sold $/SqFt, rounded to $1,000). Use the Override field if you have an appraisal that says different.
Comparable Listed Properties — 3 active listings. Computes Estimated Listed Value + Estimated Real Value (90% of listed, since listings typically drop ~10%). Informational only — doesn't drive math, but useful for sanity-checking your ARV.
Rental Comparable Properties — 3 nearby rentals. Computes Average Rent /mo which feeds the Cash Rental and Financed Rental exits. Override field lets you lock in a known lease rate.
Each comp row has: address (with Z + G icons), price/rent, distance to subject (📍 Refresh Distances button uses free US Census geocoder, no API key), bed / bath / sqft / year built, lot size, parking.
Override Rehab $ (optional) — type a contractor's bid here to bypass the per-item math
Final Rehab Amount (highlighted indigo box) = Override (if filled) or Subtotal w/ Contingency. This is what the exits use.
✏️ Edit mode works the same as the Condition Checklist — drag items between columns, rename, add columns, set custom prices. ↺ Reset Defaults snaps back to the standard 4-column layout (Interior / Exterior / Mechanicals / Other).
🎯 Exit Strategy — The 5 Cards
Five strategies are computed in parallel using your inputs. The card with the green border + "BEST" badge is the highest annualized return.
🤝 Wholesale (Assignment) — never close, assign the contract to a cash investor. Profit = (70% ARV − rehab) − your contract price. Days to close ≈ 14. Capital tied up = $0.
🔨 Wholetail — light cosmetic ($5k or 1/3 of full rehab, whichever is less), sell at ~85% ARV. ~2 month timeline.
🏗️ Full Flip — full rehab + retail sale at ARV. Use the rehab months + listing months to set timeline.
💵 Cash Rental — buy with cash, no leverage. Pure cashflow + cap rate. Capital tied up = buy + rehab + closing.
🏦 Financed Rental — 25% down, 75% loan at 6.5% / 30yr. Best leveraged return.
Click any card to see the full breakdown: closing costs, money costs, holding costs, selling costs, profit math, and editable assumptions (closing %, holding months, agent commissions, loan terms, tenant expenses) for that specific exit.
💾 Saving & Auto-Save
Every keystroke triggers a debounced auto-save 1.2 seconds after you stop typing
The status pill in the header shows: Idle (grey) → Unsaved… (amber) → Saving… (blue, pulsing) → Saved Xs ago (green)
💾 Save Now forces an immediate save with a confirmation toast
Address must be filled for the first save (otherwise the database can't insert)
Refreshing the page or closing the browser does NOT lose data — everything's stored in Supabase
The 📅 Added X days ago badge under the address shows when the property entered the system
🔀 Reordering Sections
Click the 🔀 Reorder button in the calculator header. Each section gets a dashed indigo outline and a drag handle pill at the top-left. Drag panels up or down to change the order. Drop above a section to insert before it, below to insert after.
Order saves per-deal. New sections added in future updates automatically appear at the end so nothing gets hidden.
📋 Demo Deal
Click 📋 Load Demo Deal in the calculator header to pre-fill everything with the 2530 S Roosevelt Dr (Evansville, IN) property — useful for seeing how the formulas work before entering your own data.
The demo loads address, comps, rehab tier, condition checklist values, and rental comps. Click 💾 Save Now to persist it as a real deal in your Analyzing list.
🧮 Key Formulas Cheat Sheet
Avg Sold $/SqFt = mean of sold comp $/SqFt values
After Repair Value = Total Livable SqFt × Avg Sold $/SqFt (rounded to $1,000)
Closing Cost = ARV × (Buyer % + Seller %)
Money Cost = ARV × Origination % + ARV × (Interest %/12 × hold months)
Holding Cost = ARV × (1% + 1% + 1.5%) ÷ 12 × hold months