100 demos

See it actually work.

Every demo below is a live, looping mock of a real EstiWright screen, built from our own demo tenant — the Marina Tower MEP fit-out, priced at AED 41,037,753. These cover only what ships today. Hover any card to pause it.

Capture the tender

Get the RFP in and turn it into a structured requirement register.

EstiWright — Drop the tender in
marina-tower-rfp.pdf10 pages · rfp · Marina Tower — MEP Fit-out
1Upload2Analyse3RFI4Compliance5Export

Drop the tender in

Upload the RFP and EstiWright pins the tender number, page count and source file before anything else happens.

UploadDocuments
EstiWright — Requirements
RefDisciplineTextPage
3.1mechanicalHVAC for all occupied floors per ASHRAE 62.1.3
4.2electricalLV distribution with N+1 redundancy on risers.4
5.4elvStructured cabling Cat6A to every workstation.5
1Upload2Analyse3RFI4Compliance5Export

Extract the requirement register

One pass over the tender produces a structured register — reference, discipline, mandatory flag and source page.

AnalyseRequirements
EstiWright — Requirements
3.1 · HVAC per ASHRAE 62.1 Mandatory
4.2 · LV N+1 redundancy Mandatory
5.4 · Cat6A to workstations Optional

Mandatory versus optional

Every requirement carries an explicit mandatory flag, so nothing binding is left to memory.

RequirementsRisk
EstiWright — Requirements by discipline
ICT 64
CCTV 48
SCS 41
ACS 27
AV 20

Split by discipline

Requirements are tagged ICT, CCTV, Voice, SCS, ACS, AV, IPTV, GRMS or UPS so each package owner sees only theirs.

RequirementsELV
EstiWright — Nothing untriaged slips through
200total
86mandatory
200triaged
0untriaged mandatory

gate_open: true

Nothing untriaged slips through

A coverage gauge counts untriaged mandatory requirements and holds the gate closed until it reaches zero.

TriageGate
EstiWright — Requirements
RefTextSourcePage
3.1HVAC for all occupied floors…marina-tower-rfp.pdf3
4.2LV distribution with N+1…marina-tower-rfp.pdf4
5.4Structured cabling Cat6A…marina-tower-rfp.pdf5

Every line traces to a page

Each requirement keeps its source filename and page number, so a reviewer can jump straight back to the clause.

AuditRequirements
EstiWright — Revision Delta (Addenda)
6.1 · Generator sizing Added
4.2 · LV redundancy Modified
2.7 · Legacy PABX Removed
5.4 · Cat6A cabling Unchanged

Diff the addendum

When a revision lands, the delta shows exactly what was added, removed, modified or left unchanged.

AddendaRevisions
EstiWright — Translate for the client
Structured cabling Cat6A to every workstation.
كابلات منظمة من الفئة 6A لكل محطة عمل.

Translate for the client

Any requirement or response can be translated — Arabic by default — without leaving the register.

ArabicUAE & KSA
EstiWright — Documents
rfprficostingcomplianceproposaltemplatedrawing

One project, every document

RFP, RFI, costing, compliance, proposal, template and drawing all hang off the same project record.

DocumentsProjects
EstiWright — Job · extract-all
marina-tower-rfp.pdf queuedrunning
requirements found 200
status runningdone

Extraction doesn't block you

A 200-requirement tender extracts as a background job. Poll it, close the tab, come back — the work carries on.

JobsAnalyse
EstiWright — Projects
ProjectClientRegionStatus
Marina Tower — MEP Fit-outEmaarDubaiactive
Najm Tower — SecurityDubaiwon
Metro UpgradeDubailost

Active, won, lost

Every bid carries a status, so the pipeline reflects reality instead of a spreadsheet nobody updated.

ProjectsPipeline
EstiWright — The original is always there
marina-tower-rfp.pdf
Sample Costing File-R1.xlsx

The original is always there

Uploads are stored intact and downloadable. The extracted register never replaces the source document.

