Daily Audit Free edition

Set this up once.
Then it is yours.

Forty minutes, a Google account, and no money. At the end you will have the full audit system running on your own computer, saving into your own Google Sheet, which nobody else can read — including us.

Read this first. The files you downloaded contain no link to any server and no password. That is deliberate: an audit file that arrives pre-connected to a stranger's spreadsheet is a file you should not trust. You will create your own link in Step 3, and it will be yours alone.

What you were given

The files in this folder

FileWhat it isWho opens it
Daily-Audit-Desktop.htmlThe full system — enter figures, tick the 21 compliance rules, raise corrective actions, print the report.Whoever does the audit
Daily-Audit-Mobile.htmlThe same thing, laid out for a phone.Whoever does the audit
Daily-Audit-Viewer-Desktop.htmlRead-only. 24% smaller. Cannot change anything.Owners and managers
Daily-Audit-Viewer-Mobile.htmlRead-only, on a phone.Owners and managers
AppsScript-Entry.gsThe code that lets the app read and write your sheet.You, once, in Step 2
AppsScript-Viewer.gsThe read-only version of that code, for the viewer files.You, once, in Step 6
Sample-data.jsonA made-up month of four outlets, so you can see a filled-in system before you commit.Optional, Step 7

Every one of these is a plain file. There is no installer, no account, and nothing that runs in the background. Copy them to a USB stick and they still work.


Try before you build

Step 0 — Open it right now

Before setting anything up, double-click Daily-Audit-Desktop.html. It opens in your browser and it already works. Type figures, tick rules, print a report.

Everything you type is saved on that computer only, in the browser's own storage. That is a real, usable system for one person on one machine, and if that is all you need, you can stop reading here.

The rest of this guide is about one thing: getting the same data onto a second device. That is what the Google Sheet is for. It is the shared notebook that your desktop and your phone both write into.

Setup

Step 1 — Make an empty Google Sheet

1

Create the spreadsheet

Go to sheets.new while signed in to your Google account. A blank spreadsheet opens. Name it something you will recognise — Daily Audit — Kakkanad, for instance.

Do not add any columns or headings. The script builds every tab it needs in Step 3. An empty sheet is exactly right.

This spreadsheet is your database. It lives in your Google Drive, under your account, and counts against your ordinary 15GB. A year of daily audits for four outlets is roughly 4MB.

Step 2 — Paste in the code

2

Open the script editor

In your new spreadsheet, click ExtensionsApps Script. A new tab opens with a code editor and a small file called Code.gs containing an empty myFunction.

Delete everything in that editor. Select it all (Ctrl+A, or Cmd+A on a Mac) and press delete.

Now open AppsScript-Entry.gs from your download folder in any text editor — Notepad on Windows, TextEdit on a Mac — select all of it, copy, and paste it into the empty script editor.

Press Ctrl+S to save. Give the project any name you like.

Step 3 — Run it once, and write down your token

3

Run setup

At the top of the script editor there is a dropdown listing the functions. Choose setup, then click Run.

Google will ask for permission the first time. This is normal and it is asking on your behalf — the script is in your account, editing your spreadsheet. Click Review permissions, choose your account, and if you see "Google hasn't verified this app", click Advanced then Go to (your project name) (unsafe).

Why that warning appears. Google shows it for any script that has not been through their paid verification process. It is not a judgement about this code. You are being asked to confirm that you trust a script you just pasted into your own account. You can read every line of it first — it is 620 lines of plain JavaScript, and it only ever touches the spreadsheet it is attached to.

When it finishes, open Execution log at the bottom. You will see:

SETUP COMPLETE

Access token (paste into the HTML Cloud settings):

a1b2c3d4e5f6a7b8c9d0

Copy that token and keep it. It is the password between your HTML file and your sheet. Anyone who has it can read and write your audit data, so treat it like a password: do not put it in a WhatsApp group, and do not email the HTML file to anyone once you have pasted it in.

Lost it? Run showToken to see it again, or resetToken to issue a new one — after which every device has to be updated with the new value.

Step 4 — Publish it as a web address

4

Deploy

Click DeployNew deployment. Click the gear beside Select type and choose Web app. Then set:

FieldSet it toWhy
DescriptionAnythingJust a label for you
Execute asMeThe script uses your access to your own sheet
Who has accessAnyoneRequired — see the note below
"Anyone" sounds alarming. Here is what it actually means. It means anyone who knows the exact web address may send a request to it. It does not mean your spreadsheet is public and it does not mean it can be found by searching. The address is a long random string, and on top of that every single request must carry the token from Step 3 — without it the script refuses and writes nothing. Google offers no setting narrower than this for a web app that a file on your own desktop can reach. If that trade-off is not acceptable to you, use the system offline on one machine and skip the sync entirely; it works perfectly well that way.

