{{ screenTitle }}

{{ screenSub }}
{{ userInitials }}
{{ userName }}
{{ ic.alert }}Demonstration only · all names, customers and figures are fictional.
Needs my attention
{{ panelKicker }}
{{ a.sevLabel }}{{ a.label }} · {{ a.ageLabel }}
{{ a.title }}
{{ a.stageLabel }}
{{ a.nudgedLabel }}
Burn-up · PO-2026-018 · Nova Retail
Sites completed per week vs plan
{{ lastActLabel }} · gap {{ gapSites }}
03106209301,240 Today · 18-Sep 01-Jun20-Dec
Actual signed-offPlan
Cost breakdown · active POs
Actual vs budget by category
{{ b.label }}
{{ b.a }} / {{ b.b }} · {{ b.pctLabel }}
Filled bar = actual spend; track = budget. Support at 172% of budget is the outlier — driven by UrbanMart NVR repeat visits.
Top over-budget POs
Cost to date vs expected at this stage of billing
Synced from Tally · 12 min ago
POCustomerProgramActual costExpected at stageVariance
{{ p.id }}{{ p.customer }}{{ p.title }}{{ p.actual }}{{ p.expected }}{{ p.varLabel }} ({{ p.varPct }}){{ ic.chevronRight }}
Open pipeline {{ pipelineTotal }}Weighted {{ weighted }}Open deals {{ openDeals }}Overdue follow-ups {{ overdueFollowups }}
{{ ic.kanban }}
No deals match “{{ crmQ }}”
Try a customer name like Nova or UrbanMart, or clear the filter to see all 9 deals.
{{ col.stage }}{{ col.count }} · {{ col.total }}
All purchase orders · {{ poCount }}
Where every rollout starts
POCustomerProgramValueSitesWindowStatus
{{ p.id }}{{ p.customer }}{{ p.title }}{{ p.valueF }}{{ p.sitesF }}{{ p.window }}{{ p.status }}{{ ic.chevronRight }}
New purchase order
Six fields, then import the site list
Site count comes from the Excel import in the next step.
{{ ic.checkCircle }}{{ createdLabel }} saved · no sites yet
{{ P.status }}
{{ P.customer.name }} · {{ P.customer.stores }} stores

{{ P.id }} · {{ P.title }}

{{ P.scope }}
{{ P.valueF }}
Customer PO no. {{ P.poNo }}
PO received
{{ P.recF }}
Program window
{{ P.startF }} → {{ P.endF }}
Sites · waves
{{ P.sitesF }} sites · {{ P.waves }} waves
Customer contact
{{ P.customer.contact }} · {{ P.customer.title }}
Payment terms
{{ P.terms }}
{{ P.done }} of {{ P.sitesF }} signed-off · {{ P.pct }} · {{ P.blocked }} blocked
Finance
Synced from Tally · 12 min ago
{{ r.k }}{{ r.v }}
Invoiced {{ P.invPct }}Received {{ P.recPct }}Budget used {{ P.costPct }}
SiteStoreCityRegionWaveStatusEngineerPlanned
{{ s.id }}{{ s.name }}{{ s.city }}{{ s.region }}W{{ s.wave }}{{ s.status }}{{ s.engineer }}{{ s.plannedF }}{{ ic.chevronRight }}
First 8 of {{ P.sitesF }} sites · open the full board
Wave {{ w.n }} · from {{ w.start }}
{{ w.done }} / {{ w.sites }} sites
{{ w.regions }} · {{ w.blocked }} blocked
Per-category budget vs actual
{{ b.label }}
{{ b.a }} / {{ b.b }} · {{ b.pct }}
Full drill-down under Cost Control. Invoices and receipts are Tally's numbers; costs are entered in Aerotech Ops and reconciled nightly.
DocumentFileSize
{{ d.k }}{{ d.f }}{{ d.s }}{{ ic.download }}
Import preview · nova_sites_wave3_add.xlsx
6 rows read · {{ importOk }} valid · {{ importWarn }} warning · {{ importErr }} errors
Store #Site nameCityRegionWaveValidationMessage
{{ r.no }}{{ r.name }}{{ r.city }}{{ r.region }}{{ r.wave }}{{ r.tag }}{{ r.msg }}
Columns mapped: Store # → storeNo · Site name → name · City → city (master) · Region → region · Wave → wave. Rows with errors are skipped; warnings import with a review flag.
Wave timeline · {{ P.id }} · {{ P.fin.customer }}
Planned against actual, six waves
Jun 2026 → Dec 2026
{{ m }}
Done
{{ w.wave }}{{ w.region }} · {{ w.sites }} sites
{{ w.doneLabel }}
PlannedActualToday
{{ ic.search }}
{{ countLabel }}
{{ selCount }} selected
{{ pageLabel }}
SiteStoreCityRegionWaveStatusEngineerPlannedActualCost
{{ s.id }}{{ s.name }}{{ s.city }}{{ s.region }}W{{ s.wave }}{{ s.status }}
{{ s.reason }}
{{ s.initials }}{{ s.engineer }}{{ s.plannedF }}{{ s.actualF }}{{ s.costF }}{{ ic.chevronRight }}
{{ ic.filter }}
No sites match these filters
{{ hero.customer }} · {{ hero.poId }} · Wave {{ hero.wave }} · Template: SCO kiosk install v2