DocumentsAudit

Clarify & comply

Raise RFIs first, then commit compliance positions.

EstiWright — RFIs come before positions
1Upload2Analyse3RFI4Compliance5Export

Clarify ambiguities first, then commit positions.

RFIs come before positions

The rail deliberately puts RFI ahead of Compliance — clarify the ambiguity first, then commit a position you can defend.

MethodRFI
EstiWright — Clarification RFI
CategoryRefQuestion
Mechanical3.1Confirm ASHRAE 62.1 revision year applicable to occupied floors.
Electrical4.2Is N+1 required on all risers or only life-safety risers?
ELV5.4Confirm Cat6A required at every workstation or hot-desk ratio.

Raise an RFI from the clause

Flag an ambiguous requirement and it becomes a numbered clarification question against the right category.

RFIClarification
EstiWright — Compliance matrix
ClauseRequirementStatusSource
3.1HVAC per ASHRAE 62.1Complymarina-tower-rfp.pdf
4.2LV N+1 on risersPartialmarina-tower-rfp.pdf
5.4Cat6A to workstationComplymarina-tower-rfp.pdf
1Upload2Analyse3RFI4Compliance5Export

Draft the compliance matrix

The AI drafts a clause-by-clause position; an engineer approves each one before it ever reaches the client.

ComplianceAI
EstiWright — Compliance status
ComplyPartialIncludedExcludedNotApplicable

Five positions, no fudging

Comply, Partial, Included, Excluded or Not applicable — a fixed vocabulary the whole bid team reads the same way.

ComplianceGovernance
EstiWright — Flagged to contract
4.2 · N+1 redundancy reviewescalated
7.3 · Liquidated damages reviewescalated
9.1 · Retention 10% reviewaccepted

Escalate to contracts

A clause that carries commercial risk is flagged to contract with a disposition and a severity, not buried in a comment.

ContractRisk
EstiWright — Watch compliance climb
92%compliance
184clauses answered
3open RFIs

Watch compliance climb

A single percentage tells the bid manager how much of the tender is answered and defensible.

ComplianceReadiness
EstiWright — Triage
3.1 · HVAC untriagedComply
4.2 · LV riser untriagedPartial
5.4 · Cat6A untriagedComply

Triage in one pass

Set the compliance status and whether an RFI is raised in a single action, with a note for the reviewer.

TriageRequirements
EstiWright — Requirements
RefSolutionProposed systems
4.2Dual-feed LV panels with automatic changeoverELV-PWR, UPS
5.4Cat6A F/UTP horizontal to every outletSCS
3.1AHU with demand-controlled ventilationHVAC

Say how you'll comply

Each requirement carries the proposed solution and the systems behind it, so the technical response writes itself.

RequirementsProposal
EstiWright — Job · draft-rfi
clauses reviewed 200
RFIs drafted 14
awaiting engineer 14

Draft every RFI at once

RFI drafting runs as its own background job across the whole register, not one clause at a time.

RFIJobs
EstiWright — Flagged to contract
RefDispositionSeverity
7.3 · Liquidated damagesescalatehigh
4.2 · N+1 redundancyreviewmedium
9.1 · Retention 10%acceptlow

How bad is it, really

A clause flagged to contract carries a severity as well as a disposition, so legal triages by risk not order of arrival.

ContractRisk
EstiWright — Contract flags
4.2 · N+1 redundancy flaggedcleared
7.3 · Liquidated damages flaggedflagged

Clear a flag once it's answered

When an RFI response settles the ambiguity, the contract flag comes off and the register reflects the resolution.

ContractTriage

Take off & price

Quantities, rates and a priced bill of quantities.

EstiWright — QTO takeoff
ElementScopeQtyUnitLocation
IP dome cameraCCTV180EAL1–L42
Cat6A outletSCS1,240EATypical floor
Access door controllerACS96EACore lobbies

Quantity take-off

Quantities land against element, scope, unit and location — the spine every price hangs from.

