Convenience store franchisee - overnight hours calculator: is the 23:00-to-06:00 stretch earning money or paying for the sign? Net margin after platform commissions, labor including the two-person safety window, closure spillover as adjustable assumptions - output is net contribution per hour and which assumption flips the answer
You are a coding agent. Build a single-file HTML
"overnight hours calculator" for convenience
store franchisees: determine whether the
23:00-06:00 stretch contributes profit or
swallows it. Runs locally, no network, no
external dependencies.
Positioning (design to this): franchise
agreements typically require 24-hour operation,
and the franchisee's sense of the overnight
P&L is a feeling, not a number. This tool does
not decide "should I apply to close" - it gets
the account into view: net contribution per
hour, positive or negative and by how much, and
which assumption most controls the answer. You
negotiate with numbers in hand.
Five input blocks (all user-entered; the tool
pre-fills no operating figures):
1. Overnight sales: takings per hour (23 / 00 /
01 ... 06), in-store and instant retail
entered separately
2. Margin definitions: margin rate per category
(tobacco & alcohol / fresh food / general /
instant retail), entered separately; instant
retail must be the NET rate after platform
commission - high takings with thin
post-commission margin is the norm, and
computing on gross takings overstates the
night badly
3. Night labor: single-staff hourly cost /
two-person safety window cost (which hours,
per company security policy or store
reality), and whether the night shift needs
dedicated staff (not shared with the opening
shift)
4. Incremental costs: overnight utilities
relative to closing (coolers running all
night included); overnight fresh-food waste
charged to the night (unsold fresh at night
is a night cost, not an all-day average)
5. Closure assumptions (three adjustable,
labeled ASSUMPTION): if the store closed at
night - slider for the share of overnight
in-store customers who would move to daytime
[0-100%], slider for the share of
instant-retail orders fulfilled next day,
loss share computed as the remainder
Calculation rules (fixed):
- Hour contribution = category takings x net
margin each (instant retail post-commission)
- that hour's labor share - incremental
utilities - fresh waste in that hour
- Overnight total = sum of hour contributions;
when negative, show the monthly loss
equivalent under a "paying for the sign"
label
- Sensitivity analysis, three items always:
how the overnight total responds to instant-
retail net margin, safety-window length, and
closure spillover (which assumption moving
10% most easily flips the verdict)
Output:
- Main view: seven overnight hours, bars of
margin / cost / net contribution per hour;
sign direction distinguishes positive from
negative (no reliance on color - legible in
black-and-white print)
- Verdict line: overnight total (monthly
basis), average net contribution per hour,
the single most sensitive assumption
- Negotiation block: if the contract requires
24 hours and the overnight total is negative,
list "what to bring to the table" - the
monthly overnight loss, the sensitivity range
of the key assumption, and discussable
alternatives (shorten the window rather than
close entirely; adjust the safety window) -
options listed, no ranking
- Data in localStorage with JSON export; one
set of demo data included, labeled "demo
figures, not industry data"
You must not:
- Render any "recommend closing / recommend
staying open" verdict - output is numbers,
sensitivities, and options; the decision
belongs to the user and the contract
- Pre-fill any "industry average" operating
figures - demo data is explicitly labeled as
demo so it can never be quoted as a benchmark
- Build annual projections or payback
forecasts - the overnight period's current
account only; extrapolation is invention
- Add accounts, cloud sync, or external
libraries; no data leaves the page
Why it is written this way
Requiring instant-retail margin in net-after-commission terms is what decides whether this ruler measures the truth. Instant retail runs high in the overnight mix, and net margin after commission sits far below the category's sticker rate - computed on takings or sticker rates, the overnight almost always "looks profitable"; computed net, the verdict finally earns a seat at the table with headquarters. Writing it into the calculation rules rather than as a hint guards against an eager simplification during the build.
The two-person safety window is a standalone cost line rather than folded into "night labor" because it is precisely the item most likely to flip the night negative: single to double staffing near-doubles labor cost while deep-night takings cannot carry the increment. Splitting it out is what lets the sensitivity analysis answer "would shortening the safety window by one hour flip the verdict" - the most realistic negotiating variable between the franchisee, the brand, and the security policy.
Closure spillover is a slider, not a constant, because it is honestly the biggest unknown in the model. Nobody truly knows what share of night customers would return in daylight, and any hard-coded number would rest the whole tool's credibility on a made-up value. The slider-plus-sensitivity pairing sets the problem upright: dragging the slider to find where the verdict flips is more useful than the tool guessing - and in an actual negotiation, "closing at night only pays if spillover loss stays under 40%" carries far more weight than "the night loses 3,000 a month," because it states the condition under which the conclusion holds.
Banning the stay-open-or-not verdict and banning annual extrapolation pin the tool's borders. Whether to run 24 hours is half accounting and half contract obligation and brand policy; a tool deciding for the user is quietly signing for him against headquarters. And extrapolating one night's account across a year assumes tomorrow resembles today - promos, seasons, and a competitor's grand opening all rearrange the answer. The tool promises one thing: tonight's account, computed honestly, with the flip points marked.
Variables
| Variable | Description |
|---|---|
| Two-person safety window | Which hours require two staff - set by company security policy and the store's location; also the variable most worth dragging in the sensitivity view, since it touches both cost and safety - align with insurance and security clauses before moving it |
| Closure spillover slider | Default to the conservative middle (60% lost) and run all settings before negotiating - the most pessimistic number reads as intimidation, and the most optimistic collapses under one counter-question |