# Proposals
0
Portfolios calculated & versioned
# Projects
0
Across each proposal's latest version
Total MW
0
Summed portfolio size, latest versions
Proposals This Week
0
Created in the last 7 days
Proposals This Month
0
Created in the last 30 days

Saved Proposals History

Opportunity ID Opportunity Name Account Notes
Loading proposals...
Active Technicians
0
Geocoded & routed from DB
Active Sites
0
Approved contracts (BigQuery)
Pending Sites
0
Signed, not yet started (BigQuery)
Proposed Sites
0
Added for this proposal

Coverage Map & Distance Routing

Click on a technician or site marker to view details. ● Technician   ■ Active site   ■ Pending site   ■ Proposed site

Layers
Base Map
Drive-Time Radius

Estimated from real OSRM road routing in each direction, not a straight-line circle — still approximate, not a precise isochrone.

Customer Filter

Add Proposed Sites

Paste a site list (one per line — tab or comma separated: name, address) or drop a CSV/text file. Each row is geocoded and added as a proposed-site pin.

Drag & drop a CSV/TSV/text file here, or click to browse

Client, Portfolio and Project Details

Establish the client profile and opportunity parameters. Add portfolio projects further below manually, via Copper CRM, or from parsed engineering blueprints (Parse Drawing/Contract/Scope tab).

Sourcing Portal
Enter Opportunity ID 26-0011 for a mock Copper CRM data pull.
Reload a previously saved proposal into the wizard.
Populate the opportunity ID and site assets from a previously parsed drawing set.

Portfolio Contract Parameters

Establish the global contract variables applied across every project in this portfolio.

Site Assets & Quantities Setup

Configure sizes, hardware counts, and localized on-site drive times. Pick a previously parsed drawing above a card, or upload a new one, to auto-fill it.

Portfolio Routing Map

Verify site locations relative to our current technician locations.

Pricing Summary/Ledger

Review calculated fees, total portfolio summaries, and detailed hours side-by-side. Updates live as parameters change.

Proposal Results & Export

Verify calculations, review the cover letter, save the active proposal version, and export styled PDF/PPTX documents.

Client & Contact Summary

Client Name:
Contact Name:
Contact Phone:
Contact Email:
Opportunity ID:
Proposal Name:

Portfolio & Projects Priced

Total Size
0.00 kW
Portfolio Grand Total
$0.00

Cover Letter & Proposal Commentary

Included as the cover letter on the generated proposal PDF. The opening and closing are pre-filled from Cleanleaf's standard letter — edit the middle to add deal-specific commentary. The recipient greeting and signature are generated automatically from the client contact and your account details.

Actions & Exporters

Active Proposal Revision History

Version Date Details of Changes
Calculate or load a proposal to see its version history.

Upload RFP PDF / SOW DOCX

Drag and drop RFP PDF or SOW DOCX here

or click to browse from your computer

Design Drawings & CAD Blueprint Parser

Upload engineering single-line drawings, site plans, or layout PDFs to automatically extract site coordinates, install types, and component counts. Each parsed drawing is saved under its own label so it can be selected later from the Site Assets section of the Proposal Wizard.

Drag and drop drawings or layouts here

Supports PDF, CAD, DXF, or DWG blueprints

Document Review Log

Click a CAD drawing row to view what was extracted in the panel below.

Type Document Opportunity / Project Reviewed At Reviewed By Result
No documents reviewed yet this session.

Extracted Details

Click a CAD drawing in the Document Review Log above to view what was extracted.

Pricebook Version

Select a pricebook version to view the constants and formulas that were active during that period. Current inputs shown below always reflect the live database.

Version History

Version Effective Date Description Created By
Loading version history...

Proposal Assumptions Text

The "Assumptions" disclaimer bullets shown on each proposal's Preventive, Washing, and Vegetation pages. One line per bullet. Edits apply to every proposal generated after saving.

Preventive Maintenance

Per-Unit Hours × Config

Hours allocated per unit during annual preventive maintenance. Values vary by install type (Roof / Ground / Carport) and inverter type (Central / String). All assets also include a 0.50 hr fixed setup per asset category.

Asset Type Fixed Hrs Roof / Central Roof / String Ground / Central Ground / String Carport / Central Carport / String
Loading preventive hours matrix...

