Help us improve
Share bugs, ideas, or general feedback.
From common-utilities
Calculates BATNA, ZOPA, and optimal settlement ranges for infrastructure property acquisitions. Useful for utility easements, transit corridors, and expropriation settlements.
npx claudepluginhub reggiechan74/vp-real-estate --plugin common-utilitiesHow this skill is triggered — by the user, by Claude, or both
Slash command
/common-utilities:negotiation-expert-infrastructureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert skill for calculating BATNA, ZOPA, probability-weighted expected value, and optimal settlement range for property acquisition negotiations in infrastructure projects.
README.mdmodules/__init__.pymodules/analysis.pymodules/calculations.pymodules/negotiation_tactics.pymodules/output_formatters.pymodules/owner_profiling.pymodules/validators.pynegotiation_settlement_calculator.pynegotiation_settlement_input_schema.jsonnegotiation_strategy_input_schema.jsonnegotiation_strategy_planner.pysamples/sample_1_farmer_easement.jsonsamples/sample_2_urban_station.jsonscripts/shared_utils/README_FINANCIAL_UTILS.mdscripts/shared_utils/__init__.pyscripts/shared_utils/financial_utils.pyscripts/shared_utils/land_assembly_utils.pyscripts/shared_utils/negotiation_utils.pyscripts/shared_utils/report_utils.pyAnalyzes settlement vs. hearing decisions for expropriation files using BATNA, ZOPA, holdout risk scoring, and concession strategy. Produces SETTLE/HEARING/NEGOTIATE recommendations.
Applies negotiation tactics (calibrated questions, accusation audits) to commercial lease discussions, helping craft responses to objections and structure counter-offers.
Analyzes negotiation offers, quantifies value gaps in dollars, and drafts counter-proposals using RADAR protocol. Applies to compensation, real estate, vendors, or agentic system design.
Share bugs, ideas, or general feedback.
Expert skill for calculating BATNA, ZOPA, probability-weighted expected value, and optimal settlement range for property acquisition negotiations in infrastructure projects.
Primary Use Cases:
Key Outputs:
This skill should be invoked when users mention:
Negotiation Analysis:
Settlement Strategy:
Risk Assessment:
Auto-invoke when reading:
*settlement*analysis*.json*negotiation*input*.json*batna*zopa*.json${CLAUDE_PLUGIN_ROOT}/skills/negotiation-expert-infrastructure/samples/Your best option if negotiation fails - in infrastructure acquisitions, this is typically proceeding to expropriation hearing.
Components:
Formula:
Net BATNA = Expected Award + Total Costs
Expected Award = Σ(Probability_i × Award_i)
Interpretation:
The range where both parties' reservation prices overlap - where a deal is possible.
Components:
Existence:
Leverage:
Monte Carlo-style analysis of negotiation outcomes.
Scenarios:
Output:
Recommended negotiation strategy based on BATNA, ZOPA, and confidence level.
Components:
Confidence Level:
Probability that owner will refuse reasonable offers and force expropriation.
Risk Factors (0-30 scale):
Motivation (0-12):
Sophistication (0-10):
Alternatives (0-8):
Risk Levels:
negotiation-expert-infrastructure/
├── negotiation_settlement_calculator.py # Main orchestrator
├── modules/
│ ├── validators.py # Input validation
│ ├── calculations.py # BATNA/ZOPA/EV calculations
│ ├── analysis.py # Risk & strategy analysis
│ └── output_formatters.py # Report generation
├── samples/
│ └── sample_1_farmer_easement.json # Sample input
├── negotiation_settlement_input_schema.json # JSON Schema
└── SKILL.md # This documentation
From Shared_Utils/negotiation_utils.py:
calculate_batna() - BATNA analysiscalculate_zopa() - ZOPA calculationprobability_weighted_ev() - Scenario analysisoptimal_settlement_range() - Settlement recommendationscalculate_concession_strategy() - Diminishing concessionsFrom Shared_Utils/risk_utils.py:
assess_holdout_risk() - Holdout risk scoringFrom Shared_Utils/report_utils.py:
# Basic usage
python negotiation_settlement_calculator.py samples/sample_1_farmer_easement.json
# With JSON output
python negotiation_settlement_calculator.py samples/sample_1_farmer_easement.json \
--output results.json
# With markdown report
python negotiation_settlement_calculator.py samples/sample_1_farmer_easement.json \
--report settlement_analysis.md \
--property "125-acre farm easement"
# Verbose mode
python negotiation_settlement_calculator.py samples/sample_1_farmer_easement.json \
--verbose
from negotiation_settlement_calculator import NegotiationSettlementCalculator
# Load input data
with open('samples/sample_1_farmer_easement.json') as f:
input_data = json.load(f)
# Create calculator
calculator = NegotiationSettlementCalculator(input_data, verbose=True)
# Validate
if not calculator.validate():
print("Validation failed")
exit(1)
# Calculate
results = calculator.calculate()
# Generate report
report = calculator.generate_report("125-acre farm easement")
print(report)
# Access specific results
batna_net = results['batna']['net_batna']
zopa_exists = results['zopa']['exists']
target_settlement = results['optimal_settlement']['target']
{
"buyer_max": 200000,
"seller_min": 150000,
"hearing_probabilities": {
"low_award": 0.2,
"mid_award": 0.5,
"high_award": 0.3
},
"hearing_costs": {
"low_award_amount": 140000,
"mid_award_amount": 175000,
"high_award_amount": 210000,
"legal_fees": 50000,
"expert_fees": 30000,
"time_cost": 15000
}
}
{
"owner_profile": {
"motivation": {
"financial_need": "low",
"emotional_attachment": "high",
"business_impact": "critical"
},
"sophistication": {
"real_estate_experience": "high",
"legal_representation": true,
"previous_negotiations": 2
},
"alternatives": {
"relocation_options": "limited",
"financial_flexibility": "medium",
"timeline_pressure": "low"
}
},
"settlement_offer": 180000,
"legal_costs_to_settle": 5000,
"confidence_level": 0.8,
"num_negotiation_rounds": 3,
"property_description": "125-acre farm easement"
}
================================================================================
NEGOTIATION SETTLEMENT ANALYSIS
================================================================================
Property: 125-acre farm property - transmission line easement acquisition
Key Metrics:
Buyer Maximum: $200,000
Seller Minimum: $150,000
Net BATNA (Hearing): $270,000
ZOPA:
Range: $150,000 - $200,000
Midpoint: $175,000
Optimal Settlement:
Opening Offer: $162,500
Target: $175,000
Walkaway: $200,000
Recommendation: SETTLE
Confidence: MEDIUM
Settlement at $175,000 saves $95,000 compared to hearing ($270,000).
ZOPA exists with range of $50,000. However, holdout risk is HIGH
(50% probability), which may complicate negotiations.
================================================================================
Opening Strategy:
Concession Pattern:
Settlement Range:
Options:
High Emotional Attachment:
Limited Alternatives:
Sophisticated Owner:
Critical Business Impact:
Scenario:
Analysis:
Recommendation:
Scenario:
Typical Profile:
Strategy:
Scenario:
Typical Profile:
Strategy:
Companion tool that develops a comprehensive negotiation approach based on owner psychology, property characteristics, and hearing alternatives. Where the Settlement Calculator quantifies BATNA/ZOPA numbers, the Strategy Planner translates those numbers into a field-ready action plan.
Python Calculator: negotiation_strategy_planner.py
Input Schema: negotiation_strategy_input_schema.json
Primary Use Cases:
Use the Strategy Planner when you need tactical guidance — owner classification, communication tone, concession sequencing — as opposed to the Settlement Calculator which provides quantitative BATNA/ZOPA numbers. For complex acquisitions, run both: calculator first (numbers), planner second (field plan).
Trigger Phrases:
# Single combined input file
python negotiation_strategy_planner.py owner_and_property.json
# Separate owner profile and property data files
python negotiation_strategy_planner.py owner_profile.json property_data.json
# Custom output path
python negotiation_strategy_planner.py samples/farmer_profile.json \
--output $CLAUDE_PROJECT_DIR/Reports/strategy.md
/negotiation-strategy <owner-profile-json> [<property-data-json>]
| Type | Profile | Negotiation Implication |
|---|---|---|
RATIONAL_INVESTOR | Maximize value, evidence-driven | Lead with comparable sales and data |
LEGACY_HOLDER | Emotional attachment, multi-generational | Acknowledge history; non-monetary terms matter |
OPERATING_BUSINESS | Business continuity critical | Emphasize timeline flexibility and disruption mitigation |
FINANCIAL_DISTRESS | Needs liquidity quickly | Speed and certainty of close outweigh price |
SOPHISTICATED_HOLDOUT | Strategic, patient, well-advised | Principled negotiation only; avoid aggressive tactics |
The planner scores three factor domains to produce a 0-30 holdout risk score:
Risk Levels:
{
"owner_type": "LEGACY_HOLDER",
"motivation": {
"financial_need": "low",
"emotional_attachment": "high",
"business_impact": "critical"
},
"sophistication": {
"real_estate_experience": "high",
"legal_representation": true,
"previous_negotiations": 2
},
"alternatives": {
"relocation_options": "limited",
"financial_flexibility": "medium",
"timeline_pressure": "low"
}
}
{
"property_description": "125-acre farm easement",
"acquisition_type": "easement",
"opening_offer": 162500,
"target_settlement": 175000,
"walkaway_point": 200000,
"num_concession_rounds": 3
}
The planner generates a 10-section report:
Phase 1 — Opening
- Establish rapport (approach varies by owner type)
- Present opening offer with objective justification
- Anchor below target to preserve concession room
Phase 2 — Negotiation
- Execute diminishing concession plan
- Respond to objections using negotiation-expert skill
- Monitor for closing signals
Phase 3 — Closure
- Apply urgency framing appropriate to owner type
- Make final small concession to signal limit
- Secure commitment and move to documentation
For complete negotiation preparation, run both tools in sequence:
# Step 1: Quantify the deal (Settlement Calculator)
python negotiation_settlement_calculator.py input.json --output results.json
# Step 2: Build the field plan (Strategy Planner)
python negotiation_strategy_planner.py owner_profile.json results.json \
--output $CLAUDE_PROJECT_DIR/Reports/negotiation_plan.md
The Strategy Planner accepts Settlement Calculator JSON output as its property_data argument, using the computed BATNA, ZOPA, and optimal settlement range to populate sections 3-5 of the strategy report automatically.
This calculator supports the broader negotiation-expert skill by providing:
Workflow:
Automatic Checks:
Error Messages:
Python Standard Library:
json - Input/outputargparse - CLI parsinglogging - Structured loggingpathlib - File pathsdatetime - TimestampsShared Utilities:
Shared_Utils/negotiation_utils.pyShared_Utils/risk_utils.pyShared_Utils/report_utils.pyNo External Dependencies - Pure Python implementation
Log Levels:
Log Output:
2025-11-17 14:30:22 - INFO - Validating input data
2025-11-17 14:30:22 - INFO - Input validation passed
2025-11-17 14:30:22 - INFO - Step 1: Calculating BATNA
2025-11-17 14:30:22 - INFO - BATNA calculation complete - Net BATNA: $270,000.00
2025-11-17 14:30:22 - INFO - Step 2: Calculating ZOPA
2025-11-17 14:30:22 - INFO - ZOPA exists - Range: $150,000.00 to $200,000.00
...
Initial Release:
Features:
Features:
Features:
Skills:
negotiation-expert - Tactical negotiation communicationobjection-handling-expert - Handling owner objectionsagricultural-easement-negotiation-frameworks - Farm-specific strategiesexpropriation-compensation-entitlement-analysis - Hearing compensationCalculators:
easement_calculator.py - Easement valuation (informs buyer_max)expropriation_calculator.py - Statutory compensation (informs BATNA awards)cropland_out_of_production_calculator.py - Annual agricultural compensationSlash Commands:
/Expropriation:expropriation-compensation - Calculate hearing awards/Valuation:easement-valuation - Value easement (buyer_max input)Fisher & Ury (1981) - Getting to Yes
Raiffa (1982) - The Art and Science of Negotiation
Thompson (2015) - The Mind and Heart of the Negotiator
Ontario Expropriation Association
Alberta Surface Rights Board
Hydro One / Ontario Power Generation
BATNA Calculation:
Holdout Risk Scoring:
Optimal Range:
Issue: Probabilities don't sum to 1.0
Error: hearing_probabilities must sum to 1.0, got: 0.95
Fix: Adjust probabilities to sum exactly to 1.0
Issue: No ZOPA exists
Result: No ZOPA - Gap: $50,000
Recommendation: Proceed to hearing or walk away
Options:
1. Increase buyer_max (if budget allows)
2. Negotiate seller_min down (difficult)
3. Improve BATNA (reduce hearing costs)
4. Create value (non-price terms)
Issue: High holdout risk
Result: Holdout risk CRITICAL (25/30, 70% probability)
Mitigation:
- Use mitigation strategies from report
- Consider early engagement
- Offer premium for settlement
- Be prepared for expropriation
# Enable verbose logging
python negotiation_settlement_calculator.py input.json --verbose
# Output shows:
# - Input validation details
# - Step-by-step calculations
# - Intermediate results
# - Decision logic
Within Claude Code:
File Issues:
Skill Name: negotiation-expert-infrastructure Version: 1.0.0 Created: 2025-11-17 Author: Claude Code Status: Production Ready License: Proprietary (Lease Analysis Toolkit)