QTOTake-off
EstiWright — Priced BOQ
ElementSysQtyList priceDisc %Margin %
IP dome cameraCCTV180220.001822
Cat6A outletSCS1,24038.001224
Door controllerACS96910.001520

Price the bill of quantities

List price, discount, freight and margin per line — every column that moves the number is visible and editable.

BOQPricing
EstiWright — Markup is not margin
25%markup
20%margin
$1,250,000on $1.00m cost

Markup is not margin

The two diverge fast, and the gap is where bids are quietly lost. Watch a 25% markup land as a 20% margin.

PricingMargin
EstiWright — The number that goes out the door
$11,174,337priced BOQ
1,180lines
22%avg margin

The number that goes out the door

Every line rolls into one submitted figure — on the real Marina Tower workbook, $11,174,337.

BOQCommercial
EstiWright — Import an existing workbook
boq-import-template.xlsx
priced-boq.xlsx

Import an existing workbook

Download the import template, fill it from your own estimating sheet, and pull the whole BOQ in at once.

BOQExcel
EstiWright — Materials (manual)
ElementSysQtyList price
Fibre patch panel 24FSCS18640.00
PoE injector 90WCCTV40310.00

Add what the workbook missed

Manual material lines sit alongside imported ones, so a late scope addition never lives in someone's inbox.

BOQMaterials
EstiWright — Band Rates
Technician — Band C DRAFTAPPROVED
Engineer — Band B DRAFTAPPROVED
PM — Band A DRAFTDRAFT

DRAFT must not price

Draft rates must not price

Band rates carry a DRAFT to APPROVED gate. A draft rate cannot be used to price a live bid — the system refuses.

RatesGovernance
EstiWright — Contract nature
Lump sum (fixed price)Time & materialCost plus feeAnnual maintenance contractManaged services

Price for the contract you're signing

Lump sum, time & material, cost plus, AMC or managed services — the commercial roll-up follows the nature you pick.

ContractCommercial
EstiWright — Currency
AEDSAREUROGBPUSD

Bid in the client's currency

AED, SAR, EURO, GBP and USD per line — because a Gulf tender rarely prices in one currency.

CurrencyUAE & KSA
EstiWright — Commercial sign-off
Ravi QSPriced BOQ ready — $11,174,337.
Mona ApproverReviewed. Margin 22% holds. Approved.

Commercial sign-off

The price does not leave the building without a recorded, attributable engineer sign-off.

ApprovalsCommercial
EstiWright — Bring your own labour bands
band-rates-template.xlsx

Bring your own labour bands

Download the band-rate template, fill it from your HR or commercial sheet, and upload — no re-keying.

RatesExcel
EstiWright — Price the labour, not just the kit
$10,892labour selling
6bands used
1missing rates

Price the labour, not just the kit

A per-project labour estimate sits beside the materials, and flags the bands you haven't rated yet.

LabourRates
EstiWright — Roll up by contract nature
$51,681customer total
5 typesnature
1notes

Roll up by contract nature

The commercial summary re-cuts itself for the nature you're bidding — lump sum reads differently to managed services.

CommercialContract
EstiWright — Priced BOQ
IP dome camera · 180 EA 220.00198.00
line total 39,60035,640
bid total 41,041,71341,037,753

Every line stays editable

Add, edit or delete a BOQ line and the totals re-cost immediately — the model never does the arithmetic.

BOQPricing
EstiWright — Hand the commercial to finance
commercial.xlsx
priced-boq.xlsx

Hand the commercial to finance

The full commercial workbook exports to Excel, so review happens in the tool your commercial team already uses.

ExportCommercial

Deliverables & approvals

The gated ladder from NDA to draft contract.

EstiWright — The deliverable ladder
Mutual NDA docx lockedapproved
Technical Proposal docx lockedapproved
Commercial (BOQ) xlsx lockedready
Techno-Commercial pdf lockedlocked
Draft Contract docx lockedlocked

The deliverable ladder

