# Wave > Wave is a conversational estimating workspace for property-damage restoration. A > contractor can describe a job by typing or speaking, answer Wave's follow-up questions, > review the resulting line-item estimate, and prepare documents for the claim. This file > gives AI assistants current, user-facing context for helping a signed-in user at > https://go.buildwithwave.com. The visible app and its server messages are authoritative. Role, plan, organization settings, estimate service, and estimate state can change which actions appear. Do not promise a hidden feature or try to bypass a gate. ## Supported estimating services Wave has estimating lanes for: - water mitigation; - mold remediation; - asbestos abatement; - contents pack-out, storage, and pack-back; - repairs / rebuild / put-back after mitigation, available only where enabled for the user's organization; - fire and smoke work, meaning mitigation (the tear-out and dry-down) or smoke cleaning, also available only where enabled for the user's organization; and - roofing, meaning emergency tarping, a shingle repair, one slope, or a full re-roof, also available only where enabled for the user's organization. Wave builds and prices estimates only for properties in the United States and Canada. It does not build siding, windows, or other exterior work beyond the roof itself, general housekeeping or contents cleaning, or an estimate recreated from an uploaded document or screenshot. Attachments can still be used for reference, and a written subcontractor quote can be added manually as a custom or bid item where the app allows. Uploading an Xactimate export (.ESX) in Files is the one case Wave banks as an example to learn from; it says so in its reply, and that reply is expected behavior, not an error. A PDF dropped in Files is kept for reference only and no example is saved. In chat, Wave banks a file only when the user's own words ask it to ("learn from this", "make my estimates kind of like this"); a bare attachment or a question about a document stays an ordinary question. In no case is the canvas rebuilt from an upload. Do not promise an import. Repairs, fire, and roofing are enabled per organization. Any of them can be withheld from one organization while it is live for everyone else, so check what the user's app actually offers instead of promising a lane. One fire estimate carries one document: mitigation or smoke cleaning. Reconstruction after a fire is the repairs lane, not the fire lane. Do not substitute another lane when Wave or the interface refuses a service. A roofing estimate carries one of four paths: an emergency tarp, a repair (a shingle count or a patch), one slope replaced, or the whole roof replaced. The path must be settled before Wave prices anything. An opening message that already says which one is the answer and is not re-asked; otherwise the app shows the four choices and waits. A square count or a pitch is a measurement and "hail damage" is a cause, so none of them settle it. One estimate carries one path. A tarp tonight plus the permanent repair is two roofing estimates on the same job. Wave will not propose the second one, because it does not offer a sibling in a lane the estimate is already in: where the job workspace is on the user starts it from the job's Estimates tab, and otherwise from the estimate list. The canvas still shows rooms on a roofing estimate; they are named for roof faces rather than interior rooms. Gutters and downspouts are priced when the user raises them, but soffit and fascia are not roofing line items and belong on a subcontractor's written quote added as a bid item. A roofing estimate has no drying log and no standards rationale, so do not promise either: no IICRC standard governs roof work, and neither roofing funnel dries a structure. If water came in through the roof, that drying belongs to a separate mitigation estimate on the same job. ## Build and refine an estimate 1. Start at **Home** (`/home`) and describe the job by typing or speaking. 2. Answer Wave's service-specific questions. Line items build into the workspace as scope is captured, but their presence does not mean the conversation is finished. Answer any post-build questions or unresolved items Wave shows. 3. Refine the same estimate from either chat or the **Estimate** canvas. 4. Review scope, measurements, quantities, prices, notes, customer details, and files before exporting or sharing. Give Wave the known customer, property, claim, loss, service, room, material, measurement, and work details. For contents work, include the crew, duration, what is moving, storage, and pack-back. For repairs, describe what must be put back in each room after mitigation. For fire, say whether this estimate is the tear-out or the smoke cleaning. Wave's output is a draft. The contractor is responsible for confirming the actual scope, measurements, quantities, prices, and compliance requirements. ## Estimate workspace The workspace (`/chat/[id]`) has a conversation and these contractor views: - **Estimate**: rooms, line items, quantities, units, prices, modifiers, notes, totals, and manual editing. - **Drying**: sits directly after Estimate, and only when the organization has DryTrack access. - **Info**: customer, insurance, claim, loss, and estimate notes. Damage category is not shown here. It still drives estimate logic, so change it by telling Wave in chat rather than looking for a field. - **Files**: photos plus an Attachments group for videos and PDFs. The views are reached from one view-switcher button at the left of the strip above the canvas, not from separate tabs. That popover also holds the current view's display toggles, including the industry-codes switch on Estimate. Chat and canvas edits affect the same estimate. In chat, name the room, action, and quantity: "In the kitchen, change drywall removal to 200 square feet." On the canvas, users can edit line-item fields, add custom items and notes, remove items, and reorder where a reorder control is available. **Add a room** creates an empty room immediately and focuses it for naming; it does not open a separate room conversation. Wave can also add rooms through the main chat. Status values are **Preliminary**, **Completed**, and **Canceled**. Locking prevents estimate edits. Duplication is a separate, confirmation-gated action. ### Files - Photos can be tagged or moved to a room. Photos attached through chat begin in **Other** until retagged. - PDFs can be uploaded in Files or attached in chat. Selected PDFs can be added to a PDF export. - Videos can be uploaded and viewed in Files, but are not chat attachments or PDF-export content. - Internal files are for the contractor's team and are not customer-facing content. ### DryTrack When **Drying** is present and the estimate is eligible, DryTrack can show a drying plan, daily conditions and material readings, notes, charts, and a closing record. Users can type or speak readings in chat or edit the grid. Temperatures can display and export in °F or °C. Drying plans belong to eligible water-loss work. A repairs estimate does not own the drying plan; use the related water estimate when one exists. Drying-log and combined-packet export options appear only when the plan and entitlement exist. ## Several estimates on one loss For another service on the same loss, ask Wave in chat: "make a mold estimate for this too." There is no manual **Add another estimate…** control. It was removed from the estimate kebab, the job kebab, and the command palette, so do not send a user hunting for it. - Wave proposes the sibling with the service already named and raises a confirmation that states the cost. Only the user's confirmation creates it; Wave cannot create one on its own. - Creation uses **one estimate credit**, charged per estimate at creation. - A loss holds at most five estimates. - Each sibling owns its own built rooms, line items, total, transcript, status, files, and drying data. Selected loss and claim facts are prefilled. While a sibling is empty, Wave may also offer room names and dimensions from a related estimate. A repairs sibling may open with a proposed room-by-room put-back derived from mitigation demo lines; that proposal is not built scope until the user confirms it. - With multiple estimates, floating dots at the bottom of the Estimate canvas switch between them; the active dot expands to show its label. - Availability, capacity, and credits are server-enforced. If creation is refused, do not claim another estimate was made. - **Duplicate** copies an existing estimate's scope and does not use a credit. A sibling starts a separate service estimate on the same loss and does. ## Jobs, Schedule, and the job workspace Some organizations are on the newer job workspace and some are not. It is provisioned per organization and is a purchasable add-on rather than one of the estimate plan tiers, so check what the user actually sees before naming any of these surfaces. There are THREE states, not two. Besides on and off, an organization can be on but **read-only**: the boards, jobs and estimates all render, and every job, contact and schedule write is withheld with a banner saying changes are paused. Read-only is what the app shows while an add-on is being provisioned, has lapsed, or is temporarily suspended. Treat a missing write control as read-only rather than as a bug, and never tell the user a change was saved when no write control was offered. Where it is on and writable, the app adds **Jobs** (a board of job cards in stage columns), **Schedule**, and a job workspace at `/jobs/[id]` with **Chat**, **Overview**, **Notes**, **Estimates**, **Files**, and **Drying** where entitled. Home becomes a single composer that can create a job, start an estimate, schedule the crew, or add notes from one sentence. Estimates still open in the estimate workspace described above, and everything in this file about estimates still applies. Where it is off, `/jobs` and `/schedule` send the user back to Home: there is no job record, no board, and no schedule, only Home, the estimate list, and estimates. Never tell a user to open a job unless they have shown you one. ## Export, share, and integrations Open **Export** to choose a document and its contents. - **PDF contents** starts from a report: **Full estimate**, **Client summary**, or **Photo report**. Tick or untick the rows below it and the label reads **Custom**; Custom is not something to choose. **Change history** is one of those content rows. - **Invoice** is not a report. It is the **Document** choice under **Output**, which decides whether the PDF is headed Estimate or Invoice. - **Include in PDF** appears only when there is something to combine, and can select this estimate, sibling estimates, a drying log, and uploaded PDF attachments. Selecting nothing disables PDF download; it does not by itself disable Share link or the conditional actions below. - Do not offer Defensibility or a standards-rationale appendix. Those surfaces are hidden throughout the app right now, so the row cannot appear even for an entitled organization. - **Download PDF** (or **Send PDF** on some touch devices) and **Share link** are the two exits after choosing content. - A **Customer** link is view-only and needs no sign-in. An **Adjuster or collaborator** link requires sign-in and lets the recipient comment on line items; those comments come back into the contractor's workspace. A link offers two reports only: **Client summary**, the customer default, and **Full estimate**, the collaborator default. Review the chosen report and the **What they'll see** summary before creating or replacing a link. - PDF composition and share-link contents are not identical. Trust the share contents shown in the app instead of assuming every PDF appendix appears on the link. Conditional Export actions are separate from the PDF choices: - **Xactimate export (.ESX)** creates a file of the estimate to import into Xactimate. It ignores the PDF report and checklist, and the row is shown on any real estimate, including repairs, fire and roofing; there is no longer a lane gate on it. Roofing's computed minimum charge is a known non-traveller, so a small repair or a topped-up tarp is where a refusal is likeliest. The click decides, and it has more than two branches: an inert row that explains itself means the feature is paused, not that the user needs to buy something. Without entitlement it opens the plan options. An entitled organization with no destination profile code saved in **Settings > Exports** is sent there only if this user can reach that screen, which needs an admin on a live subscription; a technician is shown the upgrade prompt instead, so do not tell one to go and save a code. Otherwise the server refuses line by line and prints its own reason in the row, and a refused transfer may also offer **Copy line items** so the scope can be pasted by hand. Review the imported scope and destination pricing before relying on it; Wave's regional prices do not carry through. - **Send to QuickBooks** creates a draft invoice from an estimate with line items. Wave never sends it to the customer; the user reviews and sends it from QuickBooks. Connect or reconnect in **Settings > Integrations**. If the estimate was already sent, Wave says so and offers **View invoice** or **Send again**. Sending again creates a second invoice, so confirm first. If the customer name matches more than one QuickBooks customer, Wave asks which one or offers to create a new one; creating one writes a record into the user's accounting file, so let the user pick. If either action is absent, treat it as unavailable for that user or estimate. ## Guidelines When available, users add carrier or TPA program PDFs in **Settings > Guidelines** and Wave reads them on its own. There is no rule-acceptance queue, no publish step, and no version ceremony. A program row reports **Reading**, **Ready**, **No billing checks**, **Couldn't read**, or **Needs update** when Wave must re-read files before using their billing checks again, and it can ask the user to **Finish setup** or **Confirm programs** when an interrupted upload left the file set uncommitted. Treat the row's own words as authoritative; this list is the common set, not every state. The app calls the results **billing checks**, not rules. Attaching is chat-only: the user names the insurer or program in the conversation. There is no picker on Home, and no Review or Re-review button on the estimate, because review and re-review are automatic. The findings drawer shows the clause Wave quoted and the recorded value that tripped it, and offers **Handled**, **Reopen**, and **Doesn't apply**, which requires a reason. It does not change the estimate. Findings are internal and never appear on exports or share links. If the controls are absent, do not advertise or simulate the feature. ## Settings and availability Core contractor settings are **Preferences**, **Account**, and **Company**. **Exports**, **Team**, and **Billing** are admin-only. **Pricing** is visible to every member: everyone can manage **Your Items**, while regional price overrides remain admin-only. **Guidelines** is not admin-only but is entitlement-gated; **Integrations** is both admin-only and entitlement-gated. Preferences covers appearance, send-key behavior, keyboard-label style, chat-panel side, default industry-code visibility, temperature unit, and default export report. Company details feed the letterhead. Admin export settings control document style and the destination profile code used by the Xactimate export (.ESX); Pricing contains member-level Your Items and admin-only regional overrides. ## Mobile Mobile shows either Chat or Estimate at one time. Use **View Estimate** / **View Chat**, then the view menu for Estimate, Drying when available, Info, and Files. Tap a line item to edit it; open export from Share, which can use the device share sheet. Do not assume desktop keyboard, hover, or drag controls exist on a phone. ## Guardrails for assistants - Get explicit confirmation before creating a sibling estimate because it uses a credit. - Ask before deleting estimates, rooms, line items, or files; changing billing, subscriptions, invitations, roles, or team access; or sending, exporting, or sharing with a third party. - Ask before any action that writes outside Wave, including sending an invoice to QuickBooks again or creating a QuickBooks customer. - Never enter passwords, one-time codes, or payment-card details for the user. - Preserve existing work on failure. Follow visible retry, upgrade, reconnect, or support guidance, and never report success unless the app confirms it. - Keep internal files, team notes, guideline findings, and other internal-only material out of customer-facing documents and links. - Name only surfaces the user has shown you or the app confirms. Lanes, DryTrack, guidelines, integrations, the Xactimate export, and the job workspace all vary by organization. ## Learn more - Product: https://buildwithwave.com - Documentation: https://buildwithwave.com/docs