Dashboard
Live snapshot of the bid pipeline.
Bids by Status
Pipeline by Sector
Opportunity Ranking — Live Bids
Monthly Revenue Forecast (DHSS S-Curve)
Live Bids Timeline
Enter Contract Value, Go-Ahead % and Win %. Tender Costs, Success %, Weighted Value, and Bid Review date auto-calculate.
| Bid ID ▴▾ | Project ▴▾ | Client ▴▾ | Sector ▴▾ | Status ▴▾ | CV (FJD) ▴▾ | Tender Cost | Go % | Win % | Succ % | Weighted | Submission ▴▾ | Bid Review | Construction | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Totals | ||||||||||||||
Actions
▶ Next actions
Every stage that is ready to run or blocked, across the bids still being worked. Ranked by what is closest to its deadline and what the most later stages wait on — each row says why it is where it is. A bid that has been submitted has nothing here, which is the point.
Planned dates
Seven planning dates per bid, counted back from the submission deadline — when each piece of work was meant to start. These are a schedule, not a task list: what is actually outstanding is above. Rows stand down once a tender has gone out.
| Bid | Project | Sector | Action | Due | Days | Owner | Status | Notes |
|---|
Opportunity Ranking
Score each criterion 1 (poor) → 5 (excellent). Weighted PA & SP scores plot on the bubble chart. Click Score to edit a row.
| Bid ID | Project | Status | Contract Value | PA Score | SP Score |
|---|
Revenue Forecast — DHSS S-Curve
Cash flow modelled with the Hudson DHSS expenditure formula
y = S [x + Cx² − Cx − (1/K)(6x³ − 9x² + 3x)].
Each bid is spread across its construction period using its selected curve (Standard / Front-loaded / Back-loaded).
Monthly Cash Flow
Archive
Won, Lost or Withdrawn bids past the archive trigger window. Use the button below to move flagged bids out of the live Timeline.
Flagged (still in Timeline)
| Bid ID | Project | Status | CV | Submission | Days Since |
|---|
Archived
| Bid ID | Project | Client | Sector | Status | CV | Submission |
|---|
Cost Library
Multi-project historical rate database.
📥 Import cost library workbook
Upload the master PBS_Cost_Library_vN.xlsx (the SharePoint copy Ana maintains). This replaces the entire cloud library that AI estimating and line pricing run against — do it after each big submission is added to the master.
🔍 AI semantic search (Claude Haiku 4.5 · ~3-8s)
Describe what you're pricing in plain English ("exposed concrete stair, 3m run, Suva") — Claude ranks the most relevant rates across all four library tables.
| Project | Year | Trade | Sub-section | Description | Qty | Unit | Rate (FJD) | Total | Context |
|---|
| Project | Year | Trade | Composite Item | Components | Rate | Unit | Low | High | Notes |
|---|
| Project | Year | Trade | Cost (FJD) | % of project | GCA | $/m² GCA | Notes |
|---|
Library Headlines
| # | Trade | Projects | Avg $/m² GCA | Min | Max | Avg trade cost (FJD) | Notes |
|---|
Trade and sub-trade names from the cost library, matched to PBS cost codes. A proposal is inert until somebody confirms it — calibration and variance both ignore anything still marked proposed, because a machine's guess must not carry a confirmed mapping's authority.
Progress
Blocks to review — biggest first, so the least clicking clears the most
Read the trades on each row. Where they all obviously belong to the code, confirm the block. Where they look mixed, open it and deal with the odd ones first.
| ID | Project | Location | Type | GCA (m²) | Tendered (FJD) | $/m² GCA | Year |
|---|
—
Workflow
Stages in dependency order. A locked stage names what it is waiting for; the folder each deliverable is filed to is shown on the right. Run does the work, Document produces the file.
Price ledger
Every movement, with the reason it moved. Append-only — nothing here can be edited or deleted.
Project Details
Workflow Status
📥 Import deep-analysis outputs (xlsx)
Drop xlsx files from external deep-analysis runs — requirements_register, RFI_Register, Conceptual_Estimate, Tier1_Tender_Review — and the data flows into this bid's tabs. Format is auto-detected by sheet structure.
Pursuit Skills (via Cowork)
Click Copy prompt, paste into a new Cowork conversation with the relevant skill installed, attach the bid documents. The orchestrator at the top runs all three phases for you in one shot.
★ Run the full Initial Offer Assessment ORCHESTRATOR
Runs pbs-initial-offer-assessment — indexes the project, builds the conceptual estimate against the cost library, then produces the Go/No-Go decision pack, all in one workflow with smart re-run detection. Use this for a fresh tender.
1. Index this tender package
Runs pbs-project-indexer only — produces CLAUDE.md, project.md, drawings.md and the requirements register. Use when you just need the indexing phase.
2. Run the conceptual estimate
Runs pbs-conceptual-estimate against the requirements register and the cost library — produces a priced estimate with confidence tiers per line.
3. Generate the Go / No-Go pack
Runs pbs-bid-review only — produces the one-page Excel + 5-slide PPT decision pack. Fills in the Go/No-Go tab below.
📁 Pull from SharePoint
Copies a tender folder straight into this bid — no downloading and re-uploading. Paste the folder link from SharePoint (the address bar or a copied share link, either works). Subfolders come too, and re-running picks up anything Ana has added since.
📐 Drawings Index
Reads every sheet of the selected multi-page drawing PDFs one at a time — sheet number, discipline, scope by trade, measured quantities, and cross-sheet coordination issues. Included in the full run; large sets continue automatically across passes.
🧠 Deep Tender-Pack Ingestion
The thorough pass: Claude (Opus) reads the full pack — specs, schedules, BoQs, addenda — and builds the requirements register plus scope summary, flags and RFI candidates. Runs as a background job (several minutes per pass). Word and Excel are read too. Drawing sets are left unticked — they are read above by the Drawings Index, and putting them through here as well costs a great deal to learn nothing new.
Requirements register, normally produced by the pbs-project-indexer skill. Paste rows here or import a CSV from the generated requirements_register.xlsx.
| Ref | Trade | Description | Qty | Unit | PBS Delivery | Spec Ref | Notes |
|---|
💰 AI Line-Item Pricing
Prices every requirement line against the unit-rate cost library (background job, a few minutes). Library candidates are shortlisted per line; unmatched lines get flagged allowances.
What we estimated, what we submitted, what came back. This is the only place the cost library learns whether PBS was right — without it every estimate is a first estimate. Partial answers are welcome; an unknown recorded as unknown is worth far more than a guess recorded as fact.
Go / No-Go decision pack. The skill produces a recommendation with its evidence; a person records the decision. They are deliberately two different acts.
⚖️ Record the decision
Nothing downstream — methodology, procurement, the letter of offer — unlocks until this is recorded. A No-Go blocks them and stays on file with the reasons.
🤖 Go / No-Go decision (Claude Opus · reads the estimate, drawings, contract and risk)
Run it from Run → Go / No-Go. It refuses to decide before there is a conceptual estimate, cites what it read, and writes a gate: a No-Go blocks the methodology, the procurement packages and the letter of offer until someone overrules it. The director still makes the final call — the buttons below are that call.
Library-driven conceptual estimate. Generate one with Claude below (async, grounded in the cost library), or use the quick benchmark lookup.
📏 Quantity Takeoff
Reads the indexed drawings and lists the primary quantities — what has to be measured. Each one is matched to an assembly from the PBS library, and the database expands it into concrete, reinforcement, formwork, waste and haulage. Claude picks the assembly; the arithmetic is not asked of it. Index the drawings first.
Quantities come from what the drawings state — schedules and annotated dimensions. This does not measure vector geometry, so anything not dimensioned on a sheet is an estimate and is marked Low.
🤖 AI Conceptual Estimate
Runs as a background job: Claude (Opus) prices the bid trade-by-trade against the cost library — benchmarks, composites and comparable projects — with confidence tiers per line. Takes 1–3 minutes.
Quick benchmark — GCA × library $/m²
Recorded estimate
Methodology document for this bid — your construction approach, sequencing, plant, key resources, programme. This is what gets submitted as part of the bid pack.
🏆 Win Themes (Stage 1.5) (Claude Haiku 4.5 · ~10-20s)
3–5 strategic themes that drive the methodology, cover letter, and Letter of Offer. Every downstream artefact should reinforce these themes. Bid Manager drafts, Commercial Manager signs off.
Subcontractor packages — track which trades you're sending out, the selected subbie, awarded amount, and status. Lines up with the 4. Procurement folder in SharePoint.
📦 AI Procurement Packaging
Splits the register and estimate into RFQ-ready trade packages — each with a PBS budget, scope text you can send to bidders, interfaces, and risks. Then level the quotes that come back: VAT normalised, exclusions surfaced, compared against the budget.
🧱 Materials & Purchase Orders
The supply-only side of the register. Converts measured work into order quantities in the units merchants actually sell — laps, cut loss and rounding each reasoned separately — and groups them into one schedule per merchant. A package with an open question cannot be marked ready to issue.
| Package | Scope | Selected Subbie | Awarded (FJD) | Status | Notes |
|---|
PBS prices in Cubit, in PBS's trades. The client wants it back in theirs. This does the mapping and the margin spread — it never re-prices anything.
① Commercial setup — confirm before running
Margin, whether it is spread into the rates or shown as its own line, what carries no margin, and how VAT is presented are decided per tender. There is no default — the skill refuses until these are confirmed, because a margin nobody agreed to is a margin nobody can defend.
PC sums, provisional sums, contingency and client-supplied items never carry margin. That is not configurable — marking up a pass-through cost misrepresents it as PBS work.
You are setting the margin because you hold the commercial role.
② Populate the client's schedule
Needs the Cubit export (Trade Breakup) and the client's blank pricing schedule, both uploaded on the Documents tab. Requires Estimate Review = PASS and a price in the ledger.
| Ref | Raised | Subject | Query | Response | Status | Due |
|---|
Actions for this bid only. Owner / status / notes save back to the global Actions tab.
| Action | Due | Days | Owner | Status | Notes |
|---|
Company Settings
Your own account, and the lists and parameters the whole team works from. Changes save automatically. Users, spend and the audit trail live on the Admin page.
Account
Key Parameters
Action lead times (days before submission)
Reference Lists
Add / remove items to change dropdowns app-wide.
Exports
Admin
Who is in the organisation, what the AI may spend, and what everyone has changed. Visible to owners and admins only.
Users in this organisation
Invite teammates and assign roles.
viewer read-only ·
estimator all bid work and the cost library ·
commercial the same, plus sets the margin, plus approves and signs ·
director approves Go/No-Go and signs the price ·
admin settings and users.
Approving is separate from doing: whoever produced or checked the price on a bid
cannot also sign that bid off, whatever their role. With three approvers there is
almost always someone eligible.
| Name | Title | Role | Privacy Officer | Joined |
|---|
AI spend ceilings
The engine refuses to start a job past either limit — before a token is spent. 0 = no ceiling. Owner or admin only. The Run tab shows each bid's AI cost.
This month, by person
The monthly ceiling is shared. When it runs out it runs out for everyone — including whoever needed to sign something.
Data
Restoring and resetting overwrite what is here. Kept on this page because they are not reversible from the screen.
Recent activity (audit log)
Every change made in TenderPath — who, when, what changed, old and new values. Stored permanently. Visible only to admins / owners.
| When | Who | Action | Table | Summary |
|---|
Click any row to expand and see the full field-level diff.