Blog · Case notes

How we built offline-ready energy reporting for Tesco Fanz

Joshua John4 min read
Power lines at sunset, illustrating energy reporting for retail stores

A local-first mobile app, background sync and role-based access turned a 30-minute spreadsheet routine into a 5-minute task for Tesco store teams.

The job to be done

Tesco (UK) needed a better way for store managers and facilities teams to monitor, log and report energy consumption across its retail locations. Those figures feed directly into sustainability reporting, so they have to be accurate and complete.

Until then, reporting ran on manual spreadsheets. Each report took around 30 minutes, and regional managers had no live view of what was happening across their stores. The goal was simple to state: make reporting fast enough to fit into a working day, without losing a single reading.

Speed mattered for a practical reason. If reporting is slow, it gets postponed, and postponed reports are where gaps appear. A five-minute task can be done between other jobs; a thirty-minute task waits for a quiet moment that may never come.

The real constraint was the signal, not the screen

It would have been easy to treat this as a forms problem: design a clean screen, post the data to a server, done. But energy readings are taken inside the stores themselves, and mobile signal varies from one location to the next — in back rooms, plant areas and basements especially.

An app that only works online loses data exactly where it is being collected. Across hundreds of store locations, that is not an edge case; it is a daily certainty. So we started from the hardest constraint and designed everything else around it.

  • Readings had to be captured with weak or no signal
  • Nothing could be lost between capture and the central database
  • Staff should never have to remember to "upload" or retry
  • Only authorised people should be able to submit reports

Local-first by default

We designed the app local-first. Every entry is saved on the device the moment it is made, so the reading exists before any network is involved. A dropped connection can delay a sync, but it can never lose a reading.

This changes how the app feels to use. Staff get the same fast, predictable response in a back room with no signal as they do on the shop floor, because the interface never waits for the network to confirm a save.

Sync that happens in the background

Firebase handles background sync. Whenever a connection is available, saved entries are sent automatically — no upload button, no retry prompts, no re-entering data. From the user’s point of view, the report is simply done.

Background sync also protects data quality. Manual upload steps are where readings go missing: someone forgets, closes the app, or assumes it went through. Taking that step away removes a whole category of error.

It also keeps the experience honest: users see that their entry is saved straight away, and the sync quietly catches up whenever the connection allows.

Trustworthy data through role-based access

Because the reports support Tesco’s sustainability targets, data integrity mattered as much as speed. We layered role-based access controls on top of the data model so that only authorised personnel can submit and manage reports.

Matching access to responsibility keeps the data trustworthy without adding friction for the people who do need to report. On the other side of the flow, real-time dashboards give regional managers visibility across every location as entries arrive.

  • Mobile energy logging that replaces manual spreadsheets
  • Offline-first data entry with local storage
  • Automatic background sync through Firebase
  • Role-based access for reporting
  • Real-time dashboards for regional managers

We built it in Flutter, which gave us one codebase and a consistent, fast interface for the teams using it every day. The project ran over six months and launched in 2024.

What changed for the stores

The app was deployed across Tesco locations. Store managers moved from a 30-minute manual process to a 5-minute mobile workflow, cutting energy report submission time by over 60%.

Real-time dashboards gave regional managers a view across every location, directly supporting Tesco’s sustainability reporting targets. Just as importantly, reporting stopped being a chore saved for the end of a shift and became a quick habit during the day.

Faster reporting also means fresher data. When submitting a report takes minutes rather than half an hour, it is more likely to be done on time, which makes the dashboards more useful to the managers who rely on them.

What you can take from this

If your teams collect data on the move — in stores, sites or warehouses — the same principles apply. Save locally first, sync automatically, and match permissions to responsibility. Get those three right and the interface can stay simple.

It is also a reminder to measure the right thing. The headline figure here is time per report, but the underlying win is reliability: readings captured where they happen, synced without effort and visible to the people who need them.

If you have a field process still running on spreadsheets, we would be glad to talk it through. Tell us how your teams work today and we will show you what an offline-ready app could look like — or try the project estimator at /pricing/ for a first idea of timeline.

Key takeaways
  • Design for the worst connection your users will face, not the best
  • Local-first saving means a dropped signal delays a sync but never loses data
  • Background sync removes the manual upload step where errors creep in
  • Role-based access keeps reporting data trustworthy without slowing users down
Let's talk

Have an idea? Let's build it!

Drop us a line — we look forward to meeting you. We build websites, mobile apps and digital marketing campaigns for clients in India and worldwide, from our base in Coimbatore.

Contact JoshuaFounder
By sending this form, you agree that Prognesoft may contact you about this enquiry by email, phone or WhatsApp. Privacy policy