# ProjectFlowLive — Help Center Agent Sitemap

> A structured index of every user guide on the platform, with related
> app routes and AI prompt patterns. Designed for AI agents navigating
> the site.

Last updated: 2026-10-14
Total guides: 13

## Conventions

- Agent should fetch /help/<slug> for the full markdown body
- Each guide carries an audience array — match against the user's role
- Each guide lists related_routes — when the user is on one of those
  routes, that guide is the most relevant
- sample_prompts are phrasings the AI Assistant has been trained on —
  prefer them as handoff suggestions
- level follows the project's 7-level docs hierarchy
  (1=architecture, 2=feature spec, 3=API/DB ref, 4=ops runbook,
  5=user guide, 6=troubleshooting). Use it to gauge depth before
  fetching — a Level 5 guide is task-oriented for end users; a
  Level 1-2 reference is design/spec context
- api_endpoints lets agents link directly to API behavior without
  parsing the full guide body (e.g., when generating a PDF on the
  user's behalf)

## Cross-references

- /llms.txt — top-level platform crawler index
- /api/agency-resources/pay-items?q=… — public pay item search
- /api/agency-resources/pay-items/<code>/constellation — pay item full context
- /api/agency-resources/spec-sections/<section> — standard spec section content

## Guides

### EVM Performance — earned value, planned value, the S-curve, and what "Not measured" means

  slug:           evm
  url:            /help/evm
  category:       reference
  level:          5
  audience:       project-managers, construction-managers, resident-engineers, ai-assistants, agents
  last_updated:   2026-10-12

  summary:
    How the project EVM Performance page reads the record: one earned value at one status-date point feeds every card; "Not measured" (no actual-cost source), "No baseline yet" (no baselined, budgeted schedule activities) and "Not rated" (no priced pay item with a recorded confidence) instead of an invented rating; the CPI / SPI labels; the 0–100% Progress S-curve; and what makes each card fill in.

  related_routes:
    - /dashboard/projects/[id]/evm
    - /dashboard/projects/[id]/schedule
    - /dashboard/projects/[id]/quantity-book

  api_endpoints:
    - GET /api/projects/:projectId/evm/summary
    - GET /api/projects/:projectId/evm/charts
    - POST /api/projects/:projectId/evm/recalculate

  sample_prompts:
    - "Why does the EVM page say "Not measured" for actual cost?"
    - "What does "No baseline yet" mean on the SPI card?"
    - "Why is Cost Data Quality "Not rated"?"
    - "What makes planned value fill in on the EVM page?"
    - "What does a CPI of 1.00 mean?"

### Inspector Daily Report → Project Closeout

  slug:           idr-to-closeout
  url:            /help/idr-to-closeout
  category:       workflow
  level:          5
  audience:       inspectors, resident-engineers, project-managers, ai-assistants, agents
  last_updated:   2026-05-01

  summary:
    The complete inspector workflow from creating a daily report in the field through compiling the project closeout package. Same workflow whether you're working on a state DOT contract (IDOT, CDOT, future state DOTs) or a private contract.

  related_routes:
    - /dashboard/projects
    - /dashboard/projects/[id]
    - /dashboard/projects/[id]/quantity-book
    - /tools/idot-pay-items

  api_endpoints:
    - POST /api/idr-drawings/daily-reports
    - POST /api/idr-drawings/daily-reports/{id}/accept
    - GET  /api/idr-drawings/daily-reports/{id}/pdf
    - GET  /api/idr-drawings/projects/{id}/idr-book/pdf
    - GET  /api/qbook/projects/{id}/entries
    - GET  /api/qbook/projects/{id}/export/modern.pdf
    - GET  /api/qbook/projects/{id}/export/bc625.pdf
    - POST /api/calc/sheets
    - GET  /api/agency-resources/pay-items/{code}/constellation

  sample_prompts:
    - "Walk me through creating a daily report on this project"
    - "How do I add a calculation canvas to a pay item entry?"
    - "What's the difference between IDR Book Modern and BC 628?"
    - "How does the auto-post to Q-Book work?"
    - "How do I export the BC 625 Quantity Book at closeout?"
    - "How do I install ProjectFlowLive on my phone?"

### Organizations — who sees what

  slug:           organizations-and-who-sees-what
  url:            /help/organizations-and-who-sees-what
  category:       getting-started
  level:          5
  audience:       project-managers, admins, ai-assistants, agents
  last_updated:   2026-09-10

  summary:
    The three access layers: the platform admin area (one user), organization roles (owner/admin see every project and all proposals and RFPs of the organization; other members see its proposals and RFPs), and project membership (projects are shared one at a time). How to set up a team for one organization.

  related_routes:
    - /dashboard/settings/team
    - /dashboard/org/[orgId]
    - /dashboard/proposals
    - /dashboard/rfps

  api_endpoints:
    - GET /api/proposals?organizationId=
    - GET /api/rfps?organizationId=
    - POST /api/invitations

  sample_prompts:
    - "Will my team member see the platform admin pages?"
    - "If I add someone to an organization, which projects do they see?"
    - "Who can see proposals and RFPs?"
    - "How do I set up two people who should only see one organization?"

### Payments — the pay estimate the CM builds, and the contractor's pay request checked against it

  slug:           payments
  url:            /help/payments
  category:       workflow
  level:          5
  audience:       construction-managers, resident-engineers, inspectors, project-managers, ai-assistants, agents
  last_updated:   2026-09-30

  summary:
    How the Payments section works on the construction-management side: the pay estimate is built first from the record (accepted Quantity Book quantities by period at the contract unit price, with not-yet-accepted daily report quantities shown as pending), downloaded as CSV, and the contractor's pay application is then uploaded and compared line by line, dispositioned and marked reviewed. What is stored and what is rebuilt.

  related_routes:
    - /dashboard/projects/[id]/pay-requests
    - /dashboard/projects/[id]/quantity-book
    - /dashboard/projects/[id]/soq

  api_endpoints:
    - GET /api/pay-requests/projects/:projectId/estimate?from=&through=
    - GET /api/pay-requests/projects/:projectId/estimate.csv?from=&through=
    - POST /api/pay-requests/projects/:projectId/estimates
    - GET /api/pay-requests/projects/:projectId/estimates
    - POST /api/pay-requests/projects/:projectId/estimates/:estimateId/finalize
    - POST /api/pay-requests/projects/:projectId/estimates/:estimateId/void
    - GET /api/pay-requests?projectId=
    - POST /api/pay-requests/upload
    - GET /api/pay-requests/:id
    - POST /api/pay-requests/:id/lines/:lineId/disposition
    - POST /api/pay-requests/:id/review
    - GET /api/pay-requests/projects/:projectId/tracking.csv

  sample_prompts:
    - "How do I build a pay estimate for this month?"
    - "Why does an item say "pending" on the pay estimate?"
    - "Why are some pay estimate amounts blank?"
    - "How do I check the contractor's pay request against my quantities?"
    - "Is the pay estimate saved anywhere?"
    - "What is the Record no. on a saved pay estimate?"

### Proposals — building, pricing display, alternates, revisions, sending, the record

  slug:           proposals-and-line-items
  url:            /help/proposals-and-line-items
  category:       workflow
  level:          5
  audience:       project-managers, estimators, contractors, ai-assistants, agents
  last_updated:   2026-09-10

  summary:
    How a proposal is built (by hand, from an estimate, or with the AI assistant), the three ways the client can see line items (itemised with money, the work without money, total only), alternates and their own price switch, the "Quantity basis" line and why removing it sticks, what a revision carries, the Activity tab record of every email sent, and what the search box matches.

  related_routes:
    - /dashboard/proposals
    - /dashboard/proposals/new
    - /dashboard/proposals/[id]
    - /dashboard/proposals/[id]/edit

  api_endpoints:
    - POST /api/proposals/:id/void
    - DELETE /api/proposals/:id
    - GET /api/proposals
    - POST /api/proposals
    - POST /api/proposals/ai-generate
    - PATCH /api/proposals/:id
    - GET /api/proposals/:id/emails
    - POST /api/proposals/:id/revision
    - POST /api/proposals/:id/alternates

  sample_prompts:
    - "How do I show line items without prices on a proposal?"
    - "What does the "Quantity basis" line mean and can I remove it?"
    - "How do I add an alternate to a proposal?"
    - "Where can I see the email that was sent with my proposal?"
    - "Why can I not find a proposal by the client address?"

### RFPs — soliciting bids from subcontractors and vendors

  slug:           rfp-soliciting-bids
  url:            /help/rfp-soliciting-bids
  category:       workflow
  level:          5
  audience:       project-managers, estimators, contractors, ai-assistants, agents
  last_updated:   2026-09-10

  summary:
    How an RFP works end to end: create it with a bids-due date, issue the bid package, invite vendors (each gets a private portal and an emailed link), open for bids, read bids as they arrive or seal them until the due date, addenda when the package changes, late bids marked not refused, close and award, void with a reason.

  related_routes:
    - /dashboard/rfps
    - /dashboard/rfps/[rfpId]
    - /share/[token]

  api_endpoints:
    - GET /api/rfps/:id/bid-form.xlsx
    - POST /api/rfps/:id/vendors/:vendorId/declared-total
    - GET /api/rfps/:id/items
    - POST /api/rfps/:id/items
    - GET /api/rfps/:id/tabulation
    - POST /api/rfps/:id/adjustments
    - POST /api/rfps/:id/award
    - GET /api/rfps/:id/questions
    - POST /api/rfps/:id/questions/:qid/answer
    - POST /api/rfps/:id/file
    - GET /api/reminders/counts
    - GET /api/reminders/my-items
    - POST /api/reminders/dismiss
    - POST /api/rfps
    - POST /api/rfps/{rfpId}/package/versions
    - POST /api/rfps/{rfpId}/vendors
    - POST /api/rfps/{rfpId}/vendors/{vendorId}/portal
    - POST /api/rfps/{rfpId}/status
    - GET  /api/rfps/{rfpId}/responses/{responseId}/download
    - POST /api/rfps/{rfpId}/unseal

  sample_prompts:
    - "How do I send an RFP to a subcontractor?"
    - "How does the vendor get the bid package?"
    - "Can I read bids before the due date?"
    - "I need to add a drawing after vendors already saw the package — what happens?"
    - "What happens if a bid comes in after the due date?"

### Texting an outside contact (text or WhatsApp) — join codes, which project a reply goes to, STOP/HELP

  slug:           texting-outside-contact
  url:            /help/texting-outside-contact
  category:       workflow
  level:          5
  audience:       inspectors, resident-engineers, project-managers, ai-assistants, agents
  last_updated:   2026-10-14

  summary:
    How to bring someone without a ProjectFlowLive login into a conversation by text message or WhatsApp: generate a join code, they send it in to join (so consent comes from them, from their own phone — you never type their number), what a joined contact can see, how to tell when they have joined, STOP/HELP, and revoking a code.

  related_routes:
    - /dashboard/communications

  api_endpoints:
    - POST /api/chat/conversations/{id}/join-code
    - GET  /api/chat/conversations/{id}/external-participants
    - POST /api/chat/conversations/{id}/external-participants/{epId}/opt-out

  sample_prompts:
    - "How do I text someone who isn't on the project?"
    - "Can I just add their phone number?"
    - "What can the person I invited see?"
    - "How do I stop texting someone?"
    - "How do I tell when my invited contact has joined?"

### The Annotation Editor — tools, selection, section boxes, measuring

  slug:           annotation-editor
  url:            /help/annotation-editor
  category:       reference
  level:          5
  audience:       inspectors, resident-engineers, project-managers, ai-assistants, agents
  last_updated:   2026-10-12

  summary:
    How to annotate photos, plan pages, and document-builder pages: the toolbar, selection modes (continuous click for touch), calibrated measuring with vertical exaggeration, cross-section boxes with their own scale, mirror and copy between sections, and reporting an issue from the editor.

  related_routes:
    - /dashboard/field-management/enhanced-daily-reports
    - /dashboard/projects/[id]/markup-sets/[setId]

  api_endpoints:
    - POST /api/markup/images/cross-section
    - POST /api/markup-sets/{setId}/sheets/cross-section
    - POST /api/idr/markups  (cross_section)
    - POST /api/support/issue-report

  sample_prompts:
    - "How do I select several line segments on my iPad?"
    - "How do I add a cross section to a page and measure an area in it?"
    - "Why does my measurement stay correct on a 5x exaggerated section?"
    - "How do I move or resize a section box?"
    - "How do I mirror a section across the centerline?"
    - "How do I report a problem from the editor?"

### The bid board — finding and bidding on work as a contractor

  slug:           bid-board-for-contractors
  url:            /help/bid-board-for-contractors
  category:       workflow
  level:          5
  audience:       contractors, subcontractors, ai-assistants, agents
  last_updated:   2026-09-10

  summary:
    Register free as a Bidding Member, browse the RFPs buyers have listed, enter the ones you want, get the package when admitted, submit your bid on your private portal, and track decisions under My bids.

  related_routes:
    - /bid/register
    - /bid/[token]
    - /dashboard/bids/board
    - /dashboard/bids
    - /share/[token]

  api_endpoints:
    - GET /api/public/rfp-portal/bid-form.xlsx
    - GET /api/public/rfp-portal/schedule
    - POST /api/public/rfp-portal/bid
    - POST /api/public/rfp-portal/question
    - POST /api/auth/register-bidder
    - GET /api/rfps/board
    - POST /api/rfps/board/:id/enter
    - GET /api/rfps/my-bids
    - GET /api/public/rfp-listing/:token

  sample_prompts:
    - "How do I register to bid on ProjectFlowLive?"
    - "I got a /bid/ link from a contractor — what do I do?"
    - "Why have I not received the bid package yet?"
    - "Can other bidders see my bid?"

### The Calculation System — one engine, everywhere you annotate

  slug:           calculation-canvas
  url:            /help/calculation-canvas
  category:       reference
  level:          5
  audience:       inspectors, resident-engineers, project-managers, ai-assistants, agents
  last_updated:   2026-08-27

  summary:
    Live-math calc boxes on every annotation surface — standalone Calc Documents (multipage 8.5×11, document-scoped variables, export equals screen), pay-item worksheets with audited Apply-to-entry, the Drawings-tab document builder, and the single-sheet photo/plan annotators. Units carry through; DOT templates and standards reference built in.

  related_routes:
    - /dashboard/projects/[id]/tools/calculations
    - /dashboard/projects/[id]/markup-sets/[setId]
    - /dashboard/projects/[id]/soq

  api_endpoints:
    - GET  /api/calc/canvas/project/{projectId}
    - POST /api/calc/canvas
    - POST /api/calc/canvases/{canvasId}/apply-to-entry
    - POST /api/markup-sets  (projectId + setKind=calc_document)
    - GET  /api/markup-sets?projectId={id}&kind=calc_document
    - GET  /api/calc/templates/project/{projectId}
    - POST /api/calc/templates/{id}/apply

  sample_prompts:
    - "How do I create a Calc Document and print it?"
    - "How do I apply a calc result to a pay item entry?"
    - "Why is my lump-sum item asking for percent complete instead of quantity?"
    - "How do variables carry across pages in a Calc Document?"
    - "Show me a worked example for an HMA yield check from tickets."
    - "How do I add a calc box on a photo or plan sheet?"

### The Schedule — P6 import, the Critical Path tab, and the data date

  slug:           scheduling
  url:            /help/scheduling
  category:       workflow
  level:          5
  audience:       project-managers, schedulers, construction-managers, ai-assistants, agents
  last_updated:   2026-10-12

  summary:
    How to import a P6 schedule (activities, links, WBS with P6's dotted codes, and the .xer data date), read the Critical Path tab (critical chain, near-critical work with 5 days of float or less, float in days, P6 flag vs PF CPM source), and set the data date with Retained logic or Progress override before pressing Recalculate.

  related_routes:
    - /dashboard/projects/[id]/schedule

  api_endpoints:
    - GET /api/cpm/projects/:projectId/scheduling
    - POST /api/cpm/projects/:projectId/calculate

  sample_prompts:
    - "How do I import a P6 schedule?"
    - "What does near-critical mean on the Critical Path tab?"
    - "What is the difference between P6 flag and PF CPM?"
    - "How do I change the data date and recalculate?"
    - "What is the difference between Retained logic and Progress override?"

### The Skill Builder — teach the platform your agency paperwork

  slug:           skill-builder
  url:            /help/skill-builder
  category:       workflow
  level:          5
  audience:       inspectors, resident-engineers, project-managers, ai-assistants, agents
  last_updated:   2026-09-06

  summary:
    How process skills work: pick a sample daily report, chat corrections while a live preview regenerates, provide the agency blank template plus a filled example, and approve to freeze the mapping so every future run repeats exactly.

  related_routes:
    - /dashboard/process-skills
    - /dashboard/process-skills/author

  api_endpoints:
    - POST /api/skills/author
    - POST /api/skills
    - GET /api/idr-drawings/daily-reports?scope=member

  sample_prompts:
    - "How do I create a skill for the Tollway daily report?"
    - "What sample report should I pick when teaching a skill?"
    - "Why is my sample report list empty?"
    - "What do the blank template and filled example do?"
    - "How do I fix a skill after the agency changes their form?"

### Weekly Vehicle Mileage Summary — odometer in, mileage lines and daily summaries out

  slug:           vehicle-mileage-summary
  url:            /help/vehicle-mileage-summary
  category:       workflow
  level:          5
  audience:       inspectors, resident-engineers, ai-assistants, agents
  last_updated:   2026-10-01

  summary:
    NOT YET LIVE (arrives with Assistant Skills). Intended: give the AI assistant your start/end odometer for the week; the platform reads your Daily Reports, splits the miles into continuous day ranges that sum exactly, and writes a one-to-two-sentence activity summary per day in the exact mileage-log line format.

  related_routes:
    - /dashboard/field-management/enhanced-daily-reports

  api_endpoints:
    - (not yet live — arrives with Assistant Skills)

  sample_prompts:
    - "Weekly mileage: start 4733, end 5092, week of 8/17."
    - "Make Wednesday 77 miles and keep the total the same."
    - "Tuesday should be my highest mileage day."
    - "Here is my summary for Thursday, use it instead of the daily report."

## How to use this index

If you are an AI agent (Claude, ChatGPT, or a custom navigator) helping
a ProjectFlowLive user:

1. Identify the user's current route. Match against the related_routes
   on each guide above. The first match is the guide most relevant to
   the screen they're on.

2. Need a workflow walkthrough? Fetch the full body via /help/<slug>.
   Markdown is rendered server-side; raw markdown is embedded in the
   page as well for easier extraction.

3. Suggesting an AI Assistant handoff? Use one of the sample_prompts
   verbatim — they're known to produce good responses on this platform.

4. Looking for context that's not here? Fall through to:
     - /llms.txt (platform overview)
     - /tools/idot-pay-items/<code> (per-pay-item atlas)
     - /api/agency-resources/* (data API for pay items, specs, CM)