Applied Module 12 · The OFCI Playbook

The Delivery War Room

What you'll learn

~50 min
  • Build a multi-project delivery calendar with date-based scheduling
  • Implement conflict detection for overlapping deliveries, crane availability, and staging constraints
  • Generate delivery day checklists with logistics requirements per equipment type
  • Export delivery schedules to HTML calendar views and ICS files

What you’re building

Here’s your next month: two generators arriving at SV9 on a flatbed that needs a 200-ton crane. A switchgear lineup coming to CH2 that requires a clear path from the loading dock through two corridors into the electrical room — and nobody’s measured the corridors yet. Twenty CRAHs showing up at DEN3 over three days that need staging space on the second floor. Oh, and the SV9 generator delivery? Same day the GC planned their concrete pour for the adjacent pad. Because of course it is.

Now, you’re currently tracking all of this in your head, in a shared Excel calendar that three people update inconsistently, and in a text thread with your rigger that you can’t find because it’s buried under 47 other conversations. That’s not a system. That’s a prayer.

If any of these deliveries collide — two pieces of equipment showing up on the same day at the same site when there’s only one crane available, or a delivery arriving when there’s no staging space because the previous delivery hasn’t been moved to final position — you’re looking at $5,000-$15,000 per day in standby charges. Per day. Plus schedule delays that ripple across the entire project like dominoes falling in slow motion while your PM sends you the Slack message nobody wants to get: “can we jump on a call?”

The Delivery War Room catches those collisions before they cost you money.

💬Delivery day is game day

Delivery day is game day. You’ve been tracking this equipment for months — submittals, lead times, budget approvals — and now the truck is pulling up. You need the right people (crane operator, rigger, electrician for the switchgear), the right access (dock reserved, corridors cleared, elevator locked out for freight), and the right timing (you can’t receive a chiller at 3 PM when the crane leaves at 4 PM). It’s like a drop day at the ABC store except the bottles weigh 40,000 pounds and you’re paying $5K/day if you’re not ready. This tool is your game-day playbook.

By the end of this lesson you’ll have a Node.js CLI tool that manages delivery schedules across multiple projects, detects conflicts and resource constraints before they become expensive phone calls, generates equipment-specific delivery day checklists so you don’t forget the one thing that screws everything up, and exports calendar views you can actually share with your GC without them saying “what am I looking at?”

Software pattern: Resource-constrained scheduling with conflict detection

Delivery schedule + resource constraints (crane, staging, dock access) → conflict detection → resolution suggestions + logistics checklists. This pattern works for any resource-constrained scheduling: conference room booking, fleet management, construction sequencing, event logistics.


The showcase

This is the part where you see the whole tool laid out and think “holy shit, I’ve been doing all of this manually.”

  • Input: CSV with delivery dates, equipment types, site logistics requirements (crane needed, staging space, dock access hours). All the details you currently keep in six different places.
  • Conflict detection: Flags same-day deliveries at the same site, crane double-bookings, staging space overflows, and GC activity conflicts. Basically a referee for your delivery schedule that doesn’t care about anyone’s feelings.
  • Delivery checklists: Equipment-specific logistics requirements. Because a generator delivery (crane + flatbed + rigging crew + electrical disconnect) is a fundamentally different animal than a CRAH delivery (freight elevator + dollies + raised floor clearance). Generic checklists are how you end up with a chiller on a truck and no one who knows how to handle refrigerant.
  • Calendar view: HTML monthly calendar with color-coded delivery blocks per project. The thing you’ll pull up on your tablet when the GC asks “so what’s coming in next week?”
  • ICS export: Calendar events with full logistics details in the description, so your crane operator gets an invite that actually tells them what they’re picking up and how heavy it is.

The prompt