Five artifacts, each gated on the last: NDA, technical proposal, commercial BOQ, techno-commercial, draft contract.

DeliverablesGates
EstiWright — Deliverables
Technical ProposalExtract the RFP requirements first.
Commercial (BOQ)Attach a costing workbook or add materials first.
Techno-CommercialApprove the technical + commercial deliverables first.

Locked, and it tells you why

A gated rung never just greys out — it states the blocking condition in plain words.

GatesUX
EstiWright — POST /projects/{id}/techno-commercial
409 Conflict
detail: "locked: approve technical_proposal + commercial_proposal first"

The gate is server-side

Skipping a rung is not a UI trick to work around — the API refuses with a 409 and names what is missing.

GovernanceAPI
EstiWright — Start with the NDA
mutual-nda.docx

Start with the NDA

The confidentiality agreement needed to exchange the tender, generated as the first rung of the ladder.

NDALegal
EstiWright — Technical proposal from the register
proposal-draft.docx

Technical proposal from the register

Scope understanding plus a requirement-by-requirement response, built from the register you already triaged.

ProposalDeliverables
EstiWright — One combined submission
techno-commercial-client.pdf
priced-boq.xlsx

One combined submission

Technical and commercial merge into a single techno-commercial document, per audience.

ProposalExport
EstiWright — Draft the contract
draft-contract.docx

Draft the contract

Layered terms and qualifications, carrying through every clause you flagged to contract during triage.

ContractLegal
EstiWright — Who approved what
approvals-register.xlsx
workspace-export.json

Who approved what

Reviews, sign-offs and engineer approvals export as one register — the answer to every audit question.

AuditApprovals
EstiWright — Pending sign-offs
Marina Tower — MEP Fit-outCommercial (BOQ) awaiting Mona Approver
Najm Tower — SecurityTechnical Proposal awaiting Dana Boss

What's waiting on you

Pending sign-offs surface on the dashboard, so an approval never stalls a bid without anyone noticing.

ApprovalsDashboard
EstiWright — Approvals
technical_proposalApproved by Dana Boss
commercial_proposalApproved by Mona Approver
techno_commercialNo approval recorded

Approvals are records, not vibes

Each approval is created, listed and revocable — a real object with an owner and a timestamp behind every gate.

ApprovalsAudit
EstiWright — Job · proposal
assembling sections queuedrunning
proposal-draft.docx ready

Generate while you carry on

Proposal generation is a background job with a status you can poll — a long document never locks the UI.

ProposalJobs
EstiWright — Techno-Commercial
LibreOffice absent → .docxLibreOffice present → .pdf

PDF when it can, DOCX when it can't

The techno-commercial renders to PDF where LibreOffice is available and falls back to DOCX — it degrades, it never fails.

ExportReliability

Dashboard & portfolio

Bid readiness, win rate and cycle time across the book.

EstiWright — The whole book at a glance
$34,962,560total pipeline
38%win rate
17priced
12.4 dmedian cycle

The whole book at a glance

Pipeline value, win rate, priced count and median cycle time across every active bid.

DashboardPortfolio
EstiWright — BID READINESS
Marina Tower — MEP Fit-out Ready
Najm Tower — Security Conditional
Metro Upgrade Not ready

Ready, conditional or not ready

Every bid carries a readiness verdict, so the go/no-go conversation starts from evidence.

ReadinessDashboard
EstiWright — Where every bid actually is
Upload RFPExtractRFI · Compliance · ContractQTO take-offPriced BOQCommercial ✓ApproveExport

Where every bid actually is

Upload RFP, Extract, RFI · Compliance · Contract, QTO take-off, Priced BOQ, Commercial ✓, Approve, Export.

DashboardPipeline
EstiWright — Cycle time (days)
Marina Tower 12 d
Najm Tower 19 d
Metro Upgrade 26 d
Al Noor Tower 9 d

How long a bid really takes

Median cycle time per bid, measured not estimated — the number that tells you whether the process is improving.

