Audit-ready

A renewal decision log you can hand to anyone.

Every renew, cancel, renegotiate or review-later decision is recorded the moment it happens, with the date, the person who made it and an optional note. Nothing in the log can be edited or rewritten. This is the audit trail an MSP actually needs.

Decisions are events, not fields

Most renewal trackers treat the decision as a status field on the renewal row. Cancel overwrites renew, renew overwrites renegotiate, and the history disappears. That is fine for a personal to-do list. It is not fine when a client asks why you renewed a contract you said you would cancel.

NoticeWindow treats every decision as an event. The renewal row shows the current decision, but the underlying record is an append-only log. If a decision changes, a new event is written. The previous event stays in place. The log is the source of truth, the row is just the latest snapshot.

Attributed and timestamped, automatically

Every log entry captures the renewal, the decision, the timestamp, the user who made it and the optional note they typed. None of that requires extra effort from the person making the decision. The same dropdown that records the decision on the renewal row writes the event. The audit trail is a side effect, not an extra task.

Workspace members can read the full log. Nobody, including workspace owners, can edit or delete entries through the application. The database itself enforces this rule using row-level security so the property holds even if the application code were patched.

Filter by renewal, by client, by decision

The decision log view supports the filters you actually need at a renewal review. Show me every decision in the last quarter. Show me everything we agreed to cancel. Show me every decision made on Client B's stack. Each filter resolves against the log itself, not a derived field, so the answer cannot be wrong because someone forgot to update a status.

Why MSPs care about this property

The most expensive disputes about a renewal are almost never about the supplier. They are about who agreed to what and when. A client says they were told the contract would be cancelled. The MSP remembers a conversation about renegotiating. Neither side is lying, both are remembering different parts of a long email thread.

A timestamped, attributed decision log ends that conversation in a single screen. The decision is on the record. The note explains the context. The timestamp shows when it was made. There is no thread to reconstruct and no inbox to search.

Export at any time

The full log exports to CSV in one click. You can hand it to a client during a quarterly business review, to an internal auditor during a compliance check, or to a finance team that needs to reconcile committed spend. The data is yours and you do not need NoticeWindow to read it.

Frequently asked questions

What is a renewal decision log?
An immutable record of every decision your team made on a renewal: renew, cancel, renegotiate or review later. Each entry is timestamped, attributed to a named user, and tied to the renewal it relates to.
Can decisions be edited after the fact?
No. The decision log is append-only. If a decision changes, a new entry is added; the original entry stays in place. This is the property that makes it useful as an audit trail.
Why does this matter for an MSP?
Because the most expensive disputes about a renewal are not about the supplier, they are about who agreed to what and when. A timestamped, attributed decision log ends that conversation in a single screen.
Can I export the decision history?
Yes. The full decision log exports to CSV at any time. You can hand it to a client, an internal auditor or a finance team without rebuilding it from email.