Size-Dependent Formulas

These assets don't vary by install/inverter type — hours are driven by system size, unit counts, or walk calculations.

Corrective / Comprehensive Hours Model

Annual Reactive Estimates

Estimated annual corrective maintenance visits and labor hours by equipment type and site configuration. These inputs drive the comprehensive O&M package budget.

Per-Inverter & Per-Combiner Corrective Rates

Configuration Inverter Combiner
Visits / yr Hours / yr Visits / yr Hours / yr
Loading...

Fixed BOS / BOP Corrective Base (Tx, Switchgear, Comm, Wx, AC Panel)

Aggregate annual corrective estimates for balance-of-system equipment, not per-unit — the multipliers adjust for configuration complexity.

Configuration Base Hours Base Visits Hours Multiplier Visits Multiplier
Loading...

Travel Hours & Drive Time Logic

How round-trip travel time is computed for each maintenance model, and where drive times are sourced from.

Wage Rates

Wage Rate Overrides

Custom-entered rates for portfolios with union CBAs or prevailing wage requirements not covered below. Multiple entries can exist per pricebook version — selectable per project on the Pricing Summary/Ledger step.

Label Base Rate Fringe Total Rate Entered By Date Notes
Loading overrides...

State Standard Wage Rates

Standard hourly wage rate values used when prevailing wages do not apply. Wage rates are sourced from current average from the sourced region. Click a column header to sort.

State Source Region Base Rate Fringe Total Rate

CA Prevailing County Wage Rates

Hourly wage requirements mandated by the state of California for public projects. Click a column header to sort.

County Base Rate Fringe Total Rate Last Updated

Additional / Ancillary Services

Priced separately from the hours-based stack — module washing, vegetation/mowing, aerial thermal inspections, specialized lift rental, and material/inventory storage — each with their own cost basis and markup.

Item Rate Basis Markup
Loading...

Aerial Thermal Scan — Rate Table

Below 2,000 kW: flat $750 base cost. At or above 2,000 kW: base cost = rate ($/MW) × system size (MW), using the highest threshold at or below the project's size. Either way, the base cost is then marked up 25% and multiplied by the requested quantity of scans.

System Size Threshold Rate ($/MW)
Loading...

Fixed & Recurring Costs

Per-project fixed costs, not driven by labor hours. Applied regardless of site size.

Item Rate Basis
Loading...

Hours → Price: Complete Pricing Stack

Cost-Price Summary Model

Every input applied on top of estimated labor hours to arrive at a quoted dollar price. The Preventive and Corrective stacks apply different overhead and margin targets.

# Cost Layer Preventive Corrective Description
Loading pricing stack...

Submit Feedback

Tabulated Feedback & Requests

All user-submitted requests, bug reports, and features are tabulated below.

Date User Type Priority Description Status
Loading feedback entries...

Application Revision Changelog

Changelog history detailing updates made to the O&M Pricing & Proposal Engine.

Version Date Changes & Features Added
v1.2.1 2026-06-08 Feedback Hub & Revision Log: Integrated SQL table to capture user requests, bugs, and feature requests. Tabulated feedback log on frontend. Added proposal version changelogs.
v1.2.0 2026-06-08 SOW Scope Comparator: Added side-by-side DOCX/PDF parser. Extracts regular time/off-hour labor rates, markups, escalators, and priority dispatch thresholds, highlighting mismatches with standard SOW. Skip Assumptions pages in PDF.
v1.1.0 2026-06-07 Geocoding & OSRM Routing Map: Integrated Leaflet.js map inside proposal wizard step 2. Dynamically geocodes technician locations and queries OSRM driving routes. Corrected Excel drive time reference cell.
v1.0.0 2026-06-06 Core Pricing Engine: Replicated Excel preventive/comprehensive quote calculations inside Python. Seeded standard/prevailing wage rates database. Seeded mock Copper CRM Opportunity pull.

Access Control

Manage user roles and permissions. Admins can add/remove users and change roles.

Email Name Role Actions
Loading access list...

User Profile Settings

Configure your proposal identity. These values appear on generated proposals as the signatory / prepared-by block.

No signature
No photo