AnalyticsCycle time
EstiWright — Projects
ProjectBid valueMarginComplianceReadiness
Marina Tower — MEP Fit-out$11,174,33722%92%Ready
Najm Tower — Security$2,289,99317%78%Conditional
Metro Upgrade$6,235,53411%54%Not ready

Margin, bid by bid

Overall margin per project sits next to compliance and readiness, so a thin bid cannot hide behind a good score.

MarginDashboard
EstiWright — Department
AllELVMEPICTSecurity

Filter to one department

A super-admin switches department and the whole dashboard re-scopes; an engineer simply sees their own.

DepartmentsAccess
EstiWright — Notifications
credit_thresholdYou've used 50% of your included credits this cycle.
budget_thresholdELV department at 80% of its monthly AI budget.
supportSupport request received: How do I raise our overage cap?

Told before it bites

Credit thresholds, budget alerts and support replies land in one bell, with an unread count that caps at 99+.

NotificationsUX
EstiWright — Jump anywhere with ⌘K
marinaJump to a section, setting or project…
ProjectsMarina Tower — MEP Fit-out
Go toRequirements
SettingsAI Usage & Cost

Jump anywhere with ⌘K

One palette across sections, settings and projects — for people who bid all day and never touch a mouse.

UXKeyboard
EstiWright — Estimating Companion
Next stepTriage the 4 remaining mandatory requirements.
BlockerCommercial (BOQ) locked — attach a costing workbook.

The companion names the next step

A deterministic advisor — not a chatbot guess — tells you what to do next and what is blocking it.

CompanionGuidance
EstiWright — Companion
Cloud reachableOffline — advisor still running

Guidance without the cloud

The advisor engine is deterministic, so next steps and blockers still work with the network unplugged.

CompanionOn-prem
EstiWright — Notifications
unread 99+0
state 3 newYou're all caught up.

Clear the bell in one go

Mark everything read at once, and the badge — which caps at 99+ — empties to a plain "You're all caught up."

NotificationsUX
EstiWright — Support
question · openHow do I raise our overage cap?
notificationSupport request received: How do I raise our overage cap?

Ask without leaving the bid

Raise a support request in-product and track it — the reply lands back in the same notification bell.

SupportNotifications
EstiWright — Onboarding
First project created tododone
Band rates approved tododone
Users invited todotodo

Know what's still unset

An onboarding state tells a new tenant exactly which pieces — rates, brand, users, a first project — aren't configured yet.

OnboardingSetup
EstiWright — Quota banner
Credits running lowBilling beyond your plan

Told before the invoice

Credits running low, or spend past the plan — the banner says which, and it is dismissible rather than modal.

BillingAlerts
EstiWright — Risk
2 critical risksMargin below floor on 3 systems · Review in Commercial →

Risk surfaces on the bid, not in a report

Critical risks and warnings appear on the project itself, with a direct route into the commercial view.

RiskAlerts

AI routing & spend

Route to cloud or local models — with metered, capped spend.

EstiWright — AI & Models · llm_mode
cloud routingon-prem edition — zero egress

Flip to the on-prem edition

On the on-prem edition, one switch moves every AI call in-network — no prompt, document or drawing leaves your own infrastructure.

SovereigntyOn-prem
EstiWright — Routing
TaskModel
extract_requirementslocal · cheap-fast
draft_compliancecloud · premium-reasoning
draft_rfilocal · cheap-fast
translatelocal · cheap-fast

Route each task differently

Send extraction to a local model and only the hardest reasoning to the cloud — per task, not all-or-nothing.

RoutingModels
EstiWright — Settings · API keys
provider: openai
source: environment
stored_in_database: false

Your keys stay out of the database

Provider keys are read from your environment or secret store and never written to the application database.

SecurityKeys
EstiWright — Credits / day
Mon 4,820
Tue 6,100
Wed 3,950
Thu 7,240
Fri 5,380

Every call is metered