Build a Node.js CLI tool called delivery-war-room that manages equipment
delivery logistics across multiple data center construction projects.
PROJECT STRUCTURE:
delivery-war-room/
package.json
src/
index.js (CLI entry point using Commander.js)
csv-loader.js (delivery schedule CSV loading)
conflicts.js (conflict detection engine)
checklist.js (delivery day checklist generator)
calendar.js (HTML calendar renderer)
ics-export.js (ICS calendar file generator)
data/
sv9-deliveries.csv
ch2-deliveries.csv
den3-deliveries.csv
templates/
calendar.html (HTML calendar template)
REQUIREMENTS:
1. CLI INTERFACE (src/index.js)
Subcommands:
node src/index.js calendar [--project <code>] [--month <YYYY-MM>] (show delivery calendar)
node src/index.js conflicts [--project <code>] (check for conflicts)
node src/index.js checklist <delivery-id> (generate delivery day checklist)
node src/index.js week [--date <YYYY-MM-DD>] (show this week's deliveries)
node src/index.js export-html [--project <code>] [--month <YYYY-MM>] (export HTML calendar)
node src/index.js export-ics [--project <code>] (export ICS file)
Options:
--data-dir <path> (default: ./data)
--output <path> (default: ./output)
2. CSV FORMAT (data/*.csv)
Columns: delivery_id, project, equipment_type, description, vendor,
delivery_date, delivery_window, crane_required, crane_tonnage,
staging_area_sqft, dock_access, rigging_required, estimated_hours,
gc_coordination, status, notes
delivery_window values: "AM" (7am-12pm), "PM" (12pm-5pm), "FULL" (7am-5pm)
status values: scheduled, confirmed, in-transit, delivered, delayed, rescheduled
Sample data: 5-8 deliveries per project over the next 3 months, including:
- At least one same-day conflict per project
- At least one crane double-booking across projects
- Mix of equipment types requiring different logistics
3. CONFLICT DETECTION (src/conflicts.js)
Check for and flag these conflict types:
a. Same-site same-day: two deliveries at the same project on the same date
when total estimated_hours > available window
b. Crane conflict: two deliveries on the same date requiring a crane
(assuming one crane available per site)
c. Staging overflow: total staging_area_sqft for same-date deliveries
exceeds 2000 sqft (typical staging area capacity)
d. Dock conflict: two deliveries needing dock access in the same window
(AM/PM) at the same site
e. GC coordination conflict: delivery scheduled on a date with noted
GC activity that blocks access
For each conflict, output:
- Conflict type and severity (warning vs critical)
- Which deliveries are involved
- Suggested resolution (reschedule one delivery, request additional crane, etc.)
4. DELIVERY CHECKLISTS (src/checklist.js)
Equipment-specific checklists:
- Generator: crane booking confirmation, flatbed route clearance, rigging
crew scheduled, electrical disconnect verified, fuel tank empty for
transport, EPA containment pad ready
- Switchgear: corridor clearance measured, floor load capacity verified,
electrical room access clear, rigging plan approved, temporary power
available for testing
- Chiller: crane booking, pipe connections prepped, isolation valves closed,
refrigerant handling crew on standby, commissioning agent scheduled
- CRAH: freight elevator reserved, raised floor clearance verified, dolly
and pallet jack available, data hall power and piping ready
- UPS: battery room ventilation verified, battery delivery separate from
frame, rigging path clear, DC plant coordination
- PDU: freight elevator access, rack row clearance, whip connections prepped
Output as printable Markdown checklist with checkboxes.
5. HTML CALENDAR (src/calendar.js + templates/calendar.html)
Generate a monthly calendar view as HTML:
- Grid layout with days of the month
- Color-coded blocks per project (SV9 = blue, CH2 = green, DEN3 = orange)
- Delivery details on hover or click (equipment, vendor, time window)
- Conflict indicators (red border on days with conflicts)
- Responsive layout for tablet viewing on site
DEPENDENCIES: commander, csv-parse, chalk, cli-table3
SAMPLE RUN:
node src/index.js conflicts
# Shows all conflicts across all projects
node src/index.js week
# Shows this week's deliveries across all projects
node src/index.js checklist SV9-DEL-001
# Generates delivery day checklist for SV9 generator delivery
node src/index.js export-html --month 2026-05
# Exports HTML calendar for May 2026

What you get

Fire it up

Terminal window
cd delivery-war-room
npm install
node src/index.js conflicts
node src/index.js week
node src/index.js checklist SV9-DEL-001

The conflicts command is the one that earns its keep immediately — it shows you every scheduling collision across your entire portfolio before any trucks roll. That crane double-booking on the 15th? Found it. That CRAH delivery scheduled the same day the GC is pouring the second floor slab? Caught it. The week command is your Monday morning briefing: here’s what’s coming in this week, across all sites, no surprises. And checklist gives you a printable, equipment-specific logistics plan for delivery day so you’re not standing in the parking lot going “wait, did anyone book the rigging crew?”

If something is off

ProblemFollow-up prompt
Conflict detection misses same-day deliveriesThe conflict detector isn't finding deliveries on the same date at the same site. Make sure date comparison uses date strings (YYYY-MM-DD) not Date objects with time components. Two deliveries are a same-day conflict if they share the same project code AND delivery_date value.
HTML calendar doesn’t render properlyThe HTML calendar file is generated but shows raw HTML or broken layout. Make sure the template includes proper DOCTYPE, viewport meta tag, and inline CSS (not external stylesheets) so it works when opened directly in a browser without a server.
Checklists are generic for all equipmentEvery delivery gets the same generic checklist regardless of equipment type. The checklist.js module should use the equipment_type field to select the appropriate checklist template. Match on: generator, switchgear, chiller, crah, ups, pdu. Default to a generic checklist for unknown types.

🔧

When Things Go Wrong

Use the Symptom → Evidence → Request pattern: describe what you see, paste the error, then ask for a fix.

Symptom
The crane conflict detection flags deliveries at different sites
Evidence
A generator delivery at SV9 and a chiller delivery at CH2 on the same day are flagged as a crane conflict, but they're at different sites with different cranes
What to ask the AI
"Crane conflicts should only be flagged for deliveries at the SAME site on the same date. Each site has its own crane arrangements. Fix the conflict detection to check both delivery_date AND project code match before flagging a crane conflict."
Symptom
The week command shows the wrong week's deliveries
Evidence
Running 'week' on a Monday shows deliveries from last week instead of this week
What to ask the AI
"The week command should default to showing the current Monday through Sunday. Calculate the start of the current week (most recent Monday) and filter deliveries where delivery_date falls between Monday and Sunday inclusive. If --date is specified, show the week containing that date."

How it works (the 2-minute explanation)

Let’s walk through what’s actually happening, because “conflict detection” sounds fancy but it’s honestly pretty straightforward logic — just logic you don’t want to do in your head while managing three active sites.

  1. CSV loader reads delivery schedules from all your project files and merges them into one unified timeline. This is the step that replaces your shared Excel calendar that Dave keeps saving over with his version. One source of truth, all projects, no merge conflicts.
  2. Conflict detection cross-references every delivery by date, site, and resource requirements. It checks five things: same-day same-site collisions, crane double-bookings, staging space overflows, dock access conflicts, and GC activity overlaps. For each conflict, it tells you exactly what’s clashing and suggests how to fix it. It’s doing the spatial and temporal reasoning that you currently do in your head while driving between sites — except it doesn’t miss things because it’s not also thinking about lunch.
  3. Checklist generator knows that a generator delivery and a CRAH delivery are completely different animals. Generator needs a crane, rigging crew, EPA containment pad, and someone to verify the electrical disconnect. CRAHs need a freight elevator reservation, dollies, and raised floor clearance. The tool selects the right checklist for the equipment type and formats it as a printable Markdown document with checkboxes you can actually check off on your tablet in the field.
  4. Calendar renderer maps everything onto a monthly grid with color-coding by project and red borders on conflict days. This is what you pull up when the GC asks “what do we have coming in?” and you want to look like you have your shit together. Which, now, you actually do.

Customize it

Once this is running, you’re going to immediately think of two things you wish it did. Here are the obvious ones.

Add delivery status tracking

Add a "track" subcommand that updates delivery status:
node src/index.js track SV9-DEL-001 --status confirmed --notes "Crane booked, rigging crew confirmed"
Persist status changes to the CSV. Add a "dashboard" view showing delivery
pipeline: scheduled → confirmed → in-transit → delivered, with counts per stage.

Add weather integration

Add a --weather flag to the week command that checks weather forecasts for
delivery dates. Flag deliveries on days with >50% rain probability or wind
speeds >25mph (critical for crane operations). Use a free weather API and
cache results. Output weather warnings inline with the delivery schedule.

Key takeaways

  • Conflict detection catches the $10K mistakes before they happen — a crane sitting idle because two deliveries showed up on the same day costs $3,000-$5,000. Per day. Five minutes running this tool on Monday morning saves you that call to your VP where you explain why there’s a standby charge on the invoice.
  • Generic checklists are how things get missed — a generator delivery has exactly nothing in common with a PDU delivery from a logistics standpoint. If your checklist doesn’t know the difference between “reserve a 200-ton crane” and “reserve the freight elevator,” someone’s going to be standing in a parking lot making panicked phone calls at 7 AM.
  • The HTML calendar is your secret weapon for GC coordination — sharing a color-coded calendar with your GC, crane company, and rigging crew gets everyone looking at the same picture. No more “I didn’t know that was coming in Tuesday.” Yes you did. It was on the calendar. The one I sent you. Twice.
  • Portfolio-wide delivery views show you when you’re spread too thin — when you’re managing three active builds, seeing all deliveries on one calendar helps you spot the weeks where you’ve got critical deliveries at two different sites on the same day. There’s no crane conflict, but there’s a YOU conflict — you can’t be in two places at once, and some deliveries need you there personally.

KNOWLEDGE CHECK

The conflict detector flags two deliveries at SV9 on the same day: a 2500kW generator (needs 200-ton crane, FULL day window, 1500 sqft staging) and twenty PDUs (needs freight elevator, AM window, 400 sqft staging). What's the right resolution?


What’s next

You’ve got budgets tracked and deliveries coordinated. Your equipment is arriving on time, to the right site, with the right crew and the right crane. Nobody’s paying standby charges. Nobody’s getting surprised. You look like you have your shit together — because you actually do.

Next up is The Executive Briefing Generator — the tool that pulls data from everything you’ve built so far (RFPs, vendor scores, submittals, lead times, budgets, deliveries) and produces portfolio-level scorecards, risk heat maps, and AI-generated narrative briefings for your VP’s monthly review. This is where the individual tools stop being individual tools and start being an integrated procurement intelligence platform. It’s the answer to “where do we stand?” that doesn’t require you to spend a weekend assembling slides.