Identifications & Deadlines

Every live 45-day and 180-day clock in the book, the evidence that each one was met, and the four-eyes record behind any date that moved. Calendar days — no weekend or holiday extension. Wed, Aug 19, 2026.

Deadline risk board

Sorted by consequence, not by date: a missed 45th day is unrecoverable, a late countersignature is not. Every row states its evidence, not a flag — the headline is what actually happened on the file.

Shipped · at-risk queue
Bayside Loop Holdings LLC Window closed · nothing identified
0 properties on file at the 45th day · no identification notice ever generated or signed · the 180-day period also ended Sat, Aug 1.
Neither clock can be restarted. A deadline override records an authorized correction or federally-authorized relief — it does not create a new identification period.
Waiting on you
Thu, Mar 19, 2026 45-day identification 153 days past
Okonkwo Holdings LLC Next step
1 of 3 identified under the 200% rule · aggregate FMV $1,240,000 of a $3,900,000 cap · designation notice generated Mon, Aug 17 and not yet signed.
The exchanger signs it themselves — there is no sign-on-behalf path (eSign Act §101(c), UETA §7). You can add or correct a property on their behalf with a reason until the 45th day.
Waiting on exchanger Rule check: pass
Sat, Aug 22, 2026 45-day identification 3 days left
Delgado, Maria & Luis Adjusted Rule check: fail
Adjusted Tue, Aug 11 under Rev. Proc. 2018-58 §17 + IRS disaster notice CA-2026-04 · requested by Priya Raman, approved by Sandra Osman · 2 identified, notice unsigned.
Aggregate identified FMV $2,880,000 exceeds 200% of relinquished FMV ($2,600,000). The file cannot be submitted until a property is removed or the 95% rule is elected.
Waiting on exchanger
Tue, Oct 13, 2026 45-day identification was Fri, Aug 14, 2026 55 days left
Hargrove Industrial LP Override pending — second officer
45-day leg satisfied: 3 identified, notice signed by the exchanger Mon, Apr 20. · Purchase not yet closed.
A data-correction request to move the 180th day from Sep 6 to Sep 15 was filed by Priya Raman on Tue, Aug 18. The recorded date below still governs — a request is not an approval, and the date does not move until a second, distinct officer approves it.
Waiting on a second QI officer
Sun, Sep 6, 2026 180-day exchange period requested → Sep 15 18 days left
Ravensworth Trust Rule check: warn
45-day leg satisfied: 4 identified under the 95% rule, notice signed Fri, Apr 10 (window closed Wed, Apr 15). · Replacement purchase not closed.
Planned allocation $3,610,000 is below 95% of identified aggregate FMV ($3,705,000). Under the 95% rule the exchanger must actually close on at least 95% of what was identified. Preliminary title report requested Aug 11, not returned after 3 automated reminders.
Waiting on Cascade Title
Fri, Aug 28, 2026 180-day exchange period 9 days left
Belcher Family Trust Rule check: pass
45-day leg satisfied: 3 of 3 identified under the 3-Property Rule, notice signed by Matt Belcher Tue, Apr 14, 11:42 AM PT — window closed Sun, Apr 19.
The headline is the signed instrument and the three properties on file, not the exchanger's hub submission flag. A closed identification leg never reads Not yet submitted here. Purchase closing scheduled Fri, Aug 28; $1,384,000 held in qualified escrow.
Identification satisfied Closing with Sierra Escrow
Tue, Sep 1, 2026 180-day exchange period 13 days left
Showing the 6 most urgent of 14 at-risk clocks — the filter figures above cover all 14. A clock enters this board when it is 45 days out or less, and never leaves it by expiring: a missed date stays visible, red, and actionable until a disposition is recorded. Automated reminders are not live — forty-five-day-id-watcher is Draft (IRS1031-002), and there is no automated or manual send from this console yet.

Identification book

Every file's elected §1031 rule, what it has identified, and whether the set still passes — the same server-side re-check that runs on every mutation (validateIdentificationSubmit). The lock column says who, if anyone, may still change it.

