# Supporting Any Complexity in Lease Documents Blog | LeasePilot [Blog](/blog)Technology # Supporting Any Complexity in Lease Documents How LeasePilot handles the edge cases, custom calculations, and document complexity that break other automation systems, and why that capability matters. ![Lior Kedmi](/_next/image?url=%2Fleadership%2Flior-kedmi.jpg&w=3840&q=75&dpl=dpl_2uqrzvFtdfjJy2rKqbPgTzBd5aYQ) Lior Kedmi CTO December 18, 20249 min readCopy link TL;DR Most automation tools handle the simple cases and leave 40% or more in Word. We built LeasePilot to push that number significantly lower, custom rent calculations, date-driven logic, dynamic paragraph assembly. Here's how we handle complexity that breaks other systems. § 01 ## [The Complexity Trap](#the-complexity-trap) Here's a pattern I've seen repeatedly over the past decade: A landlord evaluates lease automation software. The demo looks great, standard deals flow through smoothly. They sign up. Then they try to automate their actual leases. "Can it handle our rent calculation method?" "Can it assemble the guarantors paragraph correctly?" "Can it calculate rent commencement based on our specific triggers?" The answer, more often than not: "Not exactly, but you could simplify..." And there's the trap. The tool that was supposed to adapt to your workflow now asks you to adapt to its limitations. You end up with two systems: automation for simple deals, Word for everything else. We built LeasePilot to push that boundary significantly further. No system automates 100% of every lease, there will always be deal-specific language that requires human drafting. But the percentage matters. If your tool handles 60% and leaves 40% manual, you have a partial solution. We aim to automate 85-90% of most leases, including the complex calculations and conditional logic that other systems skip. > **DISCLAIMER:** The example provisions throughout this post are illustrations only, not legal advice. We are not recommending this language for use in your leases. Your clauses should be drafted by your own counsel for your specific deal. § 02 ## [Rent Calculations: Your Math, Not Ours](#rent-calculations-your-math-not-ours) Let's start with something that sounds simple: calculating a rent schedule. Base rent times square footage times years. How hard can it be? Here's how hard: take the same deal terms and give them to five different landlords. You'll get five different rent schedules. All mathematically defensible. All different. ### The Variables That Matter **Rounding method**: Do you round to the nearest cent? Round up? Round to the nearest dollar? Round monthly amounts or annual amounts? **Escalation timing**: Does the 3% escalation compound annually? Apply to the original base only? Calculate monthly then annualize? **Proration**: 30-day month assumption? Actual days in month? 365-day year or 360? Generic automation systems pick one method and hardcode it. If your method differs, you're told to adjust your expectations, or manually override every schedule. ### What This Looks Like in Practice Same deal: $50.00 PSF, 10,000 SF, 3% annual escalation, 5-year term. Year Round to Cent Round Up Round to Dollar 1 $500,000.00 $500,000.00 $500,000.00 2 $515,000.00 $515,000.00 $515,000.00 3 $530,450.00 $530,450.00 $530,000.00 4 $546,363.50 $546,364.00 $546,000.00 5 $562,754.41 $562,755.00 $563,000.00 **Total** **$2,654,567.91** **$2,654,569.00** **$2,654,000.00** The difference between "round to cent" and "round to dollar" over five years: $567.91. Multiply that across a portfolio of hundreds of leases and the variance adds up. More importantly: if your rent schedule doesn't match what your accounting system expects, you've created a reconciliation problem before the lease is even signed. ### How LeasePilot Handles This We don't impose a calculation method. We encode yours. During implementation, we document exactly how you calculate rent: your rounding rules, your escalation logic, your proration method. That logic becomes part of your configuration. Every rent schedule generated matches your expected output, because it's using your math. New calculation requirement? We add it. Your retail leases round differently than your office leases? We handle both. The system adapts to your complexity. § 03 ## [Date-Driven Calculations](#date-driven-calculations) Dates in commercial leases aren't just fields to fill in. They're triggers that cascade through the entire document. ### Rent Commencement: A Deceptively Complex Concept "Rent Commencement Date" sounds straightforward. It's not. Here's the kind of rent commencement definition LeasePilot can encode: > Rent Commencement shall be the earlier of (i) ninety (90) days after the issuance of a certificate of occupancy, or (ii) the date of Tenant's substantial completion of improvements, but in no event earlier than the first day of the calendar month following satisfaction of either condition. This single definition requires: - Tracking the CO date as an input - Tracking the substantial completion date as an input - Comparing dates and selecting the earlier - Adding 90 days to one of them - Applying a "not before first of following month" adjustment - Cascading the result to rent schedules, free rent periods, option dates, and expiration calculations A text field can't do this. A date picker can't do this. You need a calculation engine that understands date logic and relationships. ### Percentage Rent Breakpoints Percentage rent adds another layer. The breakpoint calculation depends on: - Is it based on calendar year or lease year? - Is the first partial year prorated? - Are there multiple breakpoint tiers? - Does the natural breakpoint adjust for CPI? Each of these choices changes the output. And the percentage rent exhibit needs to reflect whatever combination your deal requires. ### How LeasePilot Handles This Dates in our system are first-class objects with relationships, not text strings. Rent Commencement can be defined as a formula referencing other dates. Change an input, and every dependent calculation updates automatically. This is why we can handle "90 days after CO or substantial completion, whichever is earlier, but not before the first of the following month." It's a calculation, and we're a calculation engine. § 04 ## [The Guarantors Paragraph: A Case Study](#the-guarantors-paragraph-a-case-study) A customer came to us with a specific request: automate their guarantors paragraph. This sounds minor. It wasn't. ### The Complexity Their leases often had multiple guarantors, principals, parent companies, sometimes both. Each guarantor had: - A name and entity type - A guarantee amount (or "full" for unlimited) - An effective date - A burn-off schedule (if applicable) - A relationship type (principal, parent company, spouse) The paragraph in the lease needed to: 1. List guarantors in order by effective date 2. Group them by relationship type 3. Use correct grammar (singular vs. plural, "and" vs. commas) 4. Include burn-off language only when applicable 5. Reference the correct guarantee amounts for each In Word, an attorney would write this paragraph manually for each deal. It might take 20-30 minutes to get right, with careful attention to ordering and grammar. Their previous automation tool couldn't touch it. "Just leave that section manual," they were told. ### The Solution We built it. It required work, modeling guarantor data as structured objects, defining assembly rules for ordering and grouping, handling the grammatical edge cases. But it was all within LeasePilot's architecture. Here's what the system produces: **Input** (structured data): - ABC Holdings LLC | Parent Company | Full Guaranty | Jan 1, 2024 - John Smith | Principal | $500,000, burns off Year 3 | Jan 15, 2024 - Jane Smith | Principal | $500,000, burns off Year 3 | Jan 15, 2024 **Output** (assembled paragraph): > As additional consideration for Landlord's execution of this Lease, ABC Holdings LLC, as parent company of Tenant, shall provide a full guaranty of Tenant's obligations, effective as of January 1, 2024. Additionally, John Smith and Jane Smith, as principals of Tenant, shall each provide a limited guaranty in the amount of Five Hundred Thousand Dollars ($500,000.00), effective as of January 15, 2024, which guaranties shall burn off upon Tenant's satisfaction of all obligations through the end of the third Lease Year. Different inputs produce different outputs. Two guarantors become "X and Y." Three become "X, Y, and Z." One principal with burn-off and one without? Each gets the appropriate language. The customer's reaction: "We spent years being told this wasn't possible. You built it in weeks." ### Why This Worked We didn't template the paragraph. We modeled the logic that produces the paragraph. The guarantor data is structured. The assembly rules are defined. The output is generated, using the customer's language, not ours. Add a fourth guarantor? The rules handle it. Change the burn-off schedule? The language adjusts. This is the difference between filling in blanks and encoding logic. § 05 ## [The Architecture That Makes This Possible](#the-architecture-that-makes-this-possible) These examples share a common thread: **we model the rules, not the results**. A Word template with merge fields is result-oriented. "Put the tenant name here. Put the rent amount here." It works until you need conditional logic, calculations, or dynamic assembly. LeasePilot is rule-oriented. "Calculate rent using these formulas. Assemble the guarantor paragraph using these ordering and grouping rules. Determine rent commencement using this date logic." This distinction matters because complexity is additive in a rule-based system. New scenario? Add a rule. New calculation method? Add a formula. The existing rules don't break, they coexist. In a template-based system, complexity is multiplicative. New scenario? New template. New calculation method? New template variant. You end up with dozens of templates, each slightly different, each requiring separate maintenance. § 06 ## [Other Complexity We Handle](#other-complexity-we-handle) The examples above aren't exhaustive. Here's a partial list of the kind of complexity LeasePilot can encode: **Multi-phase TI allowances**: Different disbursement amounts at different milestones, with different documentation requirements for each phase. **Cascading co-tenancy**: If Anchor A leaves, Tenant gets remedy X. If Anchors A and B both leave, Tenant gets remedy Y. If occupancy drops below Z%, remedy escalates to W. **Operating expense structures**: Caps that vary by expense category. Base years that differ by lease vintage. Gross-up calculations for partially occupied buildings. **Option exercise windows**: Notice periods calculated backward from expiration. Multiple options with different terms. Rights of first refusal with matching periods. **Percentage rent with seasonal adjustments**: Different breakpoints for different periods. Annual true-ups. Reporting requirements that vary by sales volume. Each of these required engineering work during implementation. None of them required the customer to compromise on what they needed. § 07 ## [Why This Matters Beyond Edge Cases](#why-this-matters-beyond-edge-cases) "We only have a few complex deals. We can handle those manually." I hear this often. Here's why it's a problem: **The complex deals are often the highest-value deals.** The anchor tenant with the custom co-tenancy. The credit tenant with the specific guaranty structure. The flagship location with the unusual percentage rent terms. These aren't edge cases, they're your most important transactions. **Low automation rates create inconsistency.** If only your simplest deals go through the system, you lose most of the consistency benefits. Your "standard" language starts diverging again because most deals still involve heavy manual drafting. **Manual processes don't scale.** That attorney who knows how to handle the complex deals? What happens when they're on vacation? When they leave? When deal volume spikes? **Complexity tends to increase.** Market conditions change. New property types get added. Tenants request new structures. A system that can't grow with your complexity becomes a constraint on your business. § 08 ## [The Real Test](#the-real-test) Here's how to evaluate any automation system's ability to handle complexity: Don't ask "can you handle a standard deal?" Every system can. Ask: "Here's our most complex lease from last year. What percentage can you automate, and what stays manual?" If the answer involves simplifying your requirements, changing your calculation methods, abandoning your guarantor structure, flattening your date logic, you're looking at a tool that will leave significant work on the table. If the answer is "let's look at the logic, build what we can, and clearly identify what remains manual", that's a system designed for real-world complexity. * * * No automation system handles every possible lease scenario. There will always be bespoke provisions, one-off deal terms, and truly unique situations that require human drafting. But the gap between "handles the simple cases" and "handles most of your actual complexity" is enormous. Your rent calculations, your date logic, your guarantor structures, these aren't edge cases. They're how you do business. A system that can't handle them leaves you with a partial tool. The question isn't whether you'll have some manual work. The question is whether that manual work is 40% of every lease or 10-15% of the genuinely unique provisions. We built LeasePilot to push that number as low as possible, not by simplifying what you do, but by encoding the full complexity of how you do it. § Adjacent reading ## More from the ledger [§ 01SEP 16, 2024 Technology ### How We Deconstruct a Lease to Reconstruct It Better Lior Kedmi8 MIN READ Read →](/blog/how-we-deconstruct-lease-to-reconstruct-it-better) [§ 02MAR 06, 2024 Technology ### How LeasePilot Actually Works: A Technical Overview Lior Kedmi10 MIN READ Read →](/blog/how-leasepilot-actually-works-technical-overview) [§ 03FEB 06, 2025 Technology ### Why Generic Document Automation Failed CRE Legal Teams David Saltman7 MIN READ Read →](/blog/why-generic-document-automation-failed-cre) § See it in practice ## Reading about it is one thing. Watching it happen is another. See LeasePilot draft a lease in your team’s own templates, with your clauses and your defaults. [Schedule a Demo](/demo)