evo.provensheet

Your workbook, online and proven.

Turn the Excel workbook your business already runs on into a shared, multi-user web application — with every formula recomputed and checked, cell by cell, against Excel's own results. The proof case is a capital-project estimating system refined over 30 years of in-field use; it ships as the built-in sample.

Overview

Almost every company has one spreadsheet that quietly runs something that matters — pricing, estimating, quoting, commissions. It works, and it is usually better at its job than anything they could buy. It is also a liability: one person really understands it, it travels by email in versions, two people cannot work in it at once, and nothing stops a typed-in number replacing a formula.

ProvenSheet turns that workbook into a shared, multi-user web application — and proves the numbers survived. Upload the .xlsx and every formula is recomputed and compared against the result Excel itself cached in the file, so you are shown cell by cell that the maths is intact before anyone relies on it. Everything else in this space asks you to trust the conversion; the fidelity report is the product.

The proof case is the hardest workbook available: an industrial capital-project estimating system refined over 30 years of in-field use, pricing full manufacturing plant builds, factory overhauls, utility-scale wind farms, city power plants, and — at its most ambitious — the world's largest concrete plant (at the time of construction). It ships as ProvenSheet's built-in SWAG Estimates sample, and its 18 discipline-level tabs span civil, structural, mechanical, piping, electrical, production equipment and subcontractors. All 5,121 of its formulas match Excel's own results. Yours is probably simpler.

What the platform does is the same whichever workbook you give it: read the sheets, keep every formula live, and serve the result as a local-first web app. The sample is simply a demanding example of that — 18 discipline tabs, 1,453 input fields and 5,121 live formula cells that recalculate across sheets the moment any input changes. A workbook a tenth the size behaves the same way, and opens faster.

An added workbook becomes a template. Name a document and a project, and the platform clones that template — clearing the previous entries while preserving every formula, label, and cross-sheet dependency — so each new document starts from a fully wired copy rather than a blank page. Adding one is a drag-and-drop of an .xlsx or .xlsm file; the parser reads each cell's type, value, and number format and maps currencies, percentages, and dates to the appropriate UI inputs automatically.

Local-first architecture means people keep working where connectivity drops mid-session — a plant floor, a job trailer, a flight. Edits are written to the browser's own store first and pushed to the cloud database when the connection returns. The document list gives the whole workspace a live view by status — Draft, In Progress, or Completed — with open, clone, and delete controls.

What you get

  • Any workbook, not a fixed schema — the application is generated from the sheets, formulas, and formats found in the file you add. The built-in sample is one workbook, not the product's shape.
  • The fidelity report — every formula is recomputed and compared against the result Excel itself cached in the file, and the match is shown cell by cell before anyone relies on it. On the sample that is 5,121 of 5,121.
  • Live cross-sheet formula engine — computed cells update in real time as inputs change, replicating the full Excel formula dependency graph in the browser via IronCalc (WASM).
  • Template-based documents — an added workbook becomes the template; each new document clones it with prior data cleared and every formula, label, and dependency intact.
  • Drag-and-drop import — drop in an .xlsx or .xlsm file; the parser identifies every cell's role (input, formula, label), maps currency and percentage formats to the right UI components, and converts dates to UTC for storage.
  • Local-first operation — edits are written to IndexedDB first and queue there through a dropped connection, syncing to the cloud database automatically when it returns.
  • Shared document list — every document with its project, edit count, status (Draft / In Progress / Completed), and who last changed it and when, with open, clone, and delete controls.
  • A demanding sample, included — 18 discipline worksheets from a methodology proven on some of the largest industrial capital projects ever priced, open to explore without uploading anything.
  • Flexible sidebar navigation — the worksheet menu can be docked left, right, or hidden, remembered per browser.
  • Display preferences — timezone and date format (MM/DD/YYYY or DD/MM/YYYY) applied to every timestamp, remembered per browser.
  • Multi-tenant cloud deployment — Docker + PostgreSQL architecture ready for AWS EC2; each client's data is isolated and the stack runs the same in development and production.

Inside the sample workbook

This is the structure of the built-in SWAG Estimates sample — an illustration of the kind of workbook the platform handles, not a layout it imposes. Your own file brings its own sheets. The sample's 18 discipline tabs match the breakdown used on real capital projects, and its Summary sheet rolls up totals from all of them in real time.

Worksheet Covers
Large Job Status ReviewHigh-level project status dashboard across all active estimates.
BreakdownTop-level cost breakdown structure linking all discipline totals.
BME BreakdownBulk material and equipment cost breakdown detail.
SummaryConsolidated project total — the deliverable sheet presented to stakeholders.
EngineeringEngineering fees, design hours, and deliverable costs.
Misc.Miscellaneous project costs, temporary facilities, and allowances.
DemolitionDemolition and abatement scope and unit costs.
CivilSite work, grading, foundations, concrete, and civil infrastructure.
ElectricalPower distribution, instrumentation, lighting, and electrical installation.
MechanicalHVAC, process equipment, and mechanical systems.
PipingProcess piping, fittings, insulation, and testing.
Structural SteelStructural steel fabrication, erection, and connections.
Rental EquipmentCranes, lifts, and heavy equipment rental durations and rates.
Fixture ScheduleFixtures, fittings, and installed items by area.
Production EquipmentProcess and production equipment procurement costs.
SubcontractorSubcontractor scopes, bid comparisons, and award values.
Drop DownsReference lists and controlled vocabulary for data-entry consistency.
Estimate RatesLabor rates, burden factors, and unit cost basis for the entire estimate.

Technology stack

Application

Layer Technology Notes
Framework Next.js 16 App Router; runs on port 4173 in dev and production.
Language TypeScript 5 Strict typing across all application and data layers.
UI library React 19 Component-based UI with server and client components via Next.js App Router.
Styling Tailwind CSS 4 Utility-first CSS; dark-mode design system.
Icons Lucide React Consistent icon set for CRUD controls, navigation, and status indicators.

Formula engine

Layer Technology Notes
Formula evaluation IronCalc (WASM) Browser-side formula engine that mirrors Excel cross-sheet dependencies. All 5,121 computed cells update in real time as inputs change, and every one of them matches Excel's own cached result.
Excel parsing ExcelJS Deep cell-by-cell parse of .xlsx imports: identifies inputs, formulas, and labels; maps Excel number formats (currency, percentage, date) to UI components.

Offline storage & sync

Layer Technology Notes
Local cache Dexie.js (IndexedDB) Holds estimates and worksheet entries in the browser and takes writes first, so edits continue through a connection drop.
Sync engine Mutation queue Queued edits are pushed to the server when connectivity is restored; idempotent by composite key.

Data & persistence

Layer Technology Notes
Database PostgreSQL Production relational store for estimates and worksheet entries.
Driver pg + @prisma/adapter-pg Node.js PostgreSQL driver wired through Prisma's adapter layer.
ORM Prisma 7 Type-safe database access; schema defines Estimate and WorksheetEntry models. All timestamps stored as UTC.

Deployment & operations

Item Details
Docker Next.js app image plus PostgreSQL via Compose; identical stack in development and production.
AWS EC2 Cloud deployment target; port 4173 exposed through the nginx ingress layer.
Scripts PowerShell deploy and EC2 management helpers (zdeploy.ps1, zec2.ps1) for build, upload, and restart workflows.

The estimate data model uses a composite cell key (estimateId::worksheetName::cellAddress) so that cloud sync and offline mutations are fully idempotent — the same edit applied twice produces the same result.

Back to Work · Contact