Confidential — Strategic Planning Document

Dispatch Operations for
Last-Mile Carriers

RouteReach is a proven, production-grade platform that handles the full daily dispatch workflow — manifest parsing, customer notification, attendance tracking, and workforce reporting. Built in production. Ready to scale.

4Markets live today DailyProduction use 12–16 wksto licensable state ~$3K–$4MARR ceiling

A problem every last-mile carrier has. A solution almost none of them have.

Every day, last-mile delivery carriers dispatch trucks to homes where nobody answers the door. Re-delivery costs $25–$75 per stop. Costco's carrier network alone handles tens of thousands of deliveries per day across the United States.

Most carriers handle customer communication with personal cell phones, copy-paste from Excel, or not at all. A pre-delivery text confirming the delivery window — sent two hours before the truck arrives — dramatically reduces no-shows, reschedules, and re-delivery costs. The technology to do this well is not hard. Getting it right for this specific workflow is.

500–1K
Costco last-mile contractors in the US
2–3K
Adjacent last-mile operators (Lowe's, Wayfair, Home Depot)
$0
VC-funded vertical SaaS purpose-built for this segment

Why this segment is underserved

Enterprise TMS vendors (DispatchTrack, Route4Me, Descartes) serve large carriers with complex integrations and six-figure contracts. SMB last-mile carriers — 2 to 20 markets, 5 to 50 employees — are too small for enterprise and too operational for consumer-grade tools. RouteReach is purpose-built for them.

Beyond SMS, these carriers are also managing driver attendance on paper or spreadsheets — no integrated tool connects manifest data to workforce tracking. When the daily manifest arrives, a dispatcher manually cross-references it against who showed up, notes absences on a clipboard, and rebuilds that record in a separate sheet (if at all). RouteReach closes both gaps: the same manifest upload that triggers customer notifications also pre-populates the day's attendance record. The workflow that was two separate manual tasks becomes one.

What RouteReach does

RouteReach gives dispatchers a browser-based tool for the pre-delivery communication workflow. It does one thing well and integrates into the existing operation without requiring process change.

📄 Upload

Dispatcher drops the daily manifest PDF. RouteReach parses customer names, phone numbers, and delivery windows by route — no spreadsheet, no copy-paste.

👁 Preview

Review the exact message each customer will receive before anything sends. Edit individual messages or toggle routes on/off.

📤 Send

One click sends all selected routes via Twilio (10DLC compliant). Confirmation summary shows delivery status in real time.

📥 Inbox

Inbound replies sorted by market and flagged by priority — reschedule requests first, then confirmations, unread, and resolved. No missed replies buried in a phone.

👥 Attendance

Manifest upload automatically pre-populates the day's routes with driver and helper assignments. Managers mark attendance status (present, late, absent, NCNS), handle replacements, and lock the record. No duplicate data entry.

📋 Roster & Reporting

Driver roster builds itself from real manifest data — new names are added automatically on upload. Monthly roster review emails flag drivers inactive for 15+ days, keeping workforce records clean without manual audits.

The data flywheel

Every manifest upload feeds attendance. Attendance feeds the roster. The roster feeds workforce reporting. Historical operational data accumulates passively — dispatchers get more value over time without doing anything extra. A carrier who runs daily attendance through RouteReach is not leaving.

Production proof

RouteReach has been running in production at P2 Last Mile across four markets (Hurricane UT, Gypsum CO, Ukiah CA, Wenatchee WA) with daily operational use. The PDF parser handles real Costco manifest formats including edge cases — consolidated stops, multi-item deliveries, timezone-aware delivery windows. It is not a prototype.

10DLC compliance — already done

Twilio 10DLC registration, STOP/HELP keyword handling, opt-out registry, Apple iMessage reaction filtering, and signed webhook validation are all implemented and in production. This is the part most teams get wrong. RouteReach gets it right.


Brand direction: RouteReach

Design direction courtesy of Edna Mode, Design Lead.

Brand character

Operator-first, polished enough to sell. Not consumer-slick, not enterprise-sterile. Confident utility — the tool a dispatcher trusts under pressure. High contrast, information-dense without being cluttered.

Visual system

Deep navy primary. Amber accent for action states. Clean sans-serif typography. Dark mode capable. Carrier-brandable — each tenant can apply their own identity without losing the underlying system.

"RouteReach names the action, implies the vertical, and works across the sales conversation — with dispatchers, operations managers, and acquirers alike. Clean, ownable, extensible."

What changes for external users

Three things make the difference between a P2 internal tool and a product a dispatcher at any carrier trusts from day one:

12–16 weeks to licensable state

Technical direction from Meg (Engineering) and Gandalf (Security). Claude Code codebase review completed May 2026.

The codebase is production-grade and above average for a self-built ops tool. The parser, 10DLC compliance, and security logging are legitimately strong. What's needed is the SaaS infrastructure layer — multi-tenancy, cloud deployment, portable auth, and the onboarding experience that lets a carrier set up without our help.

A

Foundation & Cleanup

Weeks 1–4
  • Remove all P2-specific hardcoding from config.py and main.py
  • Replace Cloudflare Access auth with a portable JWT-based auth layer (Clerk)
  • Add tenant_id to all database models — zero isolation exists today
  • Add tenant_id to attendance and employee tables from day one — manifest-to-attendance integration must be isolated at the same time as the messaging layer
  • Add test suite with parser coverage (fixtures already exist) and webhook/opt-out coverage (compliance-critical)
  • Containerize the application (launchd + Mac Mini is not shippable)
  • Migrate to Alembic for database migrations (current ad-hoc ALTER TABLE pattern won't survive multi-tenant)
  • Verify clean git history — no credentials committed, license added
Unlocks: codebase can run for a second carrier without P2 data leaking
B

Core SaaS Architecture

Weeks 5–10
Note: scope includes attendance and roster data isolation — expect 5–6 weeks, not 4.
  • Migrate to PostgreSQL with tenant_id columns and row-level security (RLS enforced at ORM layer)
  • One Twilio subaccount per tenant — hard isolation at Twilio level, not just app level
  • Tenant credentials stored in secrets manager (not .env)
  • Tenant onboarding flow: carrier provides Twilio credentials + market config, gets a working instance
  • User management with org-scoping: dispatchers log in per-tenant without touching Twilio
  • Cloud deployment to Fly.io
  • Internal admin dashboard: tenant health, usage, billing status
Unlocks: a second carrier can be onboarded end-to-end without engineering intervention
C

Licensability Polish

Weeks 10–13
  • Audit trail: every message sent, every opt-out, every admin action — immutable, with tenant/user/timestamp
  • Tenant-visible usage metrics: messages sent, delivery date breakdown, market summary
  • White-label config via UI: carrier name, sender identity, message template — no YAML editing required
  • REST API with OpenAPI documentation for programmatic manifest ingestion
  • TCPA enforcement: opt-out check on all sends (bulk and manual), quiet-hours guardrail (8am–9pm recipient local time)
  • Data export per tenant (for portability and acquirer DD)
Unlocks: product survives an engineering due diligence session; first external customers can self-serve

Key Architecture Decisions

Database: PostgreSQL + tenant_id

Not SQLite-per-tenant (migration/backup nightmare at scale) and not separate deployments per customer (operationally untenable). Postgres with row-level security enforced at the ORM layer gives proper isolation with a standard operational model.

Twilio: Sub-accounts

One Twilio subaccount per carrier. We manage the master account and handle 10DLC compliance. Faster customer onboarding than BYO Twilio — the onboarding speed is the pitch. Large enterprise customers can move to BYO later.

Auth: Clerk

Replaces Cloudflare Access (which is tied to P2's CF account and can't be licensed). Clerk handles JWT issuance, org-scoping, Google OAuth, and MFA. Best developer experience of the options; built-in multi-tenant org model.

Deployment: Fly.io

Handles persistent volumes well (relevant for any SQLite transition period), simple containerized deployment, good regional distribution. Simpler operational model than AWS for a pre-Series A product.

Attendance + Roster: bundled, not bolted on

Attendance and roster data share the tenant_id isolation model from day one. Pricing them separately creates churn risk — a carrier running daily attendance through RouteReach is embedded. Bundle into Growth and Enterprise tiers; treat it as retention infrastructure, not a feature upsell.

The Parser — Strategic Asset

The PDF parser is the primary technical moat. It handles Costco's specific manifest format — consolidated stops, multi-item deliveries, timezone-aware windows — with production-hardened edge case handling that took real operational experience to build.

The Costco manifest format is standard across all Costco last-mile contractors. Every carrier in the Costco network uses the same PDFs. The parser works for all of them today.

A second moat is now emerging: the operational data flywheel. As carriers use RouteReach daily, manifest history, attendance records, and roster data accumulate passively. This historical depth — who drove which routes, attendance patterns, coverage history — is operationally valuable and cannot be replicated quickly by a new entrant or a carrier switching tools. The parser gets them in. The data keeps them.

Generalization path: Wait for the second paying customer (who likely uses a different dispatch system). Then extract a ManifestSchema YAML config layer — each manifest format becomes a config file, not a code fork. The library of manifest profiles accumulated over time is what competitors cannot replicate quickly. That library is the real long-term moat.

What's required before multi-tenant goes live

Security architecture from Gandalf (Security Lead).

Area Current State SaaS Requirement Risk
Route auth CF Access-exempt routes rely on tunnel Token-based auth middleware on every request, CF as defense-in-depth only High (SaaS)
Opt-out enforcement Relies on Twilio to bounce manual dispatcher replies App-level opt-out check before every send, manual or bulk — no override Medium
TCPA quiet hours Not enforced (P2 manages operationally) 8am–9pm recipient local time enforced or hard-to-disable guardrail with acknowledged bypass High (SaaS)
Secrets management .env file on Mac Mini AWS Secrets Manager or equivalent; rotation without downtime High
Tenant data isolation Single tenant — no isolation needed RLS enforced at ORM layer; separate Twilio subaccounts per tenant High
Audit log Partial (security logging exists, not full audit trail) Immutable log: every send, opt-out, admin action — tenant/user/timestamp. Required for TCPA defense. Medium
MFA CF Access handles (Google OAuth) MFA required for tenant admin accounts via Clerk Medium
SOC 2 Not applicable (single tenant) Not required pre-acquisition; roadmap commitment expected by serious acquirers Low (pre-acq)

TCPA compliance model

Platform enforces: opt-out registry (per tenant), quiet hours (8am–9pm recipient local), audit trail for every send.

Carrier owns: initial consent acquisition (point of sale), accuracy of phone numbers and customer data, dispatcher training.

Key point: In a multi-tenant model, "we rely on Twilio to bounce it" is not defensible. If the platform facilitates opt-out violations, no ToS clause fully shields it. Platform-level enforcement is non-negotiable before onboarding external carriers.

Pricing, unit economics, and the path to break-even

Starter
$149/market/mo
Single-market operators, lower volume. Ideal entry point.
  • 1 market, up to 3 dispatchers
  • Unlimited manifest uploads
  • Shared inbox
  • Send history
  • Email support
Enterprise / License
Custom
Large carriers, TMS integrations, white-label, or acquisition conversation.
  • Unlimited markets
  • API access + manifest ingestion
  • White-label branding
  • Attendance tracking (all markets)
  • Driver roster management
  • Monthly roster review reports
  • SLA + dedicated support
  • Custom parser profiles

Attendance and roster are bundled into Growth and Enterprise — not sold separately. The manifest-to-attendance connection only delivers value when both are present, and a carrier embedded in both is significantly harder to churn than one using SMS alone.

Messaging margin: +$0.005–$0.01 per message over Twilio passthrough cost. At 100 messages/market/day, this adds $15–$30/market/month in margin with zero variable cost.


Unit economics

$8–12K
Average ARR per customer (2–4 markets)
30–40
Customers to break even ($300–400K ARR)
$2–4M
ARR ceiling at 200–400 customers

Why this is a good business at the ceiling

$2–4M ARR in a focused vertical with high retention (dispatchers build workflow habits around tools like this), low churn drivers (switching cost is real — different tool, retraining, manifest re-configuration), and a compliance moat (10DLC setup is a genuine barrier for DIY attempts). This is a profitable lifestyle business or an attractive acqui-hire target for a larger logistics software player.

Getting to first revenue

The most important step: 1–2 paying external customers

One or two carriers paying $200–400/month is the difference between "interesting project" and "real business." Kirk's existing network in the Costco carrier ecosystem is the fastest path. These don't need to be acquired through marketing — they need to be asked.

The sales motion

SMB last-mile carriers don't find tools through Google or Product Hunt. The sales motion for first customers is:

The pitch structure

Demo-first. One data proof point. One story anchor.


10DLC onboarding latency — the most important operational risk

Twilio brand and campaign registration for 10DLC takes 2–4 weeks. A customer who signs up and can't send texts for a month will churn before they ever see value.

Mitigation: Build a sandbox mode where new customers can upload manifests and preview parsed messages while waiting for 10DLC approval. They see the product working; they don't churn from waiting. Start the 10DLC registration at signup, not at first send.

The exit: who buys this and what they're buying

Kirk's intent is not to run a SaaS indefinitely. The plan is to build RouteReach to an acquirable state — clean code, external customers, proven revenue — and find the right buyer or licensee. This is a 12–18 month process from today if executed with focus. The expanded platform scope — dispatch operations, attendance tracking, and workforce reporting — broadens the acquirer profile and increases the platform's strategic value, making the 12–18 month timeline an even stronger foundation for an acquisition conversation.

Natural acquirer profiles

TMS / Dispatch software vendors

DispatchTrack, Route4Me, Descartes, OptimoRoute. These platforms manage routes but not customer communication. RouteReach brings two things they don't have: the communication layer they're missing, and workforce tracking data — attendance history and driver performance patterns — that are a useful addition to any TMS product suite. Acqui-hire or product integration.

Logistics SaaS rollups

PE-backed software rollup operators targeting last-mile logistics. They want cash-flowing software businesses in defensible niches. RouteReach at $300–500K ARR is a clean acquisition target. The workforce ops data layer (attendance records, NCNS patterns, roster history) is compliance-adjacent and due-diligence friendly — this expands RouteReach's relevance beyond just ARR.

Twilio / CPaaS platforms

Vertical SaaS built on Twilio is exactly what platforms like Twilio like to highlight, partner with, or acquire. The 10DLC compliance implementation alone is noteworthy.

Costco carrier network strategic

A large Costco contractor operating at national scale who wants to offer RouteReach to their own subcontractors or white-label it across their network. Kirk's existing relationships are the access point here.

What makes this acquisition-ready

  • Clean, documented code that survives a technical due diligence session without embarrassing gaps
  • 1–2 external paying customers proving it works for carriers outside P2
  • Demonstrable revenue — even $1,500/month is enough to start the conversation
  • Multi-tenant architecture so the buyer isn't buying a single-tenant migration project
  • TCPA compliance posture documented and enforced — acquirers in this space are sensitive to SMS compliance exposure
  • SOC 2 roadmap (not required pre-close, but a credible plan is expected by serious buyers)
"This is a real product solving a real problem with real, accurate code. It is two engineer-quarters away from being SaaS-ready, and a year of focused sales away from being a healthy lifestyle business — or an acquisition target for the right strategic buyer." — Claude Code review, May 2026

What happens, in order

Milestone Timeline What it proves
Phase A complete — foundation, auth, tenant_id, tests, container Weeks 1–4 Codebase is safe to scale. Second carrier can be onboarded without P2 data leaking.
First external customer signed — even at pilot pricing Weeks 2–6 (in parallel) Product-market fit. Someone other than Kirk values this enough to pay.
Phase B complete — Postgres, Twilio subaccounts, cloud deploy, onboarding Weeks 5–9 True multi-tenant. Self-serve onboarding works. Ops team can support customers without engineering.
Second external customer — ideally different manifest format Weeks 6–12 Parser generalization path becomes clear. Product works outside Costco network.
Phase C complete — audit trail, API docs, white-label, TCPA enforcement Weeks 10–13 Due diligence-ready. Acquisition conversation can begin seriously.
Acquisition outreach begins Month 4–5 Clean code, 1–2 paying customers, documented revenue. The right buyers will engage.
Acquisition close Month 9–18 Depends on buyer, process, and market. 12 months is realistic for the right strategic fit.

Kirk's commitment

This plan requires approximately 12–16 weeks of focused engineering (Meg, directed by Jane, with Claude Code for architectural work) and Kirk's direct involvement in the first 1–2 customer conversations. No one else can open those doors — Kirk's credibility in the carrier network is the go-to-market advantage that no amount of engineering can replace.

Everything else — the build, the coordination, the documentation, the acquisition prep — runs through the team.