{{ hero.id }} · Nova Retail {{ hero.storeNo }} · {{ hero.name }}

{{ hero.address }} · Store manager {{ hero.manager }} · {{ hero.managerPhone }}
{{ hero.status }}
Engineer
{{ hero.engineer }}
Planned
{{ hero.plannedF }} · 09:30 AM IST
GPS check-in
{{ ic.gps }} 10:12 AM IST · 40 m
Kiosk serial
{{ hero.serial }} · UPS-88213
{{ tDone }} of 9 tasks · {{ woPct }}
Task checklist · dependencies enforced
Click a task to toggle · locked tasks explain why
Photos · 3 of 6 captured · GPS + time stamped
{{ ic.image }}{{ p.k }}
Cost entries · this site
{{ c.k }}{{ c.a }} / {{ c.b }}
Total vs site budget₹40,050 / ₹31,500 · +₹8,550
{{ ic.alert }} Extra conduit ₹6,400 awaiting approval APR-317 · flagged in Commercials → Exceptions
Visit log · 17-Sep-2026
{{ l.t }}{{ l.e }}
Unassigned sites · {{ unassignedCount }}
Pick a site, then give it to an engineer
Every site in this wave has an engineer.
{{ ic.user }}{{ assignHint }}
Engineers · week of 14–20 Sep
Load for the week, and one click to assign
{{ e.name }}{{ e.region }} · {{ e.base }}
{{ e.loadLabel }}
Assigning a site sends it to that engineer's phone and to the 07:00 digest. No drag and drop, no calendar to keep in sync.
{{ ic.wifiOff }} Offline — {{ queueCount }} updates queued
{{ icL.checkCircle }} Back online — {{ syncedCount }} updates synced at {{ syncedAt }}
{{ mobileTitle }}
Fri 18-Sep-2026 · Rahul Deshmukh
Queued on this phone
{{ q.what }}{{ q.at }}
{{ ic.bell }} Reminders for you · {{ engAlertCount }}
{{ a.what }}
{{ a.ref }} · {{ a.lateLabel }}
Today's sites · 3 · Pune
{{ ic.truck }} Material for 02:00 PM site dispatched from Pune hub · UPS-88219, SCO-482203
Captured on this job GPS check-in · {{ gpsLabel }} Photos · {{ photoCount }} of 6 steps Serials installed · SCO-482119, UPS-88219
Checklist · {{ tDone }} of 9 · {{ woPct }}
Customer sign-off
{{ signLabel }}
Sign-off starts the billing clock: Accounts is reminded if this site is not invoiced within 5 days.
Field engineer view · notes

