From inspection to proposal
Vision Prototype · 1.0.0
{{headerTitle}}
{{emptyInspectionTitle}}

{{emptyInspectionMessage}}

{{p.name}} {{tr(inspectionStatusKey(p))}} {{tr('modifiedPrefix')}} {{dateTime(p.updatedAt)}} {{money(projectTotals(p).total)}} {{tr('estimate')}}
{{tr(inspectionStatusKey(project))}} {{tr('modifiedPrefix')}} {{dateTime(project.updatedAt)}}
{{tr('hours')}}{{number(projectTotals(project).hours)}}
{{tr('total')}}{{money(projectTotals(project).total)}}
{{tr('photos')}}{{projectPhotoTotal}}
{{b.name}}{{b.levels.length+b.elevations.length}} {{tr('areas')}}
{{entityLabel(l, 'level')}} {{money(levelTotals(l).total)}} {{l.rooms.length}} {{tr('spaces')}}{{number(levelTotals(l).hours)}} {{tr('hours')}}
{{r.name}}{{activeWorks(r)}} {{tr('activities')}} · {{photoCount('room',r.id)}} {{tr('photos')}} {{money(roomTotals(r).total)}}{{number(roomTotals(r).hours)}} {{tr('hours')}}
{{entityLabel(e, 'elevation')}}{{e.details.length}} {{tr('details')}} {{money(elevationTotals(e).total)}}{{number(elevationTotals(e).hours)}} {{tr('hours')}}
{{detailLabel(d)}}{{d.quantity}} × {{number(d.hoursPerUnit)}} {{tr('hours')}} · {{photoCount('detail',elevation.id+':'+d.id)}} {{tr('photos')}} {{money(detailTotals(d).total)}}{{number(detailTotals(d).hours)}} {{tr('hours')}}
{{scopeLabel(s)}}{{(s.items||[]).length}} {{tr('selectedSteps')}} {{s.status}}

{{tr('proposalOverview')}}

{{tr('proposalReady')}} {{money(projectTotals(project).total)}} {{tr('estimatedProposalValue')}}
{{number(projectTotals(project).hours)}}{{tr('hours')}}
{{checkedCount('interior')+checkedCount('exterior')}}{{tr('selectedSteps')}}
{{projectPhotoTotal}}{{tr('photos')}}

{{tr('projectOverview')}}

{{tr('buildings')}}{{inspectionPackageStats.buildings}}
{{tr('areas')}}{{inspectionPackageStats.areas}}
{{tr('spaces')}}{{inspectionPackageStats.rooms}}
{{tr('photos')}}{{projectPhotoTotal}}

{{tr('costBreakdown')}}

{{tr('interior')}}{{money(projectInterior.total)}}
{{proposalInteriorPercent}}%
{{tr('exterior')}}{{money(projectExterior.total)}}
{{proposalExteriorPercent}}%
{{tr('fieldInspection')}}
{{project.workflow?.officeReviewed?'✓':'2'}}{{tr('officeReview')}}
{{project.workflow?.aiPrepared?'✓':'3'}}{{tr('prepareProposal')}}
{{project.workflow?.aiPrepared?'✓':'4'}}{{tr('customerProposal')}}
{{tr('nextStep')}}

{{tr('officeReview')}}

{{tr('officeReviewIntro')}}

{{tr('buildings')}}{{inspectionPackageStats.buildings}}
{{tr('selectedStepsTitle')}}{{inspectionPackageStats.tasks}}
{{tr('photos')}}{{projectPhotoTotal}}
{{tr('estimatedValue')}}{{money(projectTotals(project).total)}}
{{tr('officeReviewComplete')}}

{{tr('readyForProposal')}}

{{tr('aiIntro')}}

{{tr('inspectionPackage')}} {{inspectionPackageStats.dataPoints}} {{tr('structuredDataPoints')}} {{inspectionPackageStats.areas}} {{tr('areas')}} {{inspectionPackageStats.tasks}} {{tr('selectedSteps')}} {{projectPhotoTotal}} {{tr('photos')}}
{{tr('poweredByAI')}}

{{sheet.title}}

Badilla Painters
BP Inspections

{{tr('aboutText')}}

{{tr('installedVersion')}}{{version}}
{{tr('construction')}}
{{tr('construction')}}
{{tr('allOptionsAdded')}}
{{tr('noWorkValuesAdded')}}
{{workLabel(key, w)}}
{{money(w.hours*w.rate)}}
{{tr('total')}}{{money(detailTotals(sheet.data).total)}}
{{tr('noTasksAdded')}}
{{taskLabel(i)}}

{{tr('officeReviewText')}}

{{officeSimulation.step>index?'✓':index+1}} {{tr(key)}}

{{tr('aiText')}}

{{tr('inspectionPackage')}} {{inspectionPackageStats.dataPoints}} {{tr('structuredDataPoints')}}
{{aiSimulation.step>index?'✓':index+1}} {{tr(key)}}
{{tr('poweredByAI')}}

{{tr('exportProposal')}}

{{tr('proposalReadyText')}}

{{installDevice==='ios'?tr('installIosTitle'):tr('installApp')}}

BP Inspections
{{tr('installApp')}}{{tr('installBenefit')}}
{{installDevice==='ios'?tr('installIosInstruction'):tr('installBrowserInstruction')}}
{{toast.title}}{{toast.message}}