Shipped · per-file rule check
File Elected rule Identified Value test Notice Lock Rule check Waiting on Action
Okonkwo Holdings LLC
EX-2026-000212
200% Rule
§1.1031(k)-1(c)(4)(i)(B)
1 property
of no fixed limit
$1,240,000 / $3,900,000
32% of the 200% cap
Generated Aug 17
Unsigned
Draft · editable
Until Sat, Aug 22
Pass Exchanger
Identified replacement properties — EX-2026-000212 1 of an unlimited count under the 200% rule
4820 Camino del Rio South, San Diego, CA 92108
Like-kind · added by the exchanger Sat, Aug 15, 4:06 PM PT
$1,240,000Allocation $1,240,000
A reason is required on every on-behalf add, edit and remove. The mutation is re-checked server-side against the elected rule before it persists, and is written to the audit log as admin.identification.added with on_behalf: true and the exchanger's user id as the subject. A rule violation is refused and logged as admin.identification.rule_denied.
Incidental property is aggregated, not counted per item. An item identified as incidental to a larger property is disregarded only while the aggregate of all incidental items under that parent stays at or below 15% of the parent's FMV (Treas. Reg. §1.1031(k)-1(c)(5)). Above that, it must be identified as a property in its own right.
Rule check — re-run on every change
3-Property Rule
N/A — alternative rule elected
200% of relinquished FMV
$1,240,000 / $3,900,000
FMV on every property
1 of 1 — required before a value-based submit, DST interests included
Relinquished FMV on file
$1,950,000 — confirmed settlement statement
Notice signed by the exchanger
Awaiting signature — 3 days to the 45th day
Identity & AML cleared
Exchanger verified Jul 9 · counterparties screened Aug 12
Belcher Family Trust
EX-2024-0147
3-Property Rule
§1.1031(k)-1(c)(4)(i)(A)
3 of 3
At the limit
Not applicable
Count-based rule
Signed Apr 14
Matt Belcher, 11:42 AM PT
Locked · submitted
Taxpayer must revoke and re-identify
Pass Satisfied
Delgado, Maria & Luis
EX-2026-000203
200% Rule
§1.1031(k)-1(c)(4)(i)(B)
2 properties $2,880,000 / $2,600,000
111% of the 200% cap — exceeded
Not generated
Blocked by the rule check
Draft · editable
Until Tue, Oct 13 was Aug 14
Fail
Aggregate FMV exceeds 200% of relinquished FMV
Exchanger
Ravensworth Trust
EX-2026-000188
95% Rule
§1.1031(k)-1(c)(4)(ii)(B)
4 properties $3,610,000 / $3,705,000
Planned allocation vs the 95% floor
Signed Apr 10
Before the Apr 15 window close
Locked · window closed
Wed, Apr 15, 2026
Warn
Must actually close on at least 95% of identified FMV
Cascade Title
Hargrove Industrial LP
EX-2026-000177
3-Property Rule
§1.1031(k)-1(c)(4)(i)(A)
3 of 3
At the limit
Not applicable
Count-based rule
Signed Apr 20
Exchanger, 9:05 AM PT
Locked · submitted
Taxpayer must revoke and re-identify
Pass Second officer
Bayside Loop Holdings LLC
EX-2026-000165
None elected
No rule was ever chosen
0 properties Not evaluable
Nothing identified
Never generated Frozen · window closed
Thu, Mar 19, 2026
Fail
No identification made within the 45-day period
You
Two different locks, two different reasons. Locked · submitted means the taxpayer has signed the identification instrument: a Qualified Intermediary is a disqualified party and cannot alter it on their behalf — the taxpayer must revoke and re-identify. Frozen · window closed means the 45-day period has ended; the identified set is fixed by statute. The shipped API expresses both as one field (mutable: !submitted && isBeforeIdentificationDeadlineDay(...)) but the reasons are not interchangeable, and the surface must never collapse them into a single grey "read only".

Deadline override — request, second officer, recorded

A statutory date moves only through this path. The requester's own submission is never an approval; the approver is never the proposer; and the date that was replaced is retained, not overwritten.

