Comprehensive project cost management including budget vs actual tracking, cost forecasting, variance analysis, invoice reconciliation, change order cost impact, cash flow projections, and cost reporting. Integrates with pay-app, change-order, procurement, and schedule systems. Triggers: "cost tracking", "cost report", "budget vs actual", "cost forecast", "cost variance", "invoice reconciliation", "cash flow", "budget status", "cost performance", "cost summary", "EAC", "burn rate", "cost overrun".
From foremanos-costnpx claudepluginhub mgoodman60/foreman-os-plugin --plugin foremanos-costThis skill uses the workspace's default tool permissions.
references/skill-detail.mdFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Retrieves current documentation, API references, and code examples for libraries, frameworks, SDKs, CLIs, and services via Context7 CLI. Ideal for API syntax, configs, migrations, and setup queries.
Uses ctx7 CLI to fetch current library docs, manage AI coding skills (install/search/generate), and configure Context7 MCP for AI editors.
The cost-tracking skill provides comprehensive cost management for construction projects. It enables superintendents and project managers to track actual costs against budget, forecast final costs, identify cost variances, reconcile invoices against commitments, manage change order costs, and project cash flow. The skill integrates seamlessly with pay applications, change orders, procurement logs, and schedules to maintain real-time project financial health.
Project cost management operates on three core pillars:
The cost-tracking skill manages all three pillars with early warning alerts when spending deviates from plan.
Budgets are organized by CSI Division to align with project specifications and standard construction cost accounting:
{
"budget": {
"original_contract_value": 2770000,
"approved_cos_amount": 35000,
"current_contract_value": 2805000,
"budget_by_division": [
{
"division_number": "01",
"division_title": "General Requirements",
"description": "Site mobilization, project management, temporary facilities",
"original_amount": 145000,
"applied_cos": [
{ "co_id": "CO-001", "amount": 5000 },
{ "co_id": "CO-003", "amount": -2000 }
],
"current_amount": 148000,
"committed_costs": 65000,
"invoiced_costs": 45000,
"paid_costs": 40500,
"forecast_to_complete": 85000,
"total_forecast": 130500,
"notes": ""
},
{
"division_number": "02",
"division_title": "Existing Conditions",
"description": "Demolition and site preparation",
"original_amount": 85000,
"applied_cos": [],
"current_amount": 85000,
"committed_costs": 78500,
"invoiced_costs": 65000,
"paid_costs": 58500,
"forecast_to_complete": 12000,
"total_forecast": 77000,
"notes": ""
}
]
}
}
| Field | Description | Example |
|---|---|---|
| division_number | CSI division code (01–33) | "03" (Concrete) |
| division_title | CSI division name | "Cast-in-Place Concrete" |
| description | Detailed scope summary | "Foundations, slabs, ramps" |
| original_amount | Contract baseline for this division | $185,000 |
| applied_cos | Array of approved COs affecting this division | [{"co_id":"CO-001","amount":5000}] |
| current_amount | Original + applied COs = current budget | $190,000 |
| committed_costs | PO amounts, sub contracts, approved purchase orders | $130,000 |
| invoiced_costs | Amounts invoiced by subs/suppliers (not yet paid) | $85,000 |
| paid_costs | Cumulative paid amounts | $80,000 |
| forecast_to_complete | Estimated cost to finish remaining work | $110,000 |
| total_forecast | Invoiced + forecast to complete | $195,000 |
When the superintendent first sets up cost tracking via /cost, initialize cost-data.json with:
Required fields:
original_contract_value (number) — Total contract amount from the executed contractbudget_by_division[] — Array of CSI division budget line items, each with:
division (string) — CSI division code (e.g., "03", "04", "05")description (string) — Division name (e.g., "Concrete", "Masonry", "Metals")original_amount (number) — Original budget for this divisioncurrent_amount (number) — Current budget (original + approved COs)committed_costs (number) — Subcontract + PO amountsapplied_cos[] (array) — Change orders applied to this division, each referencing change-order-log.json entriescontingency (object):
original_amount (number) — Starting contingencycurrent_amount (number) — Remaining after drawsdraws[] (array) — Each draw with date, amount, description, CO referenceallowances[] (array) — Contract allowances with original vs. spent trackingSchedule of Values (SOV) linkage:
pay-app-log.json SOV line items via sov_line_numberearned-value-managementsov_line_number, description, scheduled_value, work_completed_previous, work_completed_this_period, materials_presently_stored, total_completed_and_stored, percent_complete, balance_to_finish, retainageThe Cost Performance Index measures how efficiently the project is spending money:
CPI = Earned Value / Actual Costs
Where:
Earned Value = Current budget × % complete
Actual Costs = Invoiced + paid costs to date
Interpretation:
Example:
Uses current cost performance to project final cost:
EAC = Actual Costs + (Remaining Work / CPI)
Or equivalently:
EAC = Budget / CPI
Example:
Uses fresh estimate of remaining work (accounting for known scope changes):
EAC = Actual Costs + Revised Estimate to Complete
Where:
Revised Estimate = Original estimate − (% complete work)
Example:
Projects final cost based on average daily/weekly spending:
EAC = Actual Costs + (Daily Burn Rate × Days Remaining)
Example:
Variance tracking identifies where costs deviate from plan:
Budget Variance = Current Budget − Total Forecast
Or as % of Budget:
Variance % = (Budget Variance / Current Budget) × 100%
Example — Division 03 (Concrete):
When a project falls behind schedule, labor and overhead costs extend:
Schedule Variance Cost = Daily overhead rate × Days behind schedule
Where:
Daily overhead = (Division 01 budget / Total project days)
Example:
Actual material costs vs. estimated:
Material Variance = (Actual Material Cost − Budgeted Material Cost)
By Line Item:
Concrete variance = Actual spent on concrete − budgeted for concrete
Steel variance = Actual spent on steel − budgeted for steel
Example:
Contingency is reserve funds to cover unforeseen conditions and changes:
{
"contingency": {
"original_contingency_amount": 150000,
"contingency_percentage_of_budget": 5.4,
"spent_against_contingency": [
{ "co_id": "CO-001", "amount": 50000, "description": "Owner-directed scope addition" },
{ "co_id": "CO-003", "amount": -15000, "description": "Value engineering credit" }
],
"total_spent_from_contingency": 35000,
"available_contingency": 115000,
"available_contingency_percentage": 4.1,
"drawdown_rate_per_month": 5833,
"months_of_contingency_remaining": 19.7,
"alert_threshold_percent": 50,
"contingency_status": "healthy"
}
}
Contingency Drawdown Rules:
Maximum billable amount = Line item contract amount × % complete
Example:
Division 03 contract: $185,000
Division 03 % complete: 45%
Maximum billable: $185,000 × 0.45 = $83,250
If invoice shows: $87,000 → FLAG OVERBILLING
Difference: $3,750 excess
Action: Request clarification or deny until work verified
{
"sub_retainage_tracking": {
"subcontractor": "W Principles (Concrete)",
"contract_amount": 185000,
"invoiced_to_date": 120000,
"retainage_rate": 0.10,
"retainage_held": 12000,
"amount_paid": 108000,
"percent_complete": 65,
"retainage_policy": "W Principles flat 10% until substantial completion",
"retainage_released_at_substantial_completion": true,
"notes": "Flat 10% retainage per W Principles standard"
}
}
When project intelligence is loaded, cross-reference cost data against extracted quantities, schedule progress, and procurement to identify cost risks early.
Compare budgeted quantities against plan-extracted quantities:
plans-spatial.json → quantities → for each CSI division, sum the relevant quantities (concrete CY, wall SF, flooring SF, fixture counts, etc.)cost-data.json → budget_by_division[]Cross-check cost progress against schedule progress:
schedule.json → percent_complete → overall project progressVerify change order cost impacts are properly reflected in budget:
change-order-log.json → for each CO with status "approved"cost_approved amount appears in the correct budget division's applied_cos[] arrayapplied_cos includes CO-005Compare committed material costs against budget line items:
procurement-log.json → sum total_cost by spec section → map to CSI divisionscommitted_costsExtended reference: Detailed examples, templates, scoring rubrics, and best practices are in
references/skill-detail.md.