BlackStone Mechanical
OFFICE PORTAL
BILLING DEADLINE
All synced
No projects
Checking sign-in status...
Construction Project Dashboard
Company Performance Viewing:
This Month Billing (gross)
Across all active projects
This Month Costs
QB transactions + labour
This Month Gross Profit
GP%
Holdback Retained (cumulative)
Cumulative, all active projects
Backlog
Contract + Approved COs − Billed to Date
New Projects
This period
Completed Projects
This period
Portfolio GP%
From QB Job Profitability
Overdue Billing
Past deadline, not billed
Missing Estimate
Projects without estimate
12-Month Billing & GP% Trend ● Actual   ○ - - - Estimated (hover for details)
Backlog Over Time
Effective contract value (base + approved COs, as they stood each month) minus cumulative billed-to-date · currently-tracked projects only
Biggest Spend on Subcontractors
From QB transactions tagged "Subcontractor" in the Vendor Registry
Busiest General Contractors
Total billed to date, active projects only
🔍
PM
Portal
Status
ⓘ Checks: Estimate   QB Profit   QB Trans   QB Time
PO # Project PM Contract Prev. Billed This Period Progress Portal HB Checks ⓘ Status Trend Actions
Go to Data Setup to import your project list.
Invoice Management
Scan · Assign to project · Confirm · Flag for review
0
Confirmed Invoices
0
Needs Review
0
Action Required
0
Total This Period
🔍
Sort:
0 selected
Click Scan Inbox to pull emails from admin@blackstonemechanical.ca
Already confirmed invoices load automatically from SharePoint
🚩 Flag Invoice for Review
Select reasons — PM will be notified
Other notes
Data Source
Billing Worksheet
Select a project to begin
Select PM
All
Harry
Marcel
Gord
Ross
Jason
Shawn
Select Project
🔍
Select a project from the list to open the billing worksheet.
Project Details
Select a project to begin
Select PM
All
Select Project
🔍
Select a project from the list to view or edit its details.
Project Performance
Select a project to review its performance
Select PM
All
Select Project
🔍
Select a project from the list to review its performance.
Progress Billing Report
Select a project to build or generate a billing report
Select PM
All
Select Project
🔍
Select a project from the list to build or generate a billing report.
Post-Billing Audit
Compares QB actual cost against billed amount, flags under-billed / over-billed / low-GP projects after a period closes
Data Setup
Project list · QuickBooks · Connections · Database
Project Data
Epic Final Invoicing List
Upload the Excel project list monthly. Review every change in the audit screen before writing to the database. Will auto-refresh in a future update.
No file imported yet — using embedded default data
Default data
Historical Epic Data — for year-over-year trends only
Upload a prior year's Epic Invoicing List (e.g. 2022-2025) to feed the dashboard's month selector and year-over-year charts. Adds billing history only — never touches current project status, contracts, or estimates.
No historical years loaded yet
Optional
QuickBooks Reports — Source of truth for all costs
Upload monthly: Job Profitability Summary · Transaction Detail by Account · Time by Job Detail. These drive all cost actuals in the forecast and billing worksheets.
Upload Job Profitability, Transaction Detail, Time by Job
Upload required
Vendor Registry — auto-categorizes incoming invoices by trade
Upload BSM_Vendor_Registry.xlsx. Invoice emails are matched to vendors by sender domain and tagged with trade category, cost type, and QuoteToMe status automatically when scanning the inbox.
No vendor registry loaded yet
Upload required
Microsoft 365 Connection
Sign in to access inbox scanning and SharePoint data
Not signed in
Admin inbox access — admin@blackstonemechanical.ca
Sign in to verify inbox access
SharePoint Database
Database Management
✓ Changes save automatically in the background as you work — the buttons below are a manual override for troubleshooting, not a required step.
Force a full re-sync of everything to SharePoint — useful if the sync indicator shows an error, or you suspect something didn't save.
Force-refresh from SharePoint — useful right after another PM makes a change you want to see immediately.
Overhead Time
Overhead Time (Admin / Break / Shop / STAT)
Non-project overhead hours (Admin Time, Break, Shop Time, STAT jobcodes) synced hourly from QuickBooks Time -- these used to dump into the Task Match Review queue as noise; now they land here instead, per employee per month, so trends (e.g. Shop Time creeping up for someone) can be spotted over time.
Click Refresh to load overhead time.
List Health Check — read-only checks across the BSM_* lists
Looks for the things that break quietly: lists approaching SharePoint's 5,000-row limit (the failure that stopped the labour sync for 17 days), duplicate people on the roster, change orders carrying a retired status that silently drops them from billing math, projects with no estimate imported, and learned task mappings pointing at tasks that no longer exist. Nothing here changes any data.
Click Run to check the lists. Reads only — takes a few seconds.
User Management
Users & Permissions
All users sign in with their BlackStone M365 account. Assign roles here. Admins have full access including database management and project imports. PMs have full access to billing and forecasting.
Click Refresh to load current users.
Add New User
API Configuration
Anthropic API ✓ Secured server-side
API key is stored as a server-side environment variable and is never exposed in the browser. All AI requests go through the authenticated /api/claude proxy — there is no client-side key fallback.
Alberta Billing Deadlines — 2026
AI Assistant
Ask questions about projects, invoices, billing, and forecasts
👋 Hello — I'm the BlackStone Mechanical billing assistant. I can help with project billing questions, invoice matching, cost analysis, and forecast interpretation. What do you need?
Settings
Configuration · Users · Admin tools
Microsoft 365
Not signed in
Use the Sign in / Sign out button in the top bar.
Configuration
Company and Province are fixed. Labour Rate is not yet synced to SharePoint — click Save after changing it, or the change only applies to this browser session.
The labour rate is set per project by the estimate import — the estimating workbook generates it, and importing an estimate updates that project's rate.
$39/hr is only a placeholder for projects with no estimate rate yet, and any figure calculated on it is marked ⚠ $39 placeholder where it appears. To correct a project's rate, re-import its estimate.
Trade Roster — classifies employees by trade for labour hour breakdowns
Employees appear here automatically once you upload a QB Time by Job report. Classify each one's trade so hours can be broken down by trade instead of just a lump total.
No employees loaded yet.
Audit Log
Permanent record of every significant action — who changed what and when.
Click Load to view recent activity.
Project List — Review Changes Before Writing
Review all changes before approving
0
New Projects
0
Values Changed
0
Removed
0
Unchanged
Status PO # Project Name PM Contract Prev. Billed This Period Portal
Approving will write 0 projects. Existing check states (estimates, QB reports) are preserved.
QuickBooks — New PO#s Found
These PO#s appeared in a QB upload but don't match an existing project
0
Check the ones that are real projects — they'll be created as minimal entries, then auto-completed (PM, contract, portal) the next time the Epic Final Invoicing List import includes that PO#. Uncheck and use "Not a Project" for anything that isn't.
PO # Job Name (from QB) GC Cost Revenue Found In
Nothing is written until you approve.
Vendor Memory
📊 Review Estimate Import
Confirm the parsed data before writing to this project
Line Items — confirm these match your estimate
⚠ Once confirmed, this estimate is saved to the project.
Log Billing to Tool
Archive this month and roll over CTD% values
⚠ This action:
  • Archives the current billing worksheet to SharePoint
  • Moves Current CTD% values to Previous CTD%
  • Updates Previously Billed on this project
  • Resets This Month Billing to $0
You can reopen the worksheet and view history after closing.
Billing History
Reassign Invoice
Move this invoice to a different project
Import Billing History from Workbook
One-time migration of billing history from the standalone Estimate Workbook's Billing Tool tab. Not part of the routine estimate import.