Shipped end to end EX-2026-000177 · Hargrove Industrial LP
Request Priya Raman · org_admin

Filed Tue, Aug 18, 9:02 AM PT. Requires org_owner or org_admin; a coordinator cannot open this form.

was Sun, Sep 6, 2026
+9 days · within the 366-day sanity cap. Ordering check passes — the 45-day deadline (Sun, May 3, 2026) still falls on or before the 180-day deadline.
Recording an override documents an authorized correction or federally-authorized relief. It does not extend the statutory §1031 deadlines and does not by itself preserve safe-harbor treatment.
Required, 1–2000 characters. Stored verbatim on the request row and copied into the audit entry.
Submitting stages the request. Nothing on exchanges changes until a second, distinct officer approves. One pending request per deadline type per file — a second attempt returns 409.
Second officer Pending

The same panel, seen by two people. What each of them may do is the whole control.

As Priya Raman — the requester. You requested this override. A second, distinct officer must approve or reject it. Your submission is not an approval and is never counted as one.
Refused three ways, deliberately: the UI disables it, the API returns 403 self_approval_blocked and writes a failure audit row naming the attempted approver, and the table carries a check constraint (approved_by is null or approved_by <> requested_by).
As Sandra Osman — QI officer, not the requester. You may approve or reject. Approving mutates the recorded deadline and writes the audit row in the same database transaction, so an applied override can never be unlogged.
Deadline180-day exchange period
ChangeSun, Sep 6, 2026 → Tue, Sep 15, 2026 · +9 days
Legal basisData correction
Requested byPriya Raman · Tue, Aug 18, 9:02 AM PT
Reason180-day date keyed from the purchase-contract date rather than the deed recording date on the converted file; the 45-day leg was already recomputed on the deed-recording basis by System on Aug 10.
Ordering45-day Sun, May 3, 2026 ≤ 180-day Tue, Sep 15, 2026 — valid
Rejecting requires its own reason and is equally audited. Ordering and the 366-day cap are re-validated at approval time, not only at request time — the file may have moved in between.
Recorded EX-2026-000203 · Delgado

A completed override from another file, to show what the record looks like afterwards.

Adjusted Tue, Oct 13, 2026 was Fri, Aug 14, 2026
Deadline45-day identification
Legal basisDisaster relief — Rev. Proc. 2018-58 §17, IRS disaster notice CA-2026-04
Requested byPriya Raman · Tue, Aug 11, 9:14 AM PT
Approved bySandra Osman · Tue, Aug 11, 2:41 PM PT
Audit rowdeadline_override.approved · committed in the same transaction as the date change
OriginalRetained on the request row and re-snapshotted at apply time from the value actually overwritten
Four eyes, two distinct people, one transaction. Priya requested and Sandra approved. Neither could have done both. The exchanger is not in this path at all — an override is a QI record, and no client party proposes, approves or acknowledges it as a condition of it taking effect.
This is a recorded adjustment, not an extension. The statutory §1031 clock is what it is; the platform's job is to state, provably, which date it was operating on and on whose authority.
The date column on exchanges has exactly three legal writers. The statutory recompute when sale_close_date moves; an approved override, stamped through a transaction-local flag inside apply_deadline_override_approval; and a service-role clear of both columns to NULL. Everything else — including a direct PostgREST PATCH by an authorized participant — is rejected by the zz_guard_statutory_deadlines trigger. The older single-actor table was renamed deadline_overrides_archive and had INSERT, UPDATE and DELETE revoked, so the one-person path cannot come back even if application code regresses.

What the platform refuses

Each of these is a real server response with a real audit consequence. They are drawn here because an examiner asks what the system would not let happen, and the answer has to be visible in the UI.

Shipped
Self-approval 403 · self_approval_blocked

"The approver must be a different user from the requester — self-approval is prohibited." A failure audit row is written with requested_by, attempted_approver and the reason requester and approver must be distinct users (2P gate). The database refuses it independently through a check constraint, so an API regression cannot open the hole.

Acting inside an impersonation session 403 · impersonation_blocked

Both requesting and approving are refused while the acting account is the target of an active platform-admin impersonation session, and each refusal is audited with the impersonator's id and the session expiry. A support session can look at a statutory deadline; it can never move one.

Out-of-order or implausible dates 400 · deadline_ordering_violation · override_shift_cap_exceeded

The 45-day date must fall on or before the 180-day date, checked at request and again at approval. A requested date more than 366 days from the current one is refused outright as outside the sanity cap — a fat-fingered year is a data-integrity event, not a relief filing.

Editing a signed identification 422 · draft-only gate

Once the taxpayer has submitted, the QI cannot add, edit or remove an identified property on their behalf — a QI is a disqualified party and the notice is the taxpayer's signed instrument. The taxpayer must revoke and re-identify, and the revocation history is preserved rather than replaced. The same gate closes at the 45th day.

Deadline audit ledger

The examiner-facing answer to "how do you know you did not miss it". Failures are rows too — a blocked self-approval is evidence the control fired, so it is never hidden.

Shipped · audit_log
When Action Actor File What changed Outcome
Tue, Aug 18
9:07 AM PT
deadline_override.self_approval_blocked Priya Raman
org_admin
EX-2026-000177 Nothing. Attempted to approve her own 180-day request. Refused
Tue, Aug 18
9:02 AM PT
deadline_override.requested Priya Raman
org_admin
EX-2026-000177 Staged 180-day Sep 6 → Sep 15 · data_correction. Recorded date unchanged. Pending
Mon, Aug 17
3:20 PM PT
admin.identification.added Tom Bottenberg
coordinator · on_behalf
EX-2026-000212 Added 4820 Camino del Rio South · $1,240,000 · rule 200-percent re-checked and passed. Applied
Fri, Aug 14
10:48 AM PT
admin.identification.rule_denied Tom Bottenberg
coordinator
EX-2026-000203 Refused a third property: aggregate FMV would reach $3,940,000 against a $2,600,000 cap. Refused
Tue, Aug 11
2:41 PM PT
deadline_override.approved Sandra Osman
QI officer · approver ≠ proposer
EX-2026-000203 45-day Aug 14 → Oct 13 · disaster_relief · previous date retained. Applied
Tue, Aug 11
9:14 AM PT
deadline_override.requested Priya Raman
org_admin
EX-2026-000203 Staged 45-day Aug 14 → Oct 13 · disaster_relief · IRS notice CA-2026-04. Superseded
Mon, Aug 10
4:30 PM PT
exchange.deadlines_computed System
statutory recompute
EX-2026-000177 Deed recording (Mar 19) confirmed as the transfer basis → 45-day Apr 24 → May 3. Recomputes the Mar 24 row below; 180-day leg unchanged pending the request above. Applied
Tue, Mar 24
8:11 AM PT
exchange.deadlines_computed System
statutory recompute
EX-2026-000177 Sale close Mar 10 → 45-day Apr 24, 180-day Sep 6. Applied
An approved override cannot exist without its audit row. The status transition, the previous_date re-snapshot, the write to exchanges and the audit_log insert all happen inside one server-side function, in one transaction. If the audit insert fails, the date change rolls back with it.

The board's other three states

A deadline board is only trustworthy if it tells you when it does not know. These are the three non-happy states, drawn.

Shipped
Loading — structure first, never a spinner
The filter figures above render as skeletons too, never as zeros — a coordinator must not read "0 overdue" off a board that has not loaded.
Empty — the result you want, said plainly
No clock is inside 45 days
No active exchange has a 45-day identification or 180-day close deadline inside the next 45 days. That is the result you want. A file appears here the moment its sale closes and the statutory dates are stamped — this board refreshes when you return to the tab, so reload if you want to check now.
Error — say what is still true
We could not load the deadline board. Deadline dates are stored on the exchange record and are unchanged — but this console is your live view, so re-check it as soon as it is back. Nothing has expired because a page failed to load.
J K move Enter open file at the clock I identification detail O override history A approve (only when you are not the requester) E export ledger ⌘K command palette
Build contract — identifications and deadlines
1 · Status is derived from evidence, never from one flag. A row's headline comes from the identified-property count, the signature record, the notice generation date and the elected rule's server-side re-check — not from hub_submissions.identification.submitted. A file with three properties and a signed notice reads satisfied even though its clock has passed; a file with a live clock and nothing identified reads at risk even though nobody has pressed anything. The exchanger's submission flag is one input among several and is never the headline on its own.
2 · An overdue clock never renders as satisfied, met, or green. It stays red, stays on the board, and stays actionable until a disposition is recorded. A missed date is not a completed step, and an override does not turn it into one — an override records an authorized correction or federally-authorized relief; it never creates a new identification period. Copy must say window closed or days past, never done.
3 · The original date is retained, never overwritten. previous_date is snapshotted at request time and re-snapshotted at apply time from the value actually replaced. Every surface that shows an adjusted deadline shows both: the controlling date, an Adjusted pill, and the superseded date struck through. A deadline that renders as a single date with no history is a rejection.
4 · Four eyes, two people, one transaction. The proposer's own submission is not an approval and is never rendered or counted as one — the approve control is disabled for the requester with the reason stated, the API returns 403 self_approval_blocked and audits the attempt, and the table's check constraint refuses it at the database. The exchanger is not in this path at all: no client party proposes, approves, or acknowledges an override as a condition of it taking effect, and no surface may add one.
5 · Waiting-on attribution on every row. Whose move it is, by name where a person is knowable: you, exchanger, a second QI officer, or the third party. Red is ours, amber is theirs, neutral is a third party, green is settled. At ~200 files per coordinator this is the highest value line on the page.
6 · Exactly one "Next step" marker on the surface. Here it is EX-2026-000212 — three days to the 45th day with an unsigned notice. Never zero, never two. Other rows still carry their real action; only the marker is unique.
7 · Every row carries its action inline and deep-links to the section it concerns. Open → Identification, Open → Purchases, Open → Deadlines each resolve to their own view. Never drop a coordinator on an overview to hunt for the thing the row just told them about.
8 · Two locks, two reasons, never one grey "read only". Locked · submitted is a legal disability — a QI is a disqualified party and cannot alter the taxpayer's signed instrument; the taxpayer must revoke and re-identify. Frozen · window closed is the statute. The shipped API collapses both into mutable; the UI must not.
9 · No affordance signs, verifies, or clears a gate on another party's behalf. The identification notice is signed by the exchanger — no "sign on behalf" control exists anywhere on this surface. Identity and AML are the first gate on every file and a coordinator can never mark them verified by proxy; this surface only reports their state.
10 · Refusals are visible, not silent. Blocked self-approval, blocked impersonation, ordering violations, the 366-day cap and rule denials all appear in the ledger as rows with a Refused outcome. A control that fired is evidence; hiding it makes the log read as though it never had to.
11 · Role truth in the chrome. Requesting or approving an override needs org_owner or org_admin. A coordinator sees the request read-only, with the controls rendered disabled and the reason named — not hidden, so nobody wonders whether the page is broken.
12 · Token contract and both themes. No colour literal survives to the implementation: every colour resolves through docs/mockups/tokens.css. Filled controls take the flipping foreground — --admin-on, --good-on, --bad-on — because the fill lightens in dark. --ink-4 is icons, rules, strike-through marks and disabled glyphs only, never body text. Hub hues are wayfinding (which clock), status stays on good/warn/bad with a label and an icon so colour is never the only carrier. Transitions run at --duration-fast and animate colour, border and elevation only; the loading pulse is the one loop and it stops under prefers-reduced-motion.
13 · Honest provenance stays in the markup. The book-wide identification table and the cross-file override queue carry Proposed pills until the list endpoint exists; the Adjusted annotation carries one until it is rendered outside the override dialog; and the forty-five-day-id-watcher notice stays until the workflow is live. Remove each pill in the same pull request that ships the capability — never before.
Light and dark are both designed here. All names, addresses, amounts, dates and references are synthetic demo data.