add name for each entry of budget & cost table

This commit is contained in:
Satyam-Rastogi
2026-05-12 17:37:11 +05:30
parent 3a47e1f88f
commit 91392bebcb
+98 -98
View File
@@ -2022,12 +2022,12 @@ const MOCK_PROJECTS = [
changeOrderCount: 0, changeOrderCount: 0,
pendingInvoiceCount: 2, pendingInvoiceCount: 2,
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials - Shingles', allocated: 15000, committed: 14200, actual: 8500 }, { name: 'ABC Supply Co.', category: 'Materials - Shingles', allocated: 15000, committed: 14200, actual: 8500 },
{ category: 'Materials - Underlayment', allocated: 3500, committed: 3355, actual: 3355 }, { name: 'ABC Supply Co.', category: 'Materials - Underlayment', allocated: 3500, committed: 3355, actual: 3355 },
{ category: 'Labor - Tear Off', allocated: 8000, committed: 8000, actual: 8000 }, { name: 'Texas Roofing Crew A', category: 'Labor - Tear Off', allocated: 8000, committed: 8000, actual: 8000 },
{ category: 'Labor - Install', allocated: 12000, committed: 7200, actual: 0 }, { name: 'Texas Roofing Crew A', category: 'Labor - Install', allocated: 12000, committed: 7200, actual: 0 },
{ category: 'Permits & Inspection', allocated: 2500, committed: 2500, actual: 2645 }, { name: 'City of Plano', category: 'Permits & Inspection', allocated: 2500, committed: 2500, actual: 2645 },
{ category: 'Cleanup & Haul-Away', allocated: 4000, committed: 3245, actual: 0 } { name: 'Junk King DFW', category: 'Cleanup & Haul-Away', allocated: 4000, committed: 3245, actual: 0 }
], ],
changeOrders: [], changeOrders: [],
rfis: [], rfis: [],
@@ -2156,11 +2156,11 @@ const MOCK_PROJECTS = [
{ id: 'ms_003_6', name: 'System Test and Commissioning', dueDate: '2026-02-25', status: 'pending', assignedTo: 'v6' } { id: 'ms_003_6', name: 'System Test and Commissioning', dueDate: '2026-02-25', status: 'pending', assignedTo: 'v6' }
], ],
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Equipment & Materials', allocated: 15000, committed: 15000, actual: 12500 }, { name: 'Comfort Air Systems', category: 'Equipment & Materials', allocated: 15000, committed: 15000, actual: 12500 },
{ category: 'Labor - HVAC', allocated: 8000, committed: 8000, actual: 4000 }, { name: 'Comfort Air Systems', category: 'Labor - HVAC', allocated: 8000, committed: 8000, actual: 4000 },
{ category: 'Labor - Electrical', allocated: 3000, committed: 3000, actual: 0 }, { name: 'Sparky Electric', category: 'Labor - Electrical', allocated: 3000, committed: 3000, actual: 0 },
{ category: 'Permits & Fees', allocated: 1000, committed: 1000, actual: 950 }, { name: 'City of Plano', category: 'Permits & Fees', allocated: 1000, committed: 1000, actual: 950 },
{ category: 'Contingency', allocated: 5000, committed: 1200, actual: 950 } { name: 'Reserve Fund', category: 'Contingency', allocated: 5000, committed: 1200, actual: 950 }
], ],
invoices: [ invoices: [
{ id: 'inv_003_1', amount: 8200, submittedBy: 'con_001', status: 'paid', dueDate: '2026-01-15', datePaid: '2026-01-16' }, { id: 'inv_003_1', amount: 8200, submittedBy: 'con_001', status: 'paid', dueDate: '2026-01-15', datePaid: '2026-01-16' },
@@ -2232,13 +2232,13 @@ const MOCK_PROJECTS = [
{ id: 'ms_004_7', name: 'Final Punch List', dueDate: '2026-02-25', status: 'pending', assignedTo: 'con_001' } { id: 'ms_004_7', name: 'Final Punch List', dueDate: '2026-02-25', status: 'pending', assignedTo: 'con_001' }
], ],
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Demolition', allocated: 5000, committed: 5500, actual: 5500 }, { name: 'DemoCrew Pro', category: 'Demolition', allocated: 5000, committed: 5500, actual: 5500 },
{ category: 'Framing & Structural', allocated: 8000, committed: 8500, actual: 8500 }, { name: 'Texas Builders LLC', category: 'Framing & Structural', allocated: 8000, committed: 8500, actual: 8500 },
{ category: 'Electrical', allocated: 7000, committed: 7000, actual: 4800 }, { name: 'Sparky Electric', category: 'Electrical', allocated: 7000, committed: 7000, actual: 4800 },
{ category: 'Plumbing', allocated: 6000, committed: 6500, actual: 6500 }, { name: 'DFW Foundation Pros', category: 'Plumbing', allocated: 6000, committed: 6500, actual: 6500 },
{ category: 'Drywall & Paint', allocated: 9000, committed: 10000, actual: 10000 }, { name: 'Premier Finishes', category: 'Drywall & Paint', allocated: 9000, committed: 10000, actual: 10000 },
{ category: 'Flooring & Trim', allocated: 12000, committed: 15500, actual: 15500 }, { name: 'FloorCraft Inc.', category: 'Flooring & Trim', allocated: 12000, committed: 15500, actual: 15500 },
{ category: 'Contingency', allocated: 8000, committed: 9300, actual: 11500 } { name: 'Reserve Fund', category: 'Contingency', allocated: 8000, committed: 9300, actual: 11500 }
], ],
changeOrders: [ changeOrders: [
{ id: 'CO-004-01', title: 'Scope Expansion - Kitchen Island', amount: 4500, status: 'approved', dateSubmitted: '2026-01-10', description: 'Add a custom 6ft island with quartz countertop and built-in microwave.' }, { id: 'CO-004-01', title: 'Scope Expansion - Kitchen Island', amount: 4500, status: 'approved', dateSubmitted: '2026-01-10', description: 'Add a custom 6ft island with quartz countertop and built-in microwave.' },
@@ -2316,11 +2316,11 @@ const MOCK_PROJECTS = [
{ id: 'ms_005_5', name: 'Trim and Caulking', dueDate: '2026-02-15', status: 'pending', assignedTo: 'con_001' } { id: 'ms_005_5', name: 'Trim and Caulking', dueDate: '2026-02-15', status: 'pending', assignedTo: 'con_001' }
], ],
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials - Siding', allocated: 12000, committed: 12000, actual: 8000 }, { name: 'ABC Supply Co.', category: 'Materials - Siding', allocated: 12000, committed: 12000, actual: 8000 },
{ category: 'Labor - Prep & Install', allocated: 9000, committed: 9000, actual: 3500 }, { name: 'Siding Solutions TX', category: 'Labor - Prep & Install', allocated: 9000, committed: 9000, actual: 3500 },
{ category: 'Equipment Rental', allocated: 2000, committed: 2000, actual: 1500 }, { name: 'Sunbelt Rentals', category: 'Equipment Rental', allocated: 2000, committed: 2000, actual: 1500 },
{ category: 'Structural Repairs (CO)', allocated: 0, committed: 850, actual: 850 }, { name: 'Texas Builders LLC', category: 'Structural Repairs (CO)', allocated: 0, committed: 850, actual: 850 },
{ category: 'Contingency', allocated: 5000, committed: 5000, actual: 350 } { name: 'Reserve Fund', category: 'Contingency', allocated: 5000, committed: 5000, actual: 350 }
], ],
invoices: [ invoices: [
{ id: 'inv_005_1', amount: 8400, submittedBy: 'con_001', status: 'paid', dueDate: '2026-01-12', datePaid: '2026-01-13' }, { id: 'inv_005_1', amount: 8400, submittedBy: 'con_001', status: 'paid', dueDate: '2026-01-12', datePaid: '2026-01-13' },
@@ -2433,14 +2433,14 @@ const MOCK_PROJECTS = [
changeOrderCount: 0, changeOrderCount: 0,
pendingInvoiceCount: 2, pendingInvoiceCount: 2,
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials - TPO Membrane', allocated: 38000, committed: 35400, actual: 11400 }, { name: 'Firestone Building Products', category: 'Materials - TPO Membrane', allocated: 38000, committed: 35400, actual: 11400 },
{ category: 'Materials - Insulation', allocated: 18000, committed: 16800, actual: 5550 }, { name: 'Owens Corning', category: 'Materials - Insulation', allocated: 18000, committed: 16800, actual: 5550 },
{ category: 'Materials - Fasteners/Adhesive', allocated: 8000, committed: 7200, actual: 2080 }, { name: 'ABC Supply Co.', category: 'Materials - Fasteners/Adhesive', allocated: 8000, committed: 7200, actual: 2080 },
{ category: 'Labor - Section A', allocated: 22000, committed: 18500, actual: 18500 }, { name: 'Texas Roofing Crew A', category: 'Labor - Section A', allocated: 22000, committed: 18500, actual: 18500 },
{ category: 'Labor - Section B', allocated: 22000, committed: 8000, actual: 0 }, { name: 'Texas Roofing Crew A', category: 'Labor - Section B', allocated: 22000, committed: 8000, actual: 0 },
{ category: 'Crane Rental', allocated: 8000, committed: 5600, actual: 4200 }, { name: 'All American Crane', category: 'Crane Rental', allocated: 8000, committed: 5600, actual: 4200 },
{ category: 'Permits & Inspection', allocated: 4000, committed: 3500, actual: 3270 }, { name: 'City of Plano', category: 'Permits & Inspection', allocated: 4000, committed: 3500, actual: 3270 },
{ category: 'Safety Equipment', allocated: 5000, committed: 3000, actual: 3000 } { name: 'SafetyFirst Supply', category: 'Safety Equipment', allocated: 5000, committed: 3000, actual: 3000 }
], ],
changeOrders: [ changeOrders: [
{ id: 'CO-007-1', title: 'Additional Drainage Scuppers', amount: 4200, status: 'pending', dateSubmitted: '2026-02-10', description: 'Building management requested 4 additional scuppers on east elevation for improved water management' } { id: 'CO-007-1', title: 'Additional Drainage Scuppers', amount: 4200, status: 'pending', dateSubmitted: '2026-02-10', description: 'Building management requested 4 additional scuppers on east elevation for improved water management' }
@@ -4363,10 +4363,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 18200, actualCost: 0, variancePercent: 0, completionPct: 25, healthScore: 88, estimatedAmount: 18200, actualCost: 0, variancePercent: 0, completionPct: 25, healthScore: 88,
contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001', contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 9800, committed: 9800, actual: 0 }, { name: 'ABC Supply Co.', category: 'Materials', allocated: 9800, committed: 9800, actual: 0 },
{ category: 'Labor', allocated: 6200, committed: 6200, actual: 0 }, { name: 'Plano Roofing Crew A', category: 'Labor', allocated: 6200, committed: 6200, actual: 0 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 0 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 0 },
{ category: 'Contingency',allocated: 1600, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 1600, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-22', notes: 'Deposit received.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-22', notes: 'Deposit received.' },
@@ -4394,10 +4394,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 31500, actualCost: 0, variancePercent: 0, completionPct: 20, healthScore: 85, estimatedAmount: 31500, actualCost: 0, variancePercent: 0, completionPct: 20, healthScore: 85,
contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002', contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 17000, committed: 17000, actual: 0 }, { name: 'Owens Corning', category: 'Materials', allocated: 17000, committed: 17000, actual: 0 },
{ category: 'Labor', allocated: 11500, committed: 11500, actual: 0 }, { name: 'Plano Siding Crew', category: 'Labor', allocated: 11500, committed: 11500, actual: 0 },
{ category: 'Permits', allocated: 800, committed: 800, actual: 0 }, { name: 'City of Plano', category: 'Permits', allocated: 800, committed: 800, actual: 0 },
{ category: 'Contingency',allocated: 2200, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 2200, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-20', notes: 'Insurance approved full scope.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-20', notes: 'Insurance approved full scope.' },
@@ -4428,10 +4428,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 27800, actualCost: 0, variancePercent: 0, completionPct: 28, healthScore: 92, estimatedAmount: 27800, actualCost: 0, variancePercent: 0, completionPct: 28, healthScore: 92,
contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003', contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 15200, committed: 15200, actual: 0 }, { name: 'GAF Materials', category: 'Materials', allocated: 15200, committed: 15200, actual: 0 },
{ category: 'Labor', allocated: 9800, committed: 9800, actual: 0 }, { name: 'Plano Roofing Crew B', category: 'Labor', allocated: 9800, committed: 9800, actual: 0 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 0 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 0 },
{ category: 'Contingency',allocated: 2200, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 2200, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-11', notes: '50% deposit received.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-11', notes: '50% deposit received.' },
@@ -4458,11 +4458,11 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 22400, actualCost: 0, variancePercent: 0, completionPct: 22, healthScore: 86, estimatedAmount: 22400, actualCost: 0, variancePercent: 0, completionPct: 22, healthScore: 86,
contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001', contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Roofing Materials', allocated: 10800, committed: 10800, actual: 0 }, { name: 'ABC Supply Co.', category: 'Roofing Materials', allocated: 10800, committed: 10800, actual: 0 },
{ category: 'Gutter Materials', allocated: 3400, committed: 3400, actual: 0 }, { name: 'LeafGuard DFW', category: 'Gutter Materials', allocated: 3400, committed: 3400, actual: 0 },
{ category: 'Labor', allocated: 6400, committed: 6400, actual: 0 }, { name: 'Plano Roofing Crew A', category: 'Labor', allocated: 6400, committed: 6400, actual: 0 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 0 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 0 },
{ category: 'Contingency', allocated: 1200, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1200, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-25', notes: 'Install Apr 18.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-25', notes: 'Install Apr 18.' },
@@ -4489,10 +4489,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 19600, actualCost: 0, variancePercent: 0, completionPct: 24, healthScore: 80, estimatedAmount: 19600, actualCost: 0, variancePercent: 0, completionPct: 24, healthScore: 80,
contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004', contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 10500, committed: 10500, actual: 0 }, { name: 'James Hardie', category: 'Materials', allocated: 10500, committed: 10500, actual: 0 },
{ category: 'Labor', allocated: 7000, committed: 7000, actual: 0 }, { name: 'Plano Roofing Crew C', category: 'Labor', allocated: 7000, committed: 7000, actual: 0 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 0 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 0 },
{ category: 'Contingency',allocated: 1500, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 1500, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-28', notes: 'Supplement approved after adjuster re-inspection.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-28', notes: 'Supplement approved after adjuster re-inspection.' },
@@ -4523,10 +4523,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 16800, actualCost: 9200, variancePercent: -3.6, completionPct: 65, healthScore: 82, estimatedAmount: 16800, actualCost: 9200, variancePercent: -3.6, completionPct: 65, healthScore: 82,
contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001', contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 9000, committed: 9000, actual: 8600 }, { name: 'ABC Supply Co.', category: 'Materials', allocated: 9000, committed: 9000, actual: 8600 },
{ category: 'Labor', allocated: 5800, committed: 5800, actual: 600 }, { name: 'Plano Roofing Crew A', category: 'Labor', allocated: 5800, committed: 5800, actual: 600 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 600 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 600 },
{ category: 'Contingency',allocated: 1400, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 1400, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-28', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-28', notes: '' },
@@ -4557,10 +4557,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 28500, actualCost: 14800, variancePercent: 1.4, completionPct: 55, healthScore: 78, estimatedAmount: 28500, actualCost: 14800, variancePercent: 1.4, completionPct: 55, healthScore: 78,
contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002', contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 15400, committed: 15400, actual: 14200 }, { name: 'Owens Corning', category: 'Materials', allocated: 15400, committed: 15400, actual: 14200 },
{ category: 'Labor', allocated: 10400, committed: 10400, actual: 600 }, { name: 'Plano Siding Crew', category: 'Labor', allocated: 10400, committed: 10400, actual: 600 },
{ category: 'Permits', allocated: 800, committed: 800, actual: 800 }, { name: 'City of Plano', category: 'Permits', allocated: 800, committed: 800, actual: 800 },
{ category: 'Contingency', allocated: 1900, committed: 400, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1900, committed: 400, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-25', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-25', notes: '' },
@@ -4591,11 +4591,11 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 21200, actualCost: 16100, variancePercent: -4.2, completionPct: 78, healthScore: 88, estimatedAmount: 21200, actualCost: 16100, variancePercent: -4.2, completionPct: 78, healthScore: 88,
contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003', contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Roofing Materials', allocated: 10200, committed: 10200, actual: 9800 }, { name: 'ABC Supply Co.', category: 'Roofing Materials', allocated: 10200, committed: 10200, actual: 9800 },
{ category: 'Gutter Materials', allocated: 3200, committed: 3200, actual: 3100 }, { name: 'LeafGuard DFW', category: 'Gutter Materials', allocated: 3200, committed: 3200, actual: 3100 },
{ category: 'Labor', allocated: 6000, committed: 6000, actual: 3200 }, { name: 'Plano Roofing Crew B', category: 'Labor', allocated: 6000, committed: 6000, actual: 3200 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 600 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 600 },
{ category: 'Contingency', allocated: 1200, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1200, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-24', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-24', notes: '' },
@@ -4625,10 +4625,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 34500, actualCost: 22000, variancePercent: 2.9, completionPct: 60, healthScore: 90, estimatedAmount: 34500, actualCost: 22000, variancePercent: 2.9, completionPct: 60, healthScore: 90,
contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004', contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Premium Materials', allocated: 19200, committed: 19200, actual: 18800 }, { name: 'Owens Corning', category: 'Premium Materials', allocated: 19200, committed: 19200, actual: 18800 },
{ category: 'Labor', allocated: 12000, committed: 12000, actual: 3200 }, { name: 'Plano Roofing Crew C', category: 'Labor', allocated: 12000, committed: 12000, actual: 3200 },
{ category: 'Permits', allocated: 700, committed: 700, actual: 700 }, { name: 'City of Plano', category: 'Permits', allocated: 700, committed: 700, actual: 700 },
{ category: 'Contingency', allocated: 2600, committed: 1000, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 2600, committed: 1000, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-03', notes: 'Cash client. Barkwood color selected.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-03', notes: 'Cash client. Barkwood color selected.' },
@@ -4656,10 +4656,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 9400, actualCost: 6200, variancePercent: -1.1, completionPct: 70, healthScore: 84, estimatedAmount: 9400, actualCost: 6200, variancePercent: -1.1, completionPct: 70, healthScore: 84,
contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002', contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 4800, committed: 4800, actual: 4600 }, { name: 'GAF Materials', category: 'Materials', allocated: 4800, committed: 4800, actual: 4600 },
{ category: 'Labor', allocated: 3600, committed: 3600, actual: 1600 }, { name: 'Plano Siding Crew', category: 'Labor', allocated: 3600, committed: 3600, actual: 1600 },
{ category: 'Permits', allocated: 500, committed: 500, actual: 500 }, { name: 'City of Plano', category: 'Permits', allocated: 500, committed: 500, actual: 500 },
{ category: 'Contingency',allocated: 500, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency',allocated: 500, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-07', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-03-07', notes: '' },
@@ -4686,10 +4686,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 42000, actualCost: 18000, variancePercent: 0.8, completionPct: 45, healthScore: 74, estimatedAmount: 42000, actualCost: 18000, variancePercent: 0.8, completionPct: 45, healthScore: 74,
contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001', contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 22000, committed: 22000, actual: 17200 }, { name: 'James Hardie', category: 'Materials', allocated: 22000, committed: 22000, actual: 17200 },
{ category: 'Labor', allocated: 15500, committed: 15500, actual: 800 }, { name: 'Plano Roofing Crew A', category: 'Labor', allocated: 15500, committed: 15500, actual: 800 },
{ category: 'Permits', allocated: 900, committed: 900, actual: 900 }, { name: 'City of Plano', category: 'Permits', allocated: 900, committed: 900, actual: 900 },
{ category: 'Contingency', allocated: 3600, committed: 2000, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 3600, committed: 2000, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-15', notes: 'Largest job this quarter.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-15', notes: 'Largest job this quarter.' },
@@ -4721,10 +4721,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 17200, actualCost: 16950, variancePercent: -1.5, completionPct: 100, healthScore: 95, estimatedAmount: 17200, actualCost: 16950, variancePercent: -1.5, completionPct: 100, healthScore: 95,
contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003', contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 9200, committed: 9200, actual: 8980 }, { name: 'ABC Supply Co.', category: 'Materials', allocated: 9200, committed: 9200, actual: 8980 },
{ category: 'Labor', allocated: 6000, committed: 6000, actual: 6000 }, { name: 'Plano Roofing Crew B', category: 'Labor', allocated: 6000, committed: 6000, actual: 6000 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 600 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 600 },
{ category: 'Contingency', allocated: 1400, committed: 400, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1400, committed: 400, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-01', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-01', notes: '' },
@@ -4754,10 +4754,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 26400, actualCost: 26100, variancePercent: -1.1, completionPct: 100, healthScore: 93, estimatedAmount: 26400, actualCost: 26100, variancePercent: -1.1, completionPct: 100, healthScore: 93,
contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002', contractorName: 'Plano Siding Crew', contractorPhone: '(972) 555-9002',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 14200, committed: 14200, actual: 13900 }, { name: 'Owens Corning', category: 'Materials', allocated: 14200, committed: 14200, actual: 13900 },
{ category: 'Labor', allocated: 9600, committed: 9600, actual: 9600 }, { name: 'Plano Siding Crew', category: 'Labor', allocated: 9600, committed: 9600, actual: 9600 },
{ category: 'Permits', allocated: 800, committed: 800, actual: 800 }, { name: 'City of Plano', category: 'Permits', allocated: 800, committed: 800, actual: 800 },
{ category: 'Contingency', allocated: 1800, committed: 200, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1800, committed: 200, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-01-28', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-01-28', notes: '' },
@@ -4786,10 +4786,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 22100, actualCost: 21800, variancePercent: -1.4, completionPct: 100, healthScore: 97, estimatedAmount: 22100, actualCost: 21800, variancePercent: -1.4, completionPct: 100, healthScore: 97,
contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004', contractorName: 'Plano Roofing Crew C', contractorPhone: '(972) 555-9004',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 12000, committed: 12000, actual: 11800 }, { name: 'GAF Materials', category: 'Materials', allocated: 12000, committed: 12000, actual: 11800 },
{ category: 'Labor', allocated: 7800, committed: 7800, actual: 7800 }, { name: 'Plano Roofing Crew C', category: 'Labor', allocated: 7800, committed: 7800, actual: 7800 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 600 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 600 },
{ category: 'Contingency', allocated: 1700, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1700, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-01-30', notes: 'Full payment upfront.' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-01-30', notes: 'Full payment upfront.' },
@@ -4815,11 +4815,11 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 8900, actualCost: 8650, variancePercent: -2.8, completionPct: 100, healthScore: 96, estimatedAmount: 8900, actualCost: 8650, variancePercent: -2.8, completionPct: 100, healthScore: 96,
contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001', contractorName: 'Plano Roofing Crew A', contractorPhone: '(972) 555-9001',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Gutter Materials', allocated: 3800, committed: 3800, actual: 3600 }, { name: 'LeafGuard DFW', category: 'Gutter Materials', allocated: 3800, committed: 3800, actual: 3600 },
{ category: 'Fascia Materials', allocated: 1800, committed: 1800, actual: 1800 }, { name: 'James Hardie', category: 'Fascia Materials', allocated: 1800, committed: 1800, actual: 1800 },
{ category: 'Labor', allocated: 2600, committed: 2600, actual: 2600 }, { name: 'Plano Roofing Crew A', category: 'Labor', allocated: 2600, committed: 2600, actual: 2600 },
{ category: 'Permits', allocated: 400, committed: 400, actual: 400 }, { name: 'City of Plano', category: 'Permits', allocated: 400, committed: 400, actual: 400 },
{ category: 'Contingency', allocated: 300, committed: 0, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 300, committed: 0, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-10', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-10', notes: '' },
@@ -4845,10 +4845,10 @@ const KANBAN_PROJECT_DATA = {
estimatedAmount: 19400, actualCost: 20100, variancePercent: 3.6, completionPct: 100, healthScore: 87, estimatedAmount: 19400, actualCost: 20100, variancePercent: 3.6, completionPct: 100, healthScore: 87,
contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003', contractorName: 'Plano Roofing Crew B', contractorPhone: '(972) 555-9003',
budgetBreakdown: [ budgetBreakdown: [
{ category: 'Materials', allocated: 10400, committed: 10400, actual: 11200 }, { name: 'James Hardie', category: 'Materials', allocated: 10400, committed: 10400, actual: 11200 },
{ category: 'Labor', allocated: 6800, committed: 6800, actual: 6800 }, { name: 'Plano Roofing Crew B', category: 'Labor', allocated: 6800, committed: 6800, actual: 6800 },
{ category: 'Permits', allocated: 600, committed: 600, actual: 600 }, { name: 'City of Plano', category: 'Permits', allocated: 600, committed: 600, actual: 600 },
{ category: 'Contingency', allocated: 1600, committed: 1600, actual: 0 }, { name: 'Reserve Fund', category: 'Contingency', allocated: 1600, committed: 1600, actual: 0 },
], ],
milestones: [ milestones: [
{ id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-04', notes: '' }, { id: 'm1', name: 'Contract Signed', status: 'completed', date: '2026-02-04', notes: '' },