Credits consumed against the included pool, per day, with the cycle end in plain sight.

MeteringSpend
EstiWright — AI budgets
ELV · monthly okwarn
MEP · monthly warnexceeded — blocked
ICT · monthly okok

402 · ai_budget_exceeded

Warn, then actually stop

A soft budget warns. A hard budget refuses the call and returns a 402 — spend fails loud instead of arriving by invoice.

BudgetsGovernance
EstiWright — Actual cloud spend
ELV $128
MEP $96
ICT $61
Security $34

Whose spend is it

Actual cloud cost broken down by department, model and action — so AI cost lands on the budget that caused it.

SpendDepartments
EstiWright — Hand it to finance
ai-usage.xlsx

Hand it to finance

The whole usage and cost breakdown exports to Excel, so AI spend reconciles like every other line item.

ExportFinance
EstiWright — Embedding model
local · bge-smalllocal · bge-basecloud · text-embedding-3

Choose the embedding model too

Retrieval quality is a setting, not a black box — and it can stay local along with everything else.

ModelsRetrieval
EstiWright — Local model
llama-3.1-8bqwen2.5-14bmistral-nemophi-4

Run the model you're allowed to run

Point EstiWright at the local model your security team approved. On-prem mode uses it for every task.

On-premModels
EstiWright — Params
KeyDefaultYours
temperature0.20.1
max_tokens40964096
top_p1.01.0

Temperature is yours to set

Generation parameters are explicit and per-tenant, with sane defaults — extraction should not be creative.

ModelsConfig
EstiWright — AI commentary
offon

Commentary you can switch off

The advisory layer explains its reasoning where it helps — and it is a setting, so it can simply be turned off.

AIConfig

Access & billing

Roles, seats, plans and overage control.

EstiWright — Seats you can see
5seats paid
4seats used
1available

Seats you can see

Paid seats versus seats used, so nobody discovers the cap halfway through a submission week.

SeatsBilling
EstiWright — Cap the overage
150,000included
48,500consumed
20,000overage cap

Cap the overage

Set a monthly ceiling in credits. Past it, the platform stops rather than quietly billing you.

OverageBilling
EstiWright — Plan & billing
PlanPer seatCreditsOverage
Starter$295,000hard cap
Pro$9920,000$0.0030 / credit
Agency$17945,000$0.0025 / credit

Three plans, real numbers

Starter, Pro and Agency — each with its own credit pool, overage rate and white-label depth.

PlansPricing
EstiWright — What you're on, and what's left
Agency · $179/seatplan
150,000included credits
48,500consumed
23 dperiod ends in

What you're on, and what's left

Plan, seats, credit pool, consumption and period end in one summary — no invoice archaeology.

BillingPlans
EstiWright — Checkout
Pro → Agency pendingactive
credits / cycle 20,00045,000
white-label litefull

Upgrade without an email thread

Move plan or add seats through checkout; the subscription is stamped with your tenant so entitlement follows automatically.

BillingCheckout
EstiWright — Support SLA
First response 4hBusiness hours GSTEscalation path

Set the response you expect

Support SLA is configured per tenant, so the target is explicit rather than folded into a contract nobody re-reads.

SupportSLA
EstiWright — Refer & earn
code: DEMO-4K2P
referred: 3
credited: $474

Refer and earn

Each tenant gets a referral code, tracked against sign-ups — growth that doesn't need a spreadsheet.

ReferralsGrowth

Isolation & audit

What the database enforces, and what you can take with you.

EstiWright — PostgreSQL
ALTER TABLE requirements ENABLE ROW LEVEL SECURITY;
ALTER TABLE requirements FORCE ROW LEVEL SECURITY;

The database refuses cross-tenant reads

Row-Level Security is FORCED on every tenant table — the rule binds even the table owner, not just application code.

RLSPostgreSQL
EstiWright — Database role
app_rw · BYPASSRLS ?false
app_rw · table owner ?false
cross-tenant SELECT ?0 rows

The app can't opt out

