What changed and when.

Changelog

A running log of features added and significant changes.

2026-08-14 - Roof Takeoff Builder rewrite, supplier integration, integrations, SEO, Smart Components

Free Roof Takeoff Builder (complete rewrite)

The Free Roof Takeoff Builder has been rebuilt with a shared calculation engine, supplier integration, and two entry modes:

  • Guided and Fast modes - Guided walks through each measurement step by step with explanations. Fast puts all inputs on one page for experienced users.
  • Supplier integration - select a supplier to load their real component library, pricing, and unit system. Results show actual supplier prices.
  • Send to Supplier - email a supplier your full takeoff as a detailed quote request, order request, pricing question, or general enquiry. Includes quantities, pricing, and a link to the result page.
  • Convert to Quote - import the takeoff into QuoteCore+ as a new quote.
  • Print and PDF - print results or save as PDF directly from the browser.
  • Currency display - supplier-driven currency (USD, NZD, etc.) with proper symbol display.
  • AI agent access - the builder is accessible to external AI agents via GET calculation URLs, REST API, MCP server, and OpenAPI spec. Fully server-rendered results - no JavaScript required.
  • Roof pricing calculator - new /free-roof-pricing-calculator page with an embedded calculator.

Supplier system expansion

  • Supplier dashboard overhaul - logo, banner, and price list upload. Location fields, SEO and enrichment fields, collapsible sections with plain-English labels and tips.
  • Supplier landing pages - dynamic titles, meta descriptions, enriched JSON-LD (LocalBusiness with geo coordinates, opening hours, price range), FAQPage schema, internal links. Dynamic FAQs per supplier location.
  • Supplier catalogue routes - versioned HTML, CSV, and JSON endpoints for supplier price lists. Version history with metadata.
  • Tax and delivery - per-upload tax inclusion flags for price lists and takeoff builder. Delivery coverage areas. Tax name and rate display on supplier pages.
  • Supplier partnership page - conversion-focused landing page at /supplier-partnership with real screenshots, feature highlights, and application form.
  • 4 test suppliers - dummy suppliers in London, LA, NY, and Sydney with component libraries and published collections for testing.
  • Supplier application form - modal form with admin viewer for reviewing applications.

Active Smart Components model

Component allowances are now based on active components, not a hard creation cap:

  • Tier limits: Trial=10, Free=5, Starter=20, Pro=50, Pro Plus=200 active components.
  • Users can store unlimited components; only active count is restricted.
  • Insert at cap creates the component as inactive. Activation triggers the cap check.
  • Counting is company-wide across all libraries.

Integration framework

  • Send to App button on quote summary - export quotes to external systems.
  • Fergus connector - native integration for Fergus job management (quotes, line items, attachments, notes).
  • JobNimbus connector - native integration for JobNimbus.
  • Zapier connector - connect QuoteCore+ to thousands of apps via Zapier.

SEO overhaul

  • Commercial pages - new dedicated pages for roofing takeoff software, roofing estimating software, roofing quoting software, and free roofing takeoff builder.
  • Blog expansion - 10+ new blog posts with video embeds, topic hubs, and internal linking.
  • Video SEO - video sitemap, VideoObject microdata, YouTube lite embeds with noscript fallbacks.
  • Dual-domain SEO - .com and .co.nz domain-aware signals, hreflang, currency and tax defaults.
  • IndexNow - instant search engine notification on content changes.
  • Structured data - Organization, WebSite, BlogPosting, FAQPage, BreadcrumbList, WebApplication, ItemList, LocalBusiness schemas.
  • llms.txt - machine-readable site summary for AI crawlers.
  • Sitemap cleanup - calculator URLs, supplier pages, feature pages, blog topic hubs added.

Homepage rework

  • Full-screen hero video with sticky header that hides/reveals on scroll.
  • Slide-in animation for transition text lines.
  • 7 focused conversion sections (down from more).
  • Real customer testimonials (Greg Kepp, Tony Edwards, Rob Mander).
  • Smart Components and AI Scan Assist emphasis.

Other improvements

  • Smart Components trademark - consistent Smart Components(TM) rendering across blog posts and marketing pages.
  • Roofing calculator fixes - removed pitch factor from Actual mode, fixed hipValleyPitchFactor formula.
  • Stale acceptance URL fix - quotes no longer show old acceptance URL after reopening.
  • Quote builder state reset - fixed state reset bugs when creating new quotes.
  • Imperial unit matching - fixed isAreaUnit matching for imperial (sqft) and squares unit systems so US supplier components show in dropdowns.

2026-07-30 — Supplier component system, AI takeoff V3, catalogue converter, Smart Component Creator, SEO overhaul

Supplier component system (all 10 phases)

