Skip to main content

Negotiation analytics

What this page is — the capability that turns a negotiation trail into numbers: which topics are contested, how many rounds each has taken, which are stalled, and which side is blocking.

What it is for — so when a deal drags, the conversation is about the one topic that is actually holding it up, backed by a round count, rather than about a general sense that things are slow.

The problem it solves — a slow deal gets a vague "things are dragging" instead of the one topic actually holding it up.

Route: /org/papers/documents/<document>/ai → Negotiate → Negotiation analytics · Permission: Use AI drafting/extraction/Q&A for documents. · Utility: papers_negotiation_analytics · Cost: 450 credits estimated, 1,800 maximum.


1. What it is​

Where Negotiation summary describes the argument in prose, this measures it. It reads the exchanged suggestions and redline comments and returns one entry per contested topic, each carrying a round count, a status and a blocking side — plus deal-level tallies and a single recommended next move.

The two outputs that do not exist anywhere else in Papers:

OutputWhy it matters
roundsDistinguishes a hard topic from a stuck one. Four rounds on a liability cap is a different problem from four rounds across the whole deal
blocking_sideSays whether the delay is theirs, yours, or mutual. Teams are consistently wrong about this

conceded_by_us and conceded_by_them in metrics are the other uncomfortable pair: a running count of who has actually moved.

Returns
Negotiation analyticsRounds, status, blocking side, deal metrics
Negotiation summaryPositions and recommended moves in prose
Fairness / balanceHow one-sided the terms are, ignoring the process

Run analytics to decide what to work on; run the summary to decide what to say about it.


2. Why you would use it​

"This deal is taking forever" is not actionable. "The liability cap has been through four rounds, is stalled, and they are the ones blocking it" is.

  • It prioritises objectively. Most-blocking first, with a round count behind the ordering. That ends the argument about which point to escalate.
  • It names the blocker, including when it is you. blocking_side: our_side is the finding teams least expect and most need — the delay is often an internal approval nobody is chasing.
  • conceded_by_us versus conceded_by_them is a reality check. A negotiation where you have conceded six points and they have conceded one is a pattern worth seeing before round seven.
  • stalled is distinguished from open. A topic nobody has touched in three rounds is a different failure from one being actively argued, and it needs a phone call rather than a redline.
  • It makes escalation credible. A manager asked to intervene gets numbers, not an impression.

3. What you provide​

Nothing. It is a one-press capability with no parameters.

InputRequiredNotes
——No parameters. It measures the document's own trail
It needs a real trail — do not run it on a fresh draft

This measures exchanged suggestions and redlines. On a document that has not actually been negotiated it returns no bottlenecks and zeroed metrics, and says so. That is not a failure; it is the only honest answer when there is nothing to measure.


4. What it reads automatically​

Read from the documentUsed for
Title & family — e.g. "MSA"Framing
Party namesResolving blocking_side to our side or the counterparty
Negotiation trail — suggestion and redline comments, oldest first, with author side and accepted/rejected statusEverything else

Note what is not on this list: the document body. Analytics measures the process, not the text. A topic can be stalled regardless of what the clause currently says.


5. What you get back​

bottlenecks[] — one per contested topic, most-blocking first.

FieldTypeValuesMeans
topicstring—Short label — "Liability cap"
roundsnumber—Back-and-forth exchanges on this topic
statusenumopen, resolved, stalledstalled = nobody has moved it recently
blocking_sideenumour_side, counterparty, both, noneWho is holding it up
first_raisedstring—Where it entered the negotiation — "Round 1 redline on cl. 11"
notestring—Why it is stuck, and what would unblock it

metrics — deal-level tallies.

FieldMeans
total_roundsRounds across the whole negotiation
open_topicsTopics not yet resolved
conceded_by_usPoints your side has given
conceded_by_themPoints the counterparty has given

summary — 2–3 sentences on how far the deal is from closing and the single biggest bottleneck. recommendation — the concrete next move that would clear the most valuable blockage.


6. Worked example​

A deal has been running six weeks and the sales lead wants to know what to escalate.

Input: none.

The first entry of bottlenecks[]:

Liability cap rounds: 4 · status: stalled · blocking_side: counterparty first_raised: "Round 1 redline on cl. 11" note: "They insist on 12-month fees cap; we want 24. Offering a supercap for the data-breach carve-out would likely unblock it."

What the lead does with it. Three facts settle the escalation: it has been contested since round one, nobody has moved recently, and the block is on their side. That is a call to their commercial lead, not another redline — a stalled topic does not get unstuck by sending the same document back.

metrics on the same run read total_rounds: 4, open_topics: 2, conceded_by_us: 5, conceded_by_them: 1. That asymmetry is what the lead actually opens the call with.


7. Running it​

  1. Open the document in Orbit Papers — one that has genuinely been negotiated.
  2. Open the AI Assistant drawer, or go to the document's AI workspace.
  3. Choose Negotiation analytics under Negotiate.
  4. The bottleneck list and metrics appear in a result tab and are saved to the document.

Re-run after each counterparty round; that is when round counts and statuses change. A result cached from two rounds ago will understate rounds on every topic.

Available for auto-run from the type's AI Config tab, where on_round is the only event that makes sense — a submit or finalize event has no new trail to measure. See AI configuration.


8. The admin contract​

Must be trueWhereWhat happens if it is not
Your role holds Use AI drafting/extraction/Q&A for documents.Role editorThe AI Assistant button does not appear
The papers_negotiation_analytics utility is activeOrbit AI Flow → utilities"This utility is currently disabled"
The utility is enabled for your organisation/org/ai-utilitiesAbsent from Negotiate, with no error
papers.ai_monthly_credit_cap not yet reachedSystem Config"monthly AI credit cap reached: n of n credits used this month"
Suggestions and comments are enabled on the typeBehaviour settingsThere is no trail, so every metric is zero
Counterparty rounds are recorded on the documentRedlines and roundsrounds undercounts, and a stalled topic can look active
Confidential documents: automatic runs are blocked, manual runs are not

For a confidential document, auto-run is default-denied — a platform administrator must set papers.ai_confidential_cloud to the literal allow, and the block appears only in the server log. A manual press still works, and where a local model key is configured the run is forced on-prem and audited on the timeline as ai_local_routed.


9. Don't confuse this with…​

Negotiation summaryPositions in prose. This is rounds and blocking sides in numbers
AnalyticsModule-wide reporting across all documents. This is one negotiation
Fairness / balanceJudges the terms. This judges the process
Approval routingWhere a document should go internally. This is about the external back-and-forth

10. Troubleshooting​

SymptomCause
Zero bottlenecks and zeroed metricsNo trail — the document has not been negotiated on-platform (§3)
rounds looks far too lowExchanges happened by email and were never captured as comments or redlines
blocking_side: our_side on something we thought was theirsUsually an internal approval or review that has not moved. Check the approvals inbox
A topic shows stalled but we replied yesterdayThe reply was not recorded on the document, or did not move the position
conceded_by_them is 0Either a genuinely one-sided negotiation, or their concessions arrived off-document
The metrics did not change after a roundThe result is cached with the document — re-run (§7)
The capability is missing from NegotiateRole lacks Use AI drafting/extraction/Q&A for documents., or the utility is off for the organisation (§8). The document type does not gate it — AI Config controls auto-run only