EstiWright connects as a non-owner role with no BYPASSRLS. Even a bug in application code cannot return another tenant's rows.

RLSLeast privilege
EstiWright — Every request
BEGIN;
SELECT tenant_session('org_3366ddeb…');
-- queries now scoped to this org only
COMMIT;

Tenant pinned per transaction

The active tenant is set inside the transaction, so a pooled connection can never leak one tenant's scope into another's request.

IsolationMulti-tenant
EstiWright — Service API Keys
ew_live_9f3c… (shown once) active
stored as plaintext?sha256 hash
ew_live_1a77… activerevoked

Integration keys shown once

Mint a service key and you see the plaintext exactly once — only a SHA-256 hash is stored. Revocation is immediate.

KeysSecurity
EstiWright — Export the whole workspace
workspace-export.json
approvals-register.xlsx
ai-usage.xlsx

Export the whole workspace

Projects, requirements, approvals and the audit trail export as one file. No lock-in, and no support ticket to get your data.

ExportPortability

Jobs, limits & failure

Long work runs in the background; limits fail loud, not silently.

EstiWright — Jobs
KindStatus
extractdone
draft-compliancerunning
draft-rfiqueued
proposalqueued

Long work runs on a queue

Extraction, compliance, RFI and proposal generation are queued jobs with their own worker — not a request that times out.

JobsArchitecture
EstiWright — 402 Payment Required
hard_cap
subscription_inactive
overage
ai_budget_exceeded

Limits fail loud

Hard cap, inactive subscription, overage ceiling or an AI budget — each refuses with a named code, never a silent bill.

QuotasGovernance
EstiWright — Seats
4 of 5 used okok
6th user invited blocked

The seat cap is real

Past your paid seats the platform refuses rather than quietly adding another line to next month's invoice.

SeatsBilling
EstiWright — Overage report
TenantOverCost
Demo Contracting1,240 cr$3.72
Acme Estimating0 cr$0.00
Bravo Estimating22 cr$0.07

Every credit over the line, itemised

The overage report shows exactly which tenants went past their pool and what it cost — reconciled, not estimated.

OverageFinance

Platform & partners

Multi-tenant administration, white-label and the reseller console.

EstiWright — Licences
TenantPlanSeatsStatus
Demo Contractingagency5active
Acme Estimatingpro12active
Bravo Estimatingstarter3active

Every tenant on one console

Create, list and inspect licences across the whole platform — plan, seats, status and billing in one place.

AdminMulti-tenant
EstiWright — Modules
Pipeline offon
Analytics offon
Audit onoff

Turn modules on per tenant

Every module can be switched per tenant, so a customer sees the surface they bought and nothing they didn't.

ModulesAdmin
EstiWright — Module gating
GroupStarterProAgency
Bid
Insight
Governance

The plan decides the surface

Modules are gated by plan — Starter, Pro or Agency — while Overview, Settings and Inbox are never gateable.

PlansModules
EstiWright — White-label
TierDepth
Starternone
Prolite
Agencyfull

Ship it as your own

Name, logo, primary colour and even the companion's name are per-tenant. Agency tier goes fully white-label.

White-labelBrand
EstiWright — Margin by tenant
Demo 82%
Acme 74%
Bravo 61%

Know your own unit economics

What each tenant pays against what their AI actually costs — margin per account, not a guess at the end of the quarter.

MarginFinance
EstiWright — The platform at a glance
3tenants
20active seats
48,500credits this cycle
1open support

The platform at a glance

Tenants, active seats, credits burned and open support — the numbers you actually run the business on.

MetricsAdmin
EstiWright — Child licences
Child tenantPlanBrand
Gulf ELV Partnersprocustom
Najm Contractingstarterinherited

Partners run their own book

A reseller creates and brands child licences under their own account, without ever seeing another partner's tenants.

ResellerPartners

Want it run against your own tender?

Send us a live RFP and we'll walk your team through extraction, compliance and a priced BOQ on your own data.