-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
help wantedExtra attention is neededExtra attention is needednew-toolNew construction tool to addNew construction tool to add
Description
The problem
Change orders are one of the most time-consuming parts of construction PM work. Every CO requires:
- Scope description
- Quantity breakdown (materials, labor, equipment)
- Unit costs → extended costs
- Markup
- Total CO value
- Formatted document ready to send to the owner or GC
Right now contractors are doing this in Excel or Word from scratch every time.
What to build
A generate_change_order() function in tools/ (and optionally a UI card in index.html) that takes:
generate_change_order(
project_name="Main St Waterline",
co_number=3,
description="Additional rock excavation — 200 LF unforeseen",
items=[
{"description": "Rock excavation", "quantity": 200, "unit": "LF", "unit_cost": 85},
{"description": "Additional compaction testing", "quantity": 4, "unit": "EA", "unit_cost": 250},
],
markup=0.15,
prepared_by="Mason Earl"
)And returns a formatted CO document (HTML → PDF, similar to how proposal_tools.py works).
Prior art in this repo
Look at tools/proposal/proposal_tools.py and api/proposal.js — the CO generator should follow the same pattern: Python generates HTML, Vercel API route serves it, frontend exports to PDF.
Good first issue?
If you've never contributed here before, this is a great one — the proposal tool is already a working template to follow.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is needednew-toolNew construction tool to addNew construction tool to add