Capacity Planning Framework¶
Framework for deciding when to add warehouse space, staff, trucks, or equipment at Scott Recycling. Converts "we feel busy" into "we have capacity for X more pounds per day before we hit the next investment threshold."
Audience: Dan, operations managers, anyone making growth investment decisions
Why this exists: Master plan item B5. Without a capacity framework, growth investments are reactive — you add a truck after you've lost a customer from overcapacity, not before. Reactive investment is expensive and stressful. Planned investment is cheaper and smoother.
Related:
- ~/Desktop/sr-drafts/warehouse-layout-template.md — once filled in, provides per-zone capacity numbers that feed this framework
- Management Reporting Rhythm — weekly and monthly review of capacity utilization
- Operating Playbook — business context
- ~/Desktop/sr-analysis/cost-per-pound-methodology.md — the financial side of the capacity equation
The Three Capacities¶
Any operation has three simultaneous capacity ceilings. Growth is constrained by whichever one is lowest:
- Collection capacity — how much material can we pick up?
- Processing capacity — how much can we process per day?
- Sales capacity — how much can we convert to revenue per day?
If collection > processing > sales, material piles up in the warehouse (WIP grows). Fix: invest in processing OR sales.
If processing > collection > sales, trucks are partly empty (route efficiency drops). Fix: invest in sales OR collection.
If processing > sales > collection, outbound orders wait for material (fulfillment delays). Fix: invest in collection.
Scott Recycling's current state: needs measurement — this framework describes how to measure it.
Measurement — What to Track¶
Collection capacity metrics¶
| Metric | Current | Unit | How to measure |
|---|---|---|---|
| Pickups per truck per day | [[baseline]] |
count | sr_operations_kpi / customer_pickups table |
| Average pounds per pickup | [[baseline]] |
lbs | customer_pickups.actual_weight average |
| Truck utilization % | [[baseline]] |
% | route time active / total shift time |
| Drive time / stop time ratio | [[baseline]] |
ratio | sr_scheduling data |
| Miles per pickup | [[baseline]] |
miles | Samsara / ORS data |
| Fleet total daily capacity | (pickups/truck/day) × (trucks) | pickups/day |
Processing capacity metrics¶
| Metric | Current | Unit | How to measure |
|---|---|---|---|
| Pounds sorted per day | [[baseline]] |
lbs/day | sr_operations_kpi sort transfer report |
| Devices processed at tech bench per day | [[baseline]] |
devices/day | sr_inventory_processing daily count |
| Tech bench stations active | [[count]] |
count | manual |
| Avg time per device at tech bench | [[baseline]] |
minutes | sr_inventory_processing (if tracked) |
| WIP backlog | [[current]] |
lbs | sr_operations_kpi WIP metric |
| Days from intake to processed | [[baseline]] |
days | calculated from customer_pickups + inventory records |
Sales capacity metrics¶
| Metric | Current | Unit | How to measure |
|---|---|---|---|
| Listings created per day | [[baseline]] |
count/day | marketplace module |
| Orders shipped per day | [[baseline]] |
orders/day | marketplace_order + shipping |
| Scrap sold per month | [[baseline]] |
tons/month | weighted materials reports |
| Revenue per processed pound | [[baseline]] |
$/lb | revenue / pounds processed |
| Sell-through time (days to sale) | [[baseline]] |
days | listing_date to sale_date |
| Inventory age % | [[baseline]] |
% | items >60 days / total items |
Cross-cutting metrics¶
| Metric | What it tells you |
|---|---|
| Employees per truck | Operational efficiency |
| Revenue per employee per month | Productivity at the labor bottleneck |
| Pounds per employee per day | Raw throughput efficiency |
| WIP growth rate (week-over-week) | Is processing keeping up with collection? |
| Inventory aging ratio | Is sales keeping up with processing? |
Capacity Limits by Zone¶
Each physical zone in the warehouse has a ceiling before you hit diminishing returns. Document the ceiling and current utilization.
| Zone | Current capacity | Current utilization | Bottleneck risk | Next investment trigger |
|---|---|---|---|---|
| Receiving dock | [[pallets/day]] |
[[%]] |
[[low/med/high]] |
[[e.g., add dock door when utilization >80%]] |
| Sorting area | [[lbs/day]] |
[[%]] |
[[?]] |
[[e.g., hire 2nd sorter when WIP grows 3 wks]] |
| Tech bench | [[devices/day]] |
[[%]] |
[[?]] |
[[e.g., add station when wait time >4 hrs]] |
| Data destruction | [[drives/day]] |
[[%]] |
[[?]] |
[[e.g., 2nd shredder when queue >5 days]] |
| Weighted materials | [[lbs staged]] |
[[%]] |
[[?]] |
[[e.g., sell at half-full vs. 3/4-full]] |
| Secure storage | [[sq ft]] |
[[%]] |
[[?]] |
[[e.g., add cage when at 85%]] |
| CRT/hazmat storage | [[sq ft + duration limit]] |
[[%]] |
[[high]] |
Before storage duration limit hit (9-11 months is the trigger per compliance) |
| Outbound shipping | [[orders/day]] |
[[%]] |
[[?]] |
[[e.g., add packer when daily queue >1 day]] |
| Parking / truck bays | [[trucks]] |
[[%]] |
[[?]] |
[[new facility decision]] |
| Office space | [[sq ft / headcount]] |
[[%]] |
[[?]] |
[[expand when >X employees]] |
Investment Thresholds — When to Act¶
Pre-define the triggers. When they fire, you act — no debate.
Processing capacity triggers¶
| Trigger | Investment | Typical cost |
|---|---|---|
| WIP backlog grows 3 weeks in a row | Hire additional sorter | ~$35k-$55k/year fully loaded |
| Tech bench has >4 hour wait time consistently | Add tech bench station (workstation + monitor + tools + trained person) | ~$5k equipment + labor cost |
| Data destruction queue >5 business days | Add shredder station OR 2nd shift | $10k-$50k equipment or ~$40k labor |
| Receiving dock utilization >85% | Add dock door OR schedule inbound loads | $5k-$20k construction or $0 scheduling |
| Facility square footage >85% utilized | Expand / add satellite OR reorganize | Major — think $100k+ |
Collection capacity triggers¶
| Trigger | Investment | Typical cost |
|---|---|---|
| Truck utilization >85% AND route efficiency steady | Add truck (and driver) | $30k-$100k truck + $55k driver + insurance + fuel |
| Drive time / stop time ratio exceeds 1:1 consistently | Optimize routing OR add hub in distant region | $0 (software tuning) up to $500k (new facility) |
| Backlog of pickup requests >10 days | Add driver / truck OR longer shifts | Same as above or ~$20k overtime |
| Pickups refused due to capacity | Urgent: truck or shift expansion | Same |
Sales capacity triggers¶
| Trigger | Investment | Typical cost |
|---|---|---|
| Inventory aging >60 days exceeds 20% | Aggressive markdowns first, then add listing capacity | $0 then $40k/year for a listing specialist |
| Secure storage >85% full | Move faster OR add storage | $0 then ~$10k shelving + space |
| Order fulfillment delay >48 hours | Hire packing/shipping | ~$35k/year |
| Scrap accumulating past 60 days | Sell at current market OR add staging space | $0 decision + ~$5k/month revenue acceleration |
Support capacity triggers¶
| Trigger | Investment | Typical cost |
|---|---|---|
| CSR call queue wait time >2 min average | Add CSR or improve self-service | $35k/year or dev time |
| Email response time >24 hours average | Add support capacity or triage system | Same |
| Manager span-of-control >15 direct reports | Add supervisor tier | $50k-$75k/year |
| Dan working >60 hours/week consistently | Hire senior manager for delegation | $75k-$125k/year |
Capacity Planning Exercise — Monthly¶
Once a month, run this exercise:
- Pull current utilization for each zone (from
sr_operations_kpi+ manual data) - Compare against trigger thresholds above
- List any zone that's in the yellow zone (70-85% utilization — plan ahead) or red zone (>85% — act now)
- Identify the bottleneck — which single zone is constraining the business
- Plan the next investment — what, when, how much
- Update the trigger table if current thresholds seem wrong based on experience
Monthly capacity planning output¶
A short memo (1 page) with:
- Current utilization per zone
- Trend (growing, stable, shrinking)
- Next likely investment (with estimated month)
- Estimated cost
- Decision: invest now, plan for next month, or defer
Scale Planning — The Next Tier¶
Beyond fixing current bottlenecks, plan for what Scott Recycling looks like at 2x current scale:
If volume doubles (hypothetical)¶
- More trucks: probably 2x current fleet → ~30 trucks (from 15)
- More drivers: 2x → ~24 drivers (from 12)
- More warehouse space: probably 1.5-2x (some economies of scale)
- More tech bench stations: 2x
- More shredder capacity: 2x (or 2nd shift same equipment)
- More CSR staff: probably 1.5x (some call automation)
- More management: another layer — supervisors under the manager
- More office space: probably 1.5x
- IT capacity: Odoo scales fine for 2x volume; database server may need more RAM
Geographic expansion¶
The growth strategy says "200 committed customers per region to open a new region." The capacity framework for a new region:
- ~25-50 pickups/week minimum to justify a dedicated truck
- 1 truck + 1 driver minimum to start
- Warehouse? — probably NOT initially; ship material back to Sunbright
- Office? — probably NOT initially; dispatcher operates from Sunbright
- Scale threshold: 100+ pickups/week sustained → justifies satellite warehouse
Each expansion region hits its own capacity curve. Plan per-region.
Capacity vs. Demand — The Leading Indicator¶
The most valuable insight is knowing you're approaching a capacity wall before you hit it. Leading indicators:
Warning signs that you're running hot¶
- WIP growing week over week for 3+ weeks
- Days from intake to processed increasing
- Inventory age increasing
- Employee overtime rising
- Sick days and turnover rising
- Customer complaints about pickup delays
- Manager stress / emergency decisions increasing
Warning signs that you're running cold (underutilized)¶
- Trucks returning to yard with partial loads
- Sorters waiting for material
- Tech bench stations idle
- Inventory not growing
- Revenue per employee declining
- Managers spending time on non-essential work
Both problems are valid. Running cold costs less but represents missed opportunity. Running hot costs more in the short term (overtime, shortcuts, burnout) but captures more demand.
Target utilization: 70-85% sustained. Below 70% = you have slack to grow into. Above 85% = add capacity now.
Relationship to Growth Strategy¶
The growth strategy (institutional pivot, 200-customer regional gate, NC focus) says what to grow toward. Capacity planning says when and where to add the pieces.
Example integration:
If the growth strategy commits to opening North Carolina as the next region:
- Pre-gate: build the 200-customer prospect list in NC (done — see
institutional-prospect-list.csv) - Gate: convert 200 to committed customers (sales work)
- Trigger: when gate is met, this framework takes over
- Investment sequence:
- Add truck + driver for the new region (capacity trigger: can existing routes absorb NC customers? If no → new truck)
- Expand Sunbright warehouse sorting to handle the extra inbound (capacity trigger: WIP backlog check)
- Hire additional tech bench staff (capacity trigger: bench utilization)
- Eventually: consider NC satellite warehouse (capacity trigger: 100+ pickups/week sustained)
- Monitor: standard capacity planning monthly exercise tracks whether NC revenue is covering the new investments
Framework Review¶
- Monthly: use this framework for the planning exercise
- Quarterly: review the trigger thresholds themselves — are they set right?
- Annually: full review of capacity targets, investment plans, and expansion criteria
Next Steps for Scott Recycling (concrete)¶
To make this framework usable:
- Fill in the baseline numbers — each row with
[[baseline]]or[[%]]needs a current value. Most come fromsr_operations_kpi, some require manual measurement. - Write the monthly capacity exercise into Dan's calendar — first Monday of each month, 30 minutes
- Integrate with warehouse layout — once
~/Desktop/sr-drafts/warehouse-layout-template.mdis filled in, the per-zone capacity numbers slot directly into this framework - Share with managers — they need to know the triggers so they can flag them early
- Revisit after 90 days — see if the triggers are set at the right levels
Once the framework is calibrated, it becomes a quarterly "look at the numbers, decide investments" ritual — which beats "respond to crises" as an operating mode.