QuoteCore+ now supports a full supplier-to-user component pipeline:

  • Supplier profiles - approved suppliers get a profile with name, description, service areas, product categories, brands, and keywords.
  • Supplier dashboard - suppliers can publish component libraries (with SKU, price, product type, notes) to the public directory.
  • Supplier directory - all users can browse approved suppliers, search by keyword/category/brand, and import individual components or entire libraries into their own component library.
  • Selective import - pick which components to import; you don't have to take a whole library.
  • Pending update notifications - when a supplier updates a component you've imported, a banner on your Components page lets you review and accept or dismiss each change.
  • Catalogue converter - suppliers can upload a CSV price list (up to 30,000+ rows) and map columns (SKU, name, price, product type, notes) to batch-create components. Supports multi-map, infinite scroll, and column highlighting.
  • Publication controls - libraries can be Published (public in directory), Unlisted (link only), or Private.
  • Change notifications - the system tracks added, modified, removed, and price-changed components per published version.

Supplier access is admin-created only (manual verification). Non-supplier accounts see zero changes.

AI Takeoff V3 (3-scan pipeline)

AI Assist is out of alpha and into V3 with a streamlined 1-step flow:

  • 3-scan pipeline - Scan 1 traces roof perimeters, Scan 2 traces internal lines (ridges, hips, valleys, barges, spouting), Scan 3 classifies each line type. All three run continuously without intermediate modals.
  • Quality selector - choose Low, Medium, or High before starting. Low is fastest (~40s), Medium is balanced (~2-4 min), High is most detailed (~5+ min).
  • 1-step flow - no intermediate modal between Scan 1 and the final results. Area name and pitch inputs are in the final results modal only.
  • Roofing-only - AI Assist controls only appear for companies whose default trade is roofing.
  • Perimeter corner check - Scan 3 uses convex/concave corner geometry to distinguish hips from valleys.

Smart Component Creator

The Roofing Material Calculator has been renamed to Smart Component Creator and is available as a standalone free tool. Same functionality - pick a material type, enter measurements, get a material list with waste applied.

SEO overhaul

