Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 6, 2026

ConnectWise EstimatedHours reflects task-level time estimates that change with scope. BudgetHours is the approved resource allocation used for financial tracking. Reports were comparing actuals against estimates instead of budget.

Changes

API Models

  • Added BudgetHours field to CWProject, CWPhase, CWTicket (kept EstimatedHours for API compatibility)

DTOs

  • BudgetAnalysis.EstimatedHoursBudgetAnalysis.BudgetHours
  • PhaseDetail.EstimatedHoursPhaseDetail.BudgetHours
  • TicketSummary.EstimatedHoursTicketSummary.BudgetHours

Service Layer

// Before
var estimatedHours = project.EstimatedHours ?? 0;
var hoursVariance = actualHours - estimatedHours;

// After
var budgetHours = project.BudgetHours ?? 0;
var hoursVariance = actualHours - budgetHours;

UI/Reports

  • PDF: "Budget Hours" labels, "Hours budget/actual" format
  • Web UI: "Budget Hrs" column headers
  • AI prompts: "Budget: X hours" terminology
Original prompt

This section details on the original issue you should resolve

<issue_title>Project Report Using Estimated Instead of Budget</issue_title>
<issue_description>Estimated time in CW projects refers to the set start and end dates of the project/phase/task
Instead, budget hours is the more appropriate comparison for the report.</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI self-assigned this Jan 6, 2026
Co-authored-by: MWG-Logan <2997336+MWG-Logan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix project report to use budget instead of estimated time Use BudgetHours instead of EstimatedHours for project budget analysis Jan 6, 2026
Copilot AI requested a review from MWG-Logan January 6, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants