Budget Visibility by Role
Budget data is sensitive financial information. Not everyone on a construction project should see cost estimates, actual spend, or variance numbers. BuildChart enforces strict role-based access so that budget data is only visible to the people who need it.
Owner / Builder
Project owners and builders have full access to all budget data across the entire project. This includes:
- Estimated costs and actual costs on every task
- Variance calculations (over/under budget indicators)
- The budget summary slide-out panel with section breakdowns
- Budget columns (Est. $ and Act. $) in the task list when the budget toggle is enabled
- Budget summary line on dashboard project cards
- Cost notes on individual tasks
- Top 5 most expensive tasks ranking
Owners need this complete financial picture to manage the project budget, approve change orders, and compare actual costs against bids.
Subcontractor
Subcontractors see no budget data at all. When a subcontractor views a project, the following are hidden from their interface:
- Budget columns do not appear in their task list
- The budget toggle in the project header is not shown
- The budget summary panel is inaccessible
- Task detail forms do not display the cost fields or cost notes
- Dashboard project cards do not include the budget summary line
This prevents subcontractors from seeing what other trades are being paid, what the overall project budget is, or how their costs compare to the builder's estimates. They see only the scheduling and task management features relevant to their assigned work.
Customer
Customers viewing the project through the customer portal see no financial information whatsoever. The portal is designed to show project progress, milestones, and completion photos — not costs. No budget fields, cost summaries, or variance data appear anywhere in the customer portal view.
How Access Is Enforced
Budget visibility is enforced at two levels to ensure it cannot be bypassed:
- UI level — Components check the current user's role before rendering any budget-related elements. If the user is not an owner, budget fields, columns, toggles, and panels simply do not render in the interface.
- API level — Budget fields are stripped from API responses for non-owner roles. Even if someone inspects network requests or uses the REST API directly, budget data is not included in the response payload. This server-side enforcement ensures that budget data cannot be accessed by manipulating the client.
This dual enforcement means that hiding budget data is not just a cosmetic choice — it is a security measure built into every layer of the application.
📝 Note
Budget visibility is enforced server-side. Even if someone inspects the API response, budget fields are not included for non-owner roles.
Related Articles