Built for one hand, a noisy store and a patchy 4G link

Today's sites come from Schedule & Assign — the engineer sees only the stores assigned to them, ordered by time.

The job captures GPS check-in time, a photo per step, the serial numbers installed, a delay reason when the site is late, and the customer's signature or a photo of the signed job sheet.

Offline is real: tap the badge to go offline. Checklist ticks, photos and cost entries queue on the phone; when the link returns the app syncs and confirms what went up.

Sign-off is the money trigger. The moment it lands, the site enters the unbilled list and Accounts starts getting reminded.

44 px+ hit targetsOffline queueGPS check-inSignature capture
Read from Tally · synced 12 min ago · nothing is written back
Cost vs budget · per PO
Where the money went, and what it left behind
POCustomer · programPO valueBudgetActualConsumedSupport costSupport ÷ materialMargin
{{ p.id }}{{ p.customer }}
{{ p.title }}
{{ p.value }}{{ p.budget }}{{ p.actual }}
{{ p.pct }}
{{ p.support }} {{ p.supPct }} of budget{{ p.supRatio }}{{ p.margin }}
{{ CP.id }} · {{ CP.fin.customer }}
Budget vs actual by category
Budget
{{ CP.budgetF }}
Actual
{{ CP.actualF }} {{ CP.pct }}
Margin
{{ CP.margin }}
{{ b.label }}
{{ b.a }} / {{ b.b }} · {{ b.pct }}
Support cost vs material cost{{ CP.supF }} ÷ {{ CP.matF }} = {{ CP.supRatio }} (threshold 5%)
Per site · {{ CP.id }} · highest cost first
SiteMaterialLabourTravelSubconSupportTotalBudgetVar
{{ s.id }}
{{ s.name }}
{{ s.mat }}{{ s.lab }}{{ s.trv }}{{ s.sub }}{{ s.sup }}{{ s.total }}{{ s.budgetF }}{{ s.varF }}
Signed off, not yet invoiced in Tally
{{ unbilledTotalF }} of completed work not yet billed
{{ unbilledCount }} groups across {{ unbilledPOs }} POs · oldest sign-off {{ unbilledOldest }} days ago · payment terms run 60 days from the invoice date
SitesCustomerPOSigned offDays waitingValueOwner
{{ u.ref }}{{ u.customer }}{{ u.poId }}{{ u.signedF }}{{ u.days }}{{ u.amountF }}{{ u.owner }}
Sign-off is what starts this clock. The reminder rule “site signed off but not invoiced more than 5 days” chases Accounts every morning until the invoice appears in Tally.
Exceptions · {{ leakCatLabel }}
Each row traces back to a material movement, an expense claim or an advance
CheckRefPerson / partySite · PODetailDateAmountOwner
{{ r.cat }}{{ r.ref }}{{ r.who }}{{ r.siteName }}
{{ r.poId }}
{{ r.detail }}{{ r.dateF }}{{ r.amountF }}{{ r.owner }}Resolved
Audit trail · money-related edits
When (IST)WhoWhatFromToRef
{{ a.atF }}{{ a.who }}{{ a.what }}{{ a.from }}{{ a.to }}{{ a.ref }}
Reconciliation per PO
Issued · installed · returned · unaccounted
POCustomerIssuedInstalledReturnedUnaccountedValue at risk
{{ r.poId }}{{ r.customer }}{{ r.issued }}{{ r.installed }}{{ r.returned }}{{ r.unaccounted }}{{ r.valueF }}
Material movements · serial level
RefDateItem · serialsIssued toIssInstRetState
{{ m.id }}{{ m.dateF }}{{ m.item }}
{{ m.serials }}
{{ m.to }}{{ m.issued }}{{ m.installed }}{{ m.returned }}{{ m.state }}
New movement
Issue, install or return
Anything issued and neither installed nor returned lands in Exceptions the same night.
Expense claims
{{ expTotal }} submitted this month
Claims with no site visit that day are flagged automatically
RefEngineerDateSiteTypeAmountBillStatus
{{ e.id }}{{ e.who }}{{ e.dateF }}{{ e.siteId }}{{ e.type }}{{ e.amountF }}{{ e.billLabel }}{{ e.status }}
{{ e.flag }}
New claim
Travel, stay or conveyance
Cash advances
{{ advOpenTotal }} outstanding with engineers
Reminder fires at 15 days
RefEngineerPurposeGivenAmountSettledBalanceAge
{{ a.id }}{{ a.who }}{{ a.purpose }}{{ a.dateF }}{{ a.amountF }}{{ a.settledF }}{{ a.balanceF }}{{ a.ageLabel }}
New advance
Cash given to an engineer
Settlement is logged against bills; the balance ages from the date given.
{{ remTabLabel }} · {{ remRoleLabel }}
One nudge sends an email and a WhatsApp message
WhatSite · POWho it is forLate
{{ r.what }}
Rule: {{ r.rule }}
{{ r.ref }}
{{ r.amountF }}
{{ r.forWho }}
{{ r.role }}
{{ r.lateLabel }}
{{ r.actedLabel }}
Nothing in this list. The 07:00 digest will still go out tomorrow.
{{ r.text }}→ {{ r.to }} · {{ r.weekLabel }} this week
Rules are edited in Admin → Reminder rules. Every role also gets a 07:00 digest by email.
SLA: P1 4h · P2 24h · P3 72h · timers in IST
{{ ic.refresh }} Loading tickets from the support queue…
TicketIssueSite · POOriginal installCoverPrioritySLAAssigneeStatus
{{ t.id }}{{ t.title }}
{{ ic.repeat }} Repeat visit · same fault
{{ t.siteId }} · {{ t.siteName }}
{{ t.customer }} · {{ t.poId }}
{{ t.installDate }}{{ t.cover }}{{ t.priority }}{{ ic.clock }} {{ t.sla }}{{ t.assignee }}{{ t.status }}{{ ic.chevronRight }}
{{ ic.checkCircle }}
Nothing here
No tickets match this filter.
Report builder
{{ ic.squareCheck }} Sites completed / pending / blocked with reasons{{ ic.squareCheck }} Installation photos (4 per page){{ ic.squareCheck }} Wave-wise progress{{ ic.square }} Cost & margin (internal only)
Recipients: {{ RP.customer.contact }} ({{ RP.customer.email }}) · cc Tarun Kapoor
{{ ic.report }}
No report generated yet
Pick the customer, PO and period on the left. The preview appears here, then export PDF/Excel or email it in one click.
{{ ic.refresh }}
Compiling 1,240 sites and 3,412 photos…
Usually under 10 seconds.
Generated {{ reportAt }}
Rollout status report · week 16 · 12-Sep to 18-Sep-2026