Major SEO improvements across the marketing site and free tools:

  • Server-rendered SEO shells on quote, invoice, and PO generators with WebApplication, BreadcrumbList, and FAQPage structured data.
  • Blog structured data - enriched BlogPosting schema with author, publisher logo, and default OG image.
  • Free tools hub split into a server component with crawl-friendly tool directory and expanded ItemList schema.
  • Crawl signals fixed - /free-tools and /free-roofing-takeoff-builder added to robots.txt and sitemap. JSON-LD moved from client to server layouts. llms.txt added for AI crawlers.
  • Accessibility - WCAG AA contrast fixes on orange text (#FF6B35 to #BD4A1A), main landmarks on blog posts, aria-labels on free tools, improved touch targets.
  • Blog index performance - lazy-loaded SiteAssistant and AttributionTracker, compressed icons, modern JS target via browserslist.
  • Noindex on non-prod - X-Robots-Tag noindex on non-production Vercel aliases. 308 redirects on stable aliases.

Blog launch

8 blog posts published covering AI roof measuring, AI roofing tools, AI quoting software, and related topics. Content follows a technical accuracy rule: no guessing, no filler, verify or omit.

Catalog converter improvements

  • Infinite scroll for large catalogues with better search UX.
  • Column highlighting - selected and mapped columns are visually highlighted.
  • 30K row support - progressive loading for very large supplier price lists.
  • Sticky header with white background for column mapping.

Added breadcrumbs to supplier dashboard, supplier directory, and library detail pages for better navigation.

E2E test harness

30 end-to-end tests across 4 phases with real assertions, covering authentication, quote creation, component management, and order flows. GitHub Actions workflow triggers Vercel testing deploy on development push.

Team git workflow

Added TEAM_GIT_WORKFLOW.md defining branch and deploy rules for all agents (Gavin, Ron, Barry) working on the codebase.

2026-07-15 — Free tools unified auth, save-to-app, server-side drafts

Unified authentication for free tools

Free tools now authenticate against the main QuoteCore+ Supabase project. This means:

  • One account everywhere — the same login works for the app and all free tools.
  • Cookie-backed sessions — sign in once, stay signed in across quote-core.com and app.quote-core.com.
  • Magic link sign-up — no password needed to get started. Set a password later during onboarding.
  • Google OAuth — sign up or log in with Google on free tools.

The separate free-tools Supabase project has been retired.

Save to App flow

Free tool users can now save their quotes, invoices, and purchase orders directly into their QuoteCore+ workspace:

  • Save to App button on all three document generators.
  • Checks subscription status, quotas, and duplicate document numbers before importing.
  • Creates a full editable entity (quote, invoice, or material order) in the workspace.
  • Redirects to the app editor with the document ready to go.

Server-side draft persistence

Smart Component drafts from the calculators are now saved server-side instead of in browser localStorage. This fixes cross-origin issues between quote-core.com and app.quote-core.com — drafts created on the marketing site are immediately available on the app dashboard.

Smart Component → Component Library

Smart Component specs from the free calculators can be added directly to your component library with one click from the dashboard. The conversion maps waste routing, pack pricing, pitch type, and component slot requirements automatically.

Email sign-up fix

Fixed an issue where email sign-up did not send a confirmation email. The resend flow now fires correctly after account creation. Welcome emails fire at onboarding completion (not at sign-up) for both email and Google OAuth paths.

2026-07-12 — Gradient pitch input, admin quota reset, component-as-custom-line note, docs update

Gradient pitch input

Pitch fields across the app now support three input modes: degrees (°), ratio (1:X), and gradient (%). Toggle between modes with the buttons next to the pitch field — the app converts automatically.

This applies to:

  • Area pitch in the quote builder and takeoff
  • Component pitch in the quote builder
  • Area name modal in takeoff

Trade-specific labels have been updated: trades that previously used "Slope" or "Fall / Slope" now show "Gradient" or "Fall / Gradient" to match the new input style.

Admin quota reset

Admins can now view and reset company quotas from the user profile page in the admin panel.

  • Quota dashboard shows progress bars for quotes (monthly), invoices, orders, components, flashings, catalogs, and attachments with traffic-light colour coding.
  • Reset monthly quotes with a required reason field — clears the company's monthly quote counter immediately.
  • Non-resettable quotas (components, flashings, etc.) show lifetime counts for reference.

Component-as-custom-line note

When adding a component as a custom line in the quote editor or order editor, an info note now clarifies that the component is being added as a standalone line item — not linked to takeoff measurements. This prevents confusion when mixing measured and manually-added components.

Docs and help updates

Help documentation has been updated to cover recent features including trade calculators, free tools, takeoff improvements, the unified send pipeline, and order editor fixed quantity display.

2026-06-25 — Flashing drawing improvements, angle calculator widget, order editor hover-highlight, dashboard alerts fix

Flashing drawing system

  • Change of Pitch bend direction fixed. The angle calculator now bends flashings the correct way: upper roof steeper than lower = internal angle (folds inward), upper roof flatter than lower = external angle (opens outward).
  • Select All / Deselect All. "Select All" in the drawing editor no longer traps you — a "Deselect All" button appears when selection is locked, so you can exit and resume editing or save.

Angle Calculator widget (shared)

The drawing editor and the order editor now share the same angle calculator widget — a draggable floating panel that stays open after applying an angle so you can iterate quickly.

  • Fixed-size with scroll. Opens at a default height with an internal scroll area. Drag the bottom-right corner to resize.
  • "Apply Angle" button (renamed from "Copy Finished Angle").
  • Auto-scroll to results. After clicking Calculate, the panel scrolls down so the results are always visible.
  • Supports Rafter Pitch, Hip/Valley Pitch, and Change of Pitch calculations.

Order editor hover-to-highlight

In both the Line-by-Line and Component layouts, hovering a line or component in the left sidebar highlights the matching item in the order preview with an orange border — so you can quickly see which item you need to edit.

Dashboard alerts sync

The dashboard alert banner now uses the same lifecycle as the bell icon. Clearing alerts from the bell also clears the dashboard banner.

2026-06-05 — Catalog Library, Attachments, Q assistant, order layouts, and follow-ups

Catalog Library

Upload your supplier price lists as CSV files (up to 35,000 rows) and search them when building quotes or orders. Add an item from the results and it drops straight onto the line with description and price filled in.

  • Multiple column maps per catalog — create named maps over the same file to use different column interpretations (e.g. retail vs. trade prices) without re-uploading.
  • Available on Pro and above. Found in Resource Library > Catalogs.

Attachment Library

Upload files (PDFs, images, ZIPs — up to 50 MB each) once and reuse them across any quote or order at send time. Customers get View and Download buttons per file on their quote page.

  • Template defaults — bake a default attachment into an email template so it's pre-selected every time that template is used.
  • Available on Pro and above. Found in Resource Library > Attachments.

AI Assistant — Q and Guide Me

Q is the new in-app AI assistant, replacing the previous Copilot.

  • Respond mode — ask Q questions about the app and get plain-language answers drawn from the help docs.
  • Guide Me mode — Q walks you through tasks step by step. Switch to Guide Me on any page and Q auto-starts a walkthrough for where you are. With Highlights on, Q visually points at the exact control to use.
  • The floating Q launcher appears in the bottom-right corner. Hide it temporarily with the Hide button in the panel, or turn it off completely in Account > Chat Assistant.

Material order layouts

Three layout choices are now available when creating a new material order:

  • Line by Line — a priced, itemised text list with per-line show/hide/price/total controls. Uses the same line style as a customer quote. Supports custom lines, component lines, and catalog search.
  • Single Column — the existing Components & Images editor, stacked.
  • Double Column — Components & Images, two blocks per row.

The layout is chosen at creation and locked. Creating an order from a quote in Line by Line layout pre-populates the order with the quote's priced lines and footer.

Automated follow-ups

Schedule chase emails for any quote. Set a trigger (quote sent, customer accepted/declined, or starting now), a wait time (hours or days), and an email template. The app sends automatically at the right time.

  • Safety toggle: auto-cancel the follow-up if the customer responds first (recommended for "after quote sent" chases).
  • Quiet-hours option: avoid evenings and weekends.
  • Manage, cancel, or send early from the Scheduled tab on the quote's Activity card.
  • Available on Pro and above.

2026-05-18 - Subscription tiers and launch pricing

Major release. Subscription billing goes live with a 14-day free trial and five paid tiers.

Plans

  • 14-day Trial - Free, all features unlocked with tiny caps. Once per account.
  • Starter - $19/mo ($40), 25 quotes/month, 200 MB storage.
  • Growth - $29/mo ($60), 50 quotes/month, 2 GB, + digital takeoff and email send.
  • Professional - $39/mo ($90), 100 quotes/month, 3 GB, all features.
  • Pro Plus - $59/mo ($120), 200 quotes/month, 5 GB, 3 included seats.
  • Premium - coming soon, placeholder card on the billing page.

Launch discounts are auto-applied at checkout and renew at the launch price for the lifetime of the subscription.

What's now feature-gated

  • Digital takeoff - Growth and above.
  • Email send from inside the app - Growth and above.
  • Drawings & Images drawing tool and library - Pro and above.
  • Material orders - Pro and above.
  • Automated follow-ups - Pro and above.
  • Activity card on quotes - Growth and above.

New numeric caps

Every plan has limits on quotes per month, components, drawings & images, material orders, and storage. See Tier limits for details.

When you hit a cap, an upgrade modal appears with a "View plans" button.

Billing page rework

  • New plan-grid layout with View modals showing full feature breakdowns per plan.
  • Start 14-day trial button on the Trial card.
  • Manage subscription button always visible when there's a Stripe customer record - opens Stripe's customer portal for plan switches, card updates, invoices, and cancellation.
  • Trial countdown on the current-plan card.

Subscription lifecycle

  • Statuses now drive everything: trialing, active, past_due, grace, suspended, pending_data_purge, disputed, cancellation_pending, canceled.
  • Dunning cron escalates past_duegrace (day 14) → suspended (day 24) → pending_data_purge (day 75).
  • Payments are sticky: a paid subscription is never overwritten by a payment failure. Only explicit plan switches change plan_code.

Stripe integration

  • Stripe Checkout for new subscriptions, with auto-applied launch discount coupons.
  • Customer portal handles plan switch, cancel, and card update.
  • Webhook handlers maintain DB state on every Stripe event.
  • Webhook events are idempotent - replaying an event won't double-fire.

Disputes

  • A chargeback (bank-initiated dispute) automatically opens a support ticket on the affected account.
  • Subscription status moves to disputed until the dispute closes.
  • On dispute close the ticket auto-resolves.

2026-05-11 - Settings overhaul

  • All settings consolidated into a single Account page with tabs (Profile, Company, Security, Notifications, Billing, Support).
  • Legacy /settings subroutes redirect to the new tabbed page.

2026-05-04 - Support tickets

  • New Account > Support tab. Create tickets directly from the app and view your own ticket history.
  • Admin support inbox at /admin/support-tickets for the team.

2026-04-26 - Security upgrades

  • Two-factor authentication (TOTP) for sign-in.
  • One-time recovery codes you can print or store in a password manager.
  • Security questions for account recovery when both 2FA and email access are lost.

2026-04-15 - Blank quote mode

  • New Blank Quote entry mode skips the builder entirely and lets you write a custom quote line-by-line.
  • Auto-confirms on first save when at least one line is present.
  • Numbering uses the same sequence as manual/digital quotes.

2026-04-08 - Imperial measurement system

  • Companies can pick Metric, Imperial - ft², or Imperial - Roofing Squares (RS).
  • Per-quote measurement system locks at creation time.
  • Flashings drawing tool now respects company unit preference (mm vs inches).

2026-03-30 - Public docs

  • This help site went live with full coverage of components, quotes, templates, drawings & images, material orders, files, and account management.

Last updated: Fri Aug 14 2026 00:00:00 GMT+0000 (Coordinated Universal Time)