Set Up an Async Decision Log with an Explicit Response Deadline
How do I set up an async decision log in Google Sheets with explicit response deadlines and rules for closing decisions?
Build an async decision log in Google Sheets using explicit response deadlines, named owners, objection tracking, a deadline-check formula, and manual status transitions. Treat the deadline as the end of normal review, not automatic approval: owners close decisions only after required approvals, blocking issues, and outcomes are documented.
What you need
- A Google Sheets spreadsheet with a blank tab named Decisions
- Access to configure spreadsheet settings, validation, and protected ranges
- Decision owners and identified required reviewers
What does the response deadline mean in this decision log?
The response deadline ends normal review; it does not automatically approve a proposal.
Responses before the deadline are on time; responses at or after it are late. Silence means “no objection recorded,” not unanimous approval. Missing required approval prevents closure.
Use America/New_York throughout the spreadsheet. Reviewers may convert deadlines locally, but timezone labels in cells do not convert timestamps.
Which sample decisions illustrate the Google Sheets log?
These fictional Google Sheets records illustrate an open proposal, a blocked proposal, and a draft.
| Decision ID | Proposal | Owner | Response deadline | Timezone | Objections | Outcome | Status |
|---|---|---|---|---|---|---|---|
| DEC-101 | Replace Tuesday status call with written updates | Mira Example | 2026-07-14 16:00 | America/New_York | NONE | OPEN | |
| DEC-102 | Move support handoff to noon Eastern | Theo Placeholder | 2026-07-15 12:00 | America/New_York | OPEN: Coverage gap from 11:30 to noon | BLOCKED | |
| DEC-103 | Pilot a shared onboarding checklist | Luma Sample | 2026-07-16 15:00 | America/New_York | NONE | DRAFT |
NONE means no recorded objections, not that everyone responded. The template uses DATE and TIME formulas to avoid text-only deadlines.
How do you install and configure the Google Sheets decision log?
Paste the tab-separated template into A1 of a blank Google Sheets tab named Decisions, then complete the numbered setup steps.
Columns A-H hold decision records; I calculates prompts; J holds manual history.
Decision ID Proposal Owner Response deadline Timezone Objections Outcome Status Deadline check State history
DEC-101 Replace Tuesday status call with written updates Mira Example =DATE(2026,7,14)+TIME(16,0,0) America/New_York NONE OPEN =IF(A2="","",IF(OR(H2="DECIDED",H2="WITHDRAWN"),"CLOSED",IF(H2="DRAFT","NOT OPEN",IF(OR(D2="",NOT(ISNUMBER(D2)),E2<>"America/New_York"),"FIX DEADLINE",IF(H2="BLOCKED","RESOLVE OBJECTION",IF(H2="OPEN",IF(NOW()<D2,"COLLECT RESPONSES","OWNER REVIEW DUE"),"FIX STATUS")))))) 2026-07-13 09:00 America/New_York | Mira Example | DRAFT to OPEN | Review requested
DEC-102 Move support handoff to noon Eastern Theo Placeholder =DATE(2026,7,15)+TIME(12,0,0) America/New_York OPEN: Coverage gap from 11:30 to noon BLOCKED =IF(A3="","",IF(OR(H3="DECIDED",H3="WITHDRAWN"),"CLOSED",IF(H3="DRAFT","NOT OPEN",IF(OR(D3="",NOT(ISNUMBER(D3)),E3<>"America/New_York"),"FIX DEADLINE",IF(H3="BLOCKED","RESOLVE OBJECTION",IF(H3="OPEN",IF(NOW()<D3,"COLLECT RESPONSES","OWNER REVIEW DUE"),"FIX STATUS")))))) 2026-07-13 10:00 America/New_York | Theo Placeholder | DRAFT to OPEN | Review requested; 2026-07-14 11:00 America/New_York | Theo Placeholder | OPEN to BLOCKED | Coverage objection received
DEC-103 Pilot a shared onboarding checklist Luma Sample =DATE(2026,7,16)+TIME(15,0,0) America/New_York NONE DRAFT =IF(A4="","",IF(OR(H4="DECIDED",H4="WITHDRAWN"),"CLOSED",IF(H4="DRAFT","NOT OPEN",IF(OR(D4="",NOT(ISNUMBER(D4)),E4<>"America/New_York"),"FIX DEADLINE",IF(H4="BLOCKED","RESOLVE OBJECTION",IF(H4="OPEN",IF(NOW()<D4,"COLLECT RESPONSES","OWNER REVIEW DUE"),"FIX STATUS")))))) 2026-07-14 09:00 America/New_York | Luma Sample | Created as DRAFT
- Set the clock. Under File, Settings, select United States locale and Eastern Time corresponding to New York, including daylight-saving changes. Populate timezone cells with
America/New_York. - Format deadlines. Apply custom date-time format
yyyy-mm-dd hh:mmto D2:D. Hidden times can conceal midnight cutoffs. - Validate entries. Give H2:H a dropdown:
DRAFT,OPEN,BLOCKED,DECIDED,WITHDRAWN. Allow onlyAmerica/New_Yorkin E2:E. Apply custom validation=OR(D2="",ISNUMBER(D2))to D2:D. Reject invalid input for all three ranges; blank deadlines are permissible only during drafting. - Extend formulas. Fill I2 down through I1000, advancing relative references. Protect I2:I1000 from ordinary editing.
- Set recalculation. Under File, Settings, Calculation, choose on change and every minute.
NOW()does not send notifications. - Assign editing responsibilities. Owners maintain records; reviewers comment on proposal cells. Owners copy substantive objections into F and append transitions to J. Restrict direct editing where needed.
- Publish review requests. Include ID, proposal, owner, exact deadline, and timezone. Identify required reviewers in the proposal and provide a reasonable working-hours window before setting
OPEN.
Replace fictional records and history for real decisions. Use unique IDs that remain unchanged when sorting.
Which status transitions may an owner record?
Decision status changes are manual and must follow the transition rules below; column I neither approves proposals nor changes column H.
Place these rules in a separate Rules tab.
| From | To | Required condition |
|---|---|---|
| New row | DRAFT | Assign a unique ID and owner. The proposal may still change. |
| DRAFT | OPEN | Complete the proposal, publish a future deadline, verify the timezone, and notify reviewers. |
| OPEN | BLOCKED | Record an unresolved objection or a missing mandatory approval that prevents closure. |
| BLOCKED | OPEN | Document resolution of every blocking issue. Retain the existing deadline. |
| OPEN | DECIDED | Deadline has arrived, required approvals are recorded, no blocking issue remains, and outcome is complete. |
| DRAFT, OPEN, or BLOCKED | WITHDRAWN | Owner records why the proposal is no longer proceeding. |
| DECIDED or WITHDRAWN | No further state | Preserve the row. Create a linked decision for reconsideration. |
All other transitions are disallowed, including BLOCKED directly to DECIDED.
For resolved objections, change OPEN: to RESOLVED: while retaining the original text, resolution, actor, and timestamp. Give multiple objections separate lines.
Before closure, inspect pending comments and copy unrecorded blocking issues into F. Record whether late objections are accepted or declined, with reasons. An accepted unresolved issue blocks an active decision.
Decisions may remain open past their deadlines. Append each transition’s literal timestamp, timezone, actor, old state, new state, and reason to J. Never use recalculating NOW() for history.
Freeze proposal, owner, and deadline once review opens. Material revisions or extensions require withdrawal and a new ID with a fresh window; reference the replacement ID in the original outcome.
For DECIDED, G must identify the selected action, rationale, implementer, and implementation start. Rejection also qualifies as a decision.
What deadline-check output should the sample produce?
At 2026-07-14 17:00 America/New_York, the sample formulas should display the following prompts.
| Decision ID | Stored status | Deadline check | Owner’s next action |
|---|---|---|---|
| DEC-101 | OPEN | OWNER REVIEW DUE | Inspect responses and record a decision if closure conditions are met |
| DEC-102 | BLOCKED | RESOLVE OBJECTION | Address the coverage objection before attempting closure |
| DEC-103 | DRAFT | NOT OPEN | Finish the proposal and publish the review request |
DEC-101 remains open one hour after its deadline. DEC-102 shows its blocking condition despite its future cutoff; resolving it returns the row to OPEN without extending that cutoff. Actual prompts depend on the current spreadsheet clock.
Why do nested IF checks and NOW() produce the right deadline prompt?
Nested IF checks prioritize the recorded status before NOW() compares the current spreadsheet time with the deadline, producing a prompt rather than changing the decision.
First, IF(A2="","",...) leaves rows without IDs blank, keeping unused rows quiet. Next, OR groups DECIDED and WITHDRAWN under CLOSED, since both are terminal states. The following IF returns NOT OPEN for DRAFT, before considering deadline completeness, because drafts may omit deadlines.
Next, OR, NOT, and ISNUMBER gate further evaluation on a populated numeric deadline and the expected timezone label. Numeric values support time comparisons rather than text comparisons. The formula then checks BLOCKED before OPEN, giving objection resolution priority over the clock. This ordering explains DEC-102’s RESOLVE OBJECTION prompt despite its future deadline.
For OPEN, NOW()<D2 selects COLLECT RESPONSES strictly before the cutoff and OWNER REVIEW DUE at or after it. Thus DEC-101 receives the review prompt at the guide’s example time, while DEC-103 remains NOT OPEN. The final FIX STATUS fallback avoids treating any other status as open. Relative references make the same sequence apply to each row when filled down.
How do you fix deadline and closure errors without hiding them?
Correct deadline errors at their source and document invalid closures rather than treating formula prompts as approval evidence.
A valid-looking deadline produces FIX DEADLINE
Symptom and cause: D displays a timestamp, but I says FIX DEADLINE because the value is text or the timezone label is wrong.
Exact fix: For DEC-101, replace D2 with =DATE(2026,7,14)+TIME(16,0,0) and set E2 to America/New_York. Reapply the date-time format. Substitute intended dates and times for other rows.
Review ends at the wrong local hour
Symptom and cause: A 4:00 p.m. Eastern cutoff changes labels hours early or late because the spreadsheet timezone differs from the label. Cell labels do not control NOW().
Exact fix: Set the spreadsheet timezone to Eastern Time for New York. Verify D against the published deadline and notify reviewers of corrections. If an open review had an ambiguous cutoff, withdraw it and create a replacement with a fresh deadline.
A decided row retains an open objection
Symptom and cause: I says CLOSED while F contains unresolved OPEN: text because manual rules were bypassed. The formula does not inspect objections.
Exact fix: Append history documenting invalid closure and create a linked replacement containing the unresolved objection. Do not present the original as valid approval. Restrict status editing to owners if this recurs.
When should you avoid this Google Sheets decision log?
Avoid this decision log when waiting is unsafe or approval controls require technical enforcement.
- Urgent operational incidents: Use a live incident channel with a named decision-maker, then record the decision afterward.
- Enforced transitions or immutable approval evidence: Use a dedicated approval workflow with required approvers and controlled transitions. Keep the spreadsheet only as a readable index, not the authoritative approval record.
Related questions
Does silence count as approval after the response deadline?
Silence means no objection was recorded, not that reviewers approved. In this Google Sheets decision log, missing mandatory approval prevents closure even after the deadline.
Will the deadline-check formula send reminders or change decision status?
The Google Sheets deadline-check formula displays a prompt based on the clock, deadline, timezone label, and stored status. It neither sends notifications nor changes status; the owner must review responses and record each transition.
Can an owner extend the deadline after review opens?
Once review opens, the proposal, owner, and deadline are frozen under this template's rules. To extend the deadline or materially revise the proposal, withdraw the original row and create a replacement decision with a new ID and fresh review window.
How should an owner handle a late objection?
Record whether the owner accepts the late objection for review or declines it, including the reason. An accepted unresolved issue blocks an active decision; reconsidering a closed decision requires a linked new decision rather than reopening the preserved row.