{{ RP.customer.name }} · {{ RP.id }}

{{ RP.title }} · {{ RP.sitesF }} stores · {{ RP.waves }} waves
Prepared by Aerotech Systems
for {{ RP.customer.contact }}, {{ RP.customer.title }}
{{ r.k }}
{{ r.v }}

Blocked sites and reasons

SiteStoreCityWavePlannedReason
{{ b.id }}{{ b.name }}{{ b.city }}W{{ b.wave }}{{ b.plannedF }}{{ b.reason }}

Installation photos · sample

{{ ic.image }}{{ p.k }}
Figures as of 18-Sep-2026 10:42 AM IST · Site status per signed work orders · Photos GPS + time stamped · Page 1 of 4
Pending {{ pendingAppr }}Value awaiting decision {{ apprTotal }}Levels: L1 Service Manager · L2 Owner (above ₹1 L or any new PO) · Accounts co-signs subcontractor bills
{{ a.id }}
{{ a.type }}
{{ a.stateNow }}
{{ a.title }}
{{ a.note }}
Raised by {{ a.by }} · {{ a.atF }} · chain: {{ a.chainLabel }}
{{ a.amountF }}
{{ a.level }}
Reminder rules · plain English
What the system chases, and who it chases
{{ rulesOnLabel }}
OnRuleGoes toFiresThis week
{{ r.text }}money finder {{ r.to }}{{ r.when }}{{ r.weekLabel }}
Reminders go out by email and WhatsApp. Nothing here writes to Tally.
Users & roles · {{ userCount }} of 15 seats
Five roles, one login each
UserRoleEmailLast activeStatus
{{ u.initials }}{{ u.name }}{{ u.role }}{{ u.email }}{{ u.last }}{{ u.status }}
Task templates
Standard work-order checklists
TemplateTasksUsed byVersion
{{ t.k }}{{ t.n }}{{ t.po }}{{ t.v }}{{ ic.pen }}
Daily digest · 07:00 IST
The email each role wakes up to
To: {{ digest.to }} {{ digest.subject }}
Good morning {{ digest.name }} — here is what needs you today.
{{ l.a }}{{ l.b }}
Open Aerotech OpsReply STOP to pause reminders for a day
Sends this exact email to {{ digest.to }}
Excel is still your safety net
Nothing is trapped in the app
Daily Excel export → Google Drive06:00 AM IST · 6 files · OKToday
Last restore test07-Sep-2026 · passed · staging restored in 11 min
Drive folderDrive / AerotechOps / exports / 2026-09-18
Nightly backupSizeDurationStatus
{{ b.atF }}{{ b.size }}{{ b.dur }}{{ b.status }}
Tally connection
Tally Prime 4.1 · ODBC · port 9000
Connected
Last sync
18-Sep-2026 · 10:30 AM IST · 14 vouchers
Direction
Tally → Aerotech Ops · read only
Invoices and receipts are read from Tally. Aerotech Ops never writes back into Tally.
Milestone rail · where the programme is now
Filled marks are met · hollow are planned · Wave 3 is at risk
{{ m.name }} {{ m.atF }} {{ m.stateLabel }}
Role ↓ · stage →
{{ l.role }}
{{ a.a }} ·
Tinted columns are the stages running today. Your role ({{ lcRoleLabel }}) is marked in the left column — switch roles to read the lane from another seat. Click a stage header for its detail and gate.
Project plan · PO-2026-018 · May 2026 → Feb 2027
Bar = planned window · fill = progress · dark bar = overdue
{{ m.label }}
{{ t.groupLabel }}{{ t.name }}{{ t.owner }} · {{ t.deps }}
{{ t.pctLabel }}
Where is it now
{{ s.k }}
{{ s.v }}
The vertical accent line on the Gantt is today, {{ today }}. Wave 3 closes 30-Sep and is 78% done, which is what puts the Wave 3 milestone at risk.
Resource allocation by wave
Engineers needed vs available · 1.6 sites per engineer-day
WaveWindowRegionSitesSites leftEngineers neededAvailableCoverageStatus
{{ r.wave }}{{ r.window }}{{ r.region }}{{ r.sites }}{{ r.left }}{{ r.needF }}{{ r.have }}
{{ r.gapLabel }}
{{ r.r }} · {{ r.n }} engineers{{ r.util }}
{{ r.pending }} sites pending
{{ r.gapLabel }}
Day-to-day assignment lives on Schedule & Assign; this Phase 2 view is the wave-level plan behind it.
{{ ic.search }}esc
No matches for “{{ q }}”. Try a site code like NR-0417, a PO number, or a customer.
Guided tour · {{ tourStepLabel }}

{{ tourTitle }}

{{ tourBody }}

{{ ic.checkCircle }}{{ toastMsg }}