Click Deploy, then copy the Web app URL. It ends in /exec and looks like:

https://script.google.com/macros/s/AKfycb…long…string…/exec

You now have the two things you need: the URL and the token.

Step 5 — Tell the app about it

5

Paste both values in

Open Daily-Audit-Desktop.html. Click ⚙ Settings, then the Backup & sync tab.

Under Google Sheet sync fill in:

  • Apps Script Web App URL (ends with /exec) — the URL from Step 4
  • Access token — the token from Step 3

Click Save cloud settings, then Test connection. You want to see a success message. Then set Automatic sync to On and give the machine a name under This device is calledcounter-pc, manager-phone — so the sync log tells you where each change came from.

Now repeat this on the phone: open Daily-Audit-Mobile.html and paste the same two values. Both devices now share one sheet.

If the test fails. Nine times out of ten the URL ends in /dev instead of /exec — go back to DeployManage deployments and copy the web app URL again. If it still fails, set Connection method to Compatibility only; some office networks block the direct method.

Step 6 — The read-only copy for owners optional

6

A file that cannot change anything

Give an owner the full file and they can edit last month's figures — usually by accident. The viewer files exist so that cannot happen.

Back in the script editor, click the + beside Files, add a script file, and paste in AppsScript-Viewer.gs. Near the top you will find:

var SHEET_ID = '';   /* paste your own spreadsheet id here */

Put your spreadsheet's id between those quotes. The id is the long piece in your sheet's own address:

docs.google.com/spreadsheets/d/THIS-LONG-PART-HERE/edit

Save, then DeployNew deploymentWeb app again. Run setup in this file to get its own separate token, and paste that URL and token into the two viewer HTML files the same way as Step 5.

The viewer's token only ever permits reading. Even if it leaks, nobody can alter your audit history with it.

Step 7 — Look at a filled-in month optional

7

Load the sample

In the app: ⚙ SettingsBackup & syncRestore from file, and choose Sample-data.json. It will ask whether to apply the settings layout too — say yes.

You get 28 days across four outlets, one of which (DC) is deliberately a problem site: damage running over threshold, negative stock, and a corrective action that has escalated to critical because it failed four times. It is there so you can see what the dashboard and the action register look like with real pressure in them.

Load this into a fresh copy, not your live one. Restoring merges the sample days into whatever is already on that device. If you have started real data, make a copy of the HTML file and load the sample into that instead.

Being straight with you

What the free edition does not do

These are not crippled features. They are things that genuinely need a server, and the free edition does not have one.

Not included

Photo evidence

You cannot attach photographs to a finding. Images are far too large for a spreadsheet cell, so they need real file storage. Everything else about a finding — the note, the owner, the due date, the escalation — works normally.

Not included

Usernames and passwords

There is no sign-in. Whoever opens the file can use it. Control is by who has the file and the token — which is why the read-only viewer in Step 6 matters.

Not included

Automatic scheduled emails

You can print or export a report any time. Sending one to a list every morning without anybody pressing a button needs something that is awake at 7am. Your desktop is not.

Not included

Several companies under one login

One file can hold several companies, but each needs its own sheet and its own token, and you switch by hand. There is no central place to manage who sees what.

What you do get, in full

Included

All 21 compliance rules, scored daily per outlet

Included

Sales, cash, UPI, credit, void, discount, damage, expiry, variance

Included

Corrective actions with owners, due dates and automatic escalation

Included

The dashboard, trends and forecasting

Included

Printable PDF reports, Excel and JSON export

Included

Full offline use — the internet is optional, always


When something goes wrong

Common problems

What you seeWhat to do
"Open this in a browser" on a phoneYou tapped the file in WhatsApp or Gmail, which shows a preview that cannot run code. Save the file first, then open it from your Files app, or use Open in Chrome.
Test connection failsCheck the URL ends in /exec, not /dev. Then try Connection method → Compatibility only.
"Not authorised"The token does not match. Run showToken in the script editor and paste it again, with no spaces before or after.
Changed the script, nothing happenedEditing the code is not enough — you must DeployManage deployments → edit → New version.
Data on the phone but not the desktopPress 🔄 Sync on both. If one has been offline, its changes queue and go up when it reconnects.
Everything vanishedBrowser storage was cleared — "clear browsing data" wipes it. This is exactly what the Google Sheet protects you against: set up sync and it comes back. Also use Back up now to a file, regularly.
One habit worth having. Once a month, press Back up now and keep the file somewhere else. The sheet is a good backup of the app; a file is a good backup of the sheet. Audit history is not something you want to be philosophical about.