Negotiation Agreement Banner & One-Click Deposit Release
Negotiation Agreement Banner & One-Click Deposit Release
Available from: v0.1.290
Overview
When both parties in a negotiation thread converge on the same deposit return figure, the platform now detects that moment automatically and surfaces a clear prompt to move the case forward — no manual monitoring required.
How It Works
Zero-gap detection
Inside the Proposal History panel of the Negotiation Inbox, the platform continuously computes the gap between the most recent agent proposal and the most recent tenant counter-proposal:
currentGap = latestAgentProposal.proposedTenantReturn
− latestTenantProposal.proposedTenantReturn
When currentGap === 0, the system considers an agreement to have been reached.
Agreement Reached banner
As soon as the gap hits £0, a prominent banner appears at the top of the Proposal History panel:
┌─────────────────────────────────────────────────────────────┐
│ 🎉 Both parties have agreed on £X return. │
│ Start deposit release now? [ Begin Release → ] │
└─────────────────────────────────────────────────────────────┘
The banner is only shown when the gap is exactly £0 — partial agreements do not trigger it.
One-click deposit release
The Begin Release button navigates to the Deposit Release wizard with the agreed amount pre-filled:
/dashboard/deposit-release?tenancyId={tenancyId}&proposedReturn={agreedAmount}
| Query parameter | Description |
|---|---|
tenancyId | The tenancy associated with the negotiation thread |
proposedReturn | The agreed return amount (in pounds), taken from the latest proposal |
The Deposit Release wizard reads these parameters on load and pre-populates the return amount field, so the user can proceed through the release flow without re-entering data that was already agreed in negotiation.
When Does This Trigger?
| Condition | Banner shown? |
|---|---|
currentGap === 0 (both proposals match exactly) | ✅ Yes |
currentGap > 0 (gap still exists) | ❌ No |
| No counter-proposal yet received | ❌ No |
Related
- Deposit Release Wizard — the destination for the one-click CTA
- Stale Thread Escalation — server-side detection of threads that have gone inactive (
negotiation-stale-escalation.ts) - Negotiation Inbox — where the Proposal History panel lives