Life ConnectLife Connect
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
  • Archive
  • Data Dictionary
  • Functional Epics

    • DICTIONARY OF ATTRIBUTES
    • Search Condos
    • Display

      • DisplayAll

        • Display all - Contracts
        • Display all - invoices
        • Display all - parts
        • Display all - Persons Relationships
        • Display all - Persons
        • Display tickets
      • DisplayContract

        • Display bank account Contract
        • Display Condo Member Contract
        • Display contact contract
        • Display Employee Contract
        • Display Generic Contract
        • Display Insurance Contract
        • Display Legal Represent Contract
        • Display Oral Contract
        • Display Owner Contract
        • Display Condo Regulation Contract
        • Display rental Contract
        • Display Supplier Contract
        • Display Trustee Contract
      • DisplayDelegate

        • Display Delegate
      • DisplayHistory

        • Display history
      • DisplayPerson

        • Display Company Person
        • Display Condo Person
        • Display Division Person
        • Display Group Person
        • Display Indivision Person
        • Display Natural Person
        • Display Union Person
        • Display Unknown Person
      • DisplayPersonsContracts

        • Display all Interventions
      • DisplayProperty

        • Display part
        • Display part
      • UiPerson

        • Display "mini" Persons
    • Process

      • Create

        • Create property & condo
      • Delete

        • Delete objects according to state machine
      • RC Renewal

        • RC RESIDENTIAL - automatic renewal
      • Review

        • rent amount review - RC residential - creation
        • rent amount review - RC residential - take-over
      • Sell

        • Sell a unit
    • Reporting

      • GRR

        • GLOBAL RENT REPORT
    • Search

      • Search
    • StateMachine

      • CreatingContract

        • State machine - creating a rental contract
        • State machine - creating a rental delegate contract
        • State machine - Referencing a abstract part contract
        • State machine - Referencing a bank contract
        • State machine - Referencing a condo regulation contract
        • State machine - Referencing a contact contract
        • State machine - Referencing an employee contract
        • State machine - Referencing a generic contract
        • State machine - Referencing a legal represent contract
        • State machine - Referencing a owner contract
        • State machine - Referencing a rental contract
        • State machine - Referencing a supplier contract
        • State machine - Referencing a trustee contract
      • CreatingIntervention

        • State machine - creating a ticket
        • State machine - Referencing a message
      • CreatingInvoice

        • State machine - creating a incoming (supplier) invoice
      • CreatingPayments

        • State machine - creating an incoming payment
      • EncodingPart

        • CreatingPart

          • State machine - Referencing part relationships
          • State machine - Referencing a part
      • EncodingPerson

        • CreatingAddresses

          • State machine - Creating email address
          • State machine - Creating phone address
          • State machine - Creating postal address
          • State machine - Creating web address
        • CreatingPerson

          • State machine - Referencing a company person
          • State machine - Referencing a condo person
          • State machine - Referencing a division person
          • State machine - Referencing an group person
          • State machine - Referencing an indivision person
          • State machine - Referencing a natural person
          • State machine - Referencing a union person
        • CreatingShareHolders

          • State machine - valuing a shareholder
      • Scanning

        • State machine scanning - analyze a document
        • State machine scanning - matching a document
        • State machine scanning - encoding a document : related information
    • Utility

      • Allocation keys
      • Company settings
      • Document data & file
      • Revision Index
    • Validations

      • Shareholders validation
  • Implicit

    • Callback

      • Logging In
  • ProductBoard

    • Rental Process

      • Rental delegate process
    • Ticketing

      • Create a ticket - link a ticket in Outlook add-in - add a call - display a ticket
      • Display Person Info in Outlook add-in
  • Technical Epics

    • Indexation Feature Documentation
    • Rent Amount Management Feature Documentation
    • I have an API
    • I can store the balance of an account
    • I Have Person Notifications
    • 🧩 System Process Diagrams
    • The Team has a DEV environment
    • The Team is organized
    • Accounting

      • Re-generation of Invoices
      • I can call the rent for my Rental Contract
      • Payment Creation Strategy Feature Documentation
      • I Can Revese

        • Payment Reversal
      • I Have Invoices

        • I have direction on invoice's item level
      • I Have Subsidies

        • I Can Receive Family Allowance Payments - Technical Documentation
        • Subsidies + Direct Debit Documentation
    • Communication Module

      • Communication module
    • Contracts

      • I can have contract guarantors
      • API Models
      • I Have Call For Rent Process

        • Call For Rent (CFR) Process Documentation
      • Occupancy Compensation

        • **OCCUPANCY COMPENSATION Documentation**
      • State Machine

        • I can have the Rental Contract state machine
    • Database

      • Database Indexes
    • E2e Testing

      • I can create an E2E dataset
    • Env Setup

      • Adapt env to stateless UI build
      • Blockhound
      • Table of Environments and Their Specifications
      • Environment How-To
      • Java Flight Recorder Management Documentation
      • Local Environment Setup
      • Kubernetes Logs Retrieval Documentation
      • Monitoring
      • I can create a new organisation
      • Production Environment Configuration
      • Remote Environment Setup
      • Set up of separate DB for env
      • Terraform Aws S3 Buckets
      • adb-ui Service Version Update
    • Files

      • I can have tags for files
    • Globals

      • boundaries
      • boundaries
      • boundaries
      • boundaries
    • Messaging

      • MongoDB Trigger Model Documentation
    • Open Api

      • Swagger Documentation Guide
      • Swagger
    • Parts

      • I Have A Forecast And Actuals Module
      • I can have part equipments
    • Process

      • Pre-Meeting Questionnaire
      • I Can Release My Feature
    • Security

      • I can create and provision an organisation
      • a user is granted access to the application
    • Stress Test

      • Introduction
      • Reports

        • Introduction
        • Introduction
        • Introduction
        • Introduction
        • Introduction
        • Table of contents
    • Tickets

      • Ticket Details Functionality
    • Troubleshooting

      • Prometheus Memory Issue Handling
Last updated 2025-05-15⚠️ 1 year 1 month old — verify against current code before relying on details.

OCCUPANCY COMPENSATION Documentation

Description:

When a tenant does not vacate the apartment by the specified end date, the agent can change the contract state to UNENTITLED if it is in the NOTICED state. The state change requires specifying an occupancy compensation amount.

class

1. Contract State Change:

I have:

  • A contract with a specified end date.
  • A tenant who has not vacated the apartment by the end date.

I can:

  • Change the contract state to UNENTITLED only if the current state is NOTICED.
  • When changing the state to UNENTITLED, the agent must provide an occupancy compensation amount. This is mandatory, and the state change cannot proceed without it.

API Request:

To change the contract state to UNENTITLED, the agent must send a request:

POST adb-contracts/contracts/events

with the following body:

{
  "type": "ContractUnentitledEventInfo",
  "target": {
    "type": "TargetObject",
    "targetType": "Contract",
    "targetId": "{{RENTAL_CONTRACT_ID}}"
  }
  "occupancyCompensationAmounts": [
    {
      "lineNumber": <integer>,
      "whenEffective": <date>",
      "amount": {
        "type": "Quantity",
        "amount": <double>,
        "unit" : {
          "type": "CatalogValue",
          "id": "QUANTITY.EURO"
        }
      }
    }
  ]
}

Action diagram:

class


2. Rent Amount Management

I have:

  • A contract in the UNENTITLED state.
  • Various rent amounts associated with the contract.

I can:

  • Get all occupancy compensation rent amounts using the GET request:
GET adb-contracts/contracts/{id}/rentAmount/CFR_OCCUPANCY_COMPENSATION
  • Update occupancy compensation rent amounts using the PATCH request:
PATCH adb-contracts/contracts/{contractId}/rentAmount/{eventType}

and request body:

{
  "type": "PatchRentAmountRequest",
  "amounts": [
    {
      "lineNumber": <integer>,
      "whenEffective": "<date>",
      "amount": {
        "type": "Quantity",
        "amount": <double>,
        "unit": {
          "type": "CatalogValue",
          "id": "QUANTITY.EURO"
        }
      }
    }
  ]
}
  • Delete rent amounts, but cannot delete the first record. At least one rent amount must remain. Rent amounts with CFR_LOCKED state cannot be deleted or modified.
DELETE adb-contracts/contracts/{contractId}/rentAmount/{eventType}/{lineNumber}

Action diagram:

class


3. CallForRentPeriods and nextCallForRentPeriod Management

I have:

  • A contract in the UNENTITLED state.
  • CFR periods with the state FINAL.

I can:

  • When the contract reaches its end date, the last CFR before the end date will be set to FINAL, and nextCallForRentPeriod will have the state ENDED.
  • If the contract is in the UNENTITLED state, I can trigger a new CFR, where the last CFR in the FINAL state will change to PROCESSED.
  • The newly called period will have the FINAL state, and nextCallForRentPeriod will remain in the ENDED state, but the period values will change.

Handling End Date

I have:

  • A contract with an end date.

I can:

  • In the UNENTITLED state, the end date is already in the past, so it should not be used for future periods.
  • For UNENTITLED contracts, the end date will be treated as null, allowing the system to calculate future periods even though the contract is in the past.

4. I have a CfrOccupancyCompensationEvent

I can:

  • For contracts in UNENTITLED state with occupancyCompensationAmount defined, create a CfrOccupancyCompensationEvent event with parameters defined in the Event Matrix spreadsheet

5. Handling CallForRent (CFR)

I have:

  • A contract in the UNENTITLED state.

I can:

  • The agent can trigger a CFR for a contract in the UNENTITLED state. This action will only apply to Recurring Rent.
  • If the contract includes a valid occupancy compensation amount in its rent amounts, only CFR_OCCUPANCY_COMPENSATION events will be triggered.
  • If no valid occupancy compensation amount is present, standard CFR events like CFR, CHARGES, etc., will be triggered instead.
  • Indexation should be disabled for the OccupancyCompensation amounts

Action diagram:

class


6. Handling Settlements

I have:

  • A contract with an CFR_OCCUPANCY_COMPENSATION rent amount.

I can:

  • After receiving a TENANT_PAYMENT_RECEIVED event, I can add settlements for entries of type CFR_OCCUPANCY_COMPENSATION.

7. Direct Debit Processing

I have:

  • A contract in the UNENTITLED state.
  • A need to calculate Direct Debit amounts.

I can:

  • The Direct Debit will have a new field occupancyCompensationAmount on the header level, populated with the corresponding amounts.
  • If the contract is in the UNENTITLED state, the occupancyCompensationAmount will be used as the CFR amount when calculating the Direct Debit amount.

8. Contract Search Update

I have:

  • A need to search for contracts eligible for CFR or Direct Debit.

I can:

  • The UNENTITLED state will be added to the valid search states for contracts eligible for CFR and Direct Debit.

Edit this page
Last Updated:
Contributors: Yevhenii Khudolii