<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions
    xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
    xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
    xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
    xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    id="defs-capital-call-lifecycle"
    targetNamespace="https://w3id.org/openim/exports/bpmn"
    exporter="OpenIM illustrative reference process (hand-authored)"
    exporterVersion="1.0">

  <bpmn:process id="Process_CapitalCallLifecycle" name="Capital-call lifecycle (illustrative)" isExecutable="false">

    <bpmn:documentation>NON-NORMATIVE / ILLUSTRATIVE / HAND-AUTHORED. OpenIM is the operating-model and entity layer for institutional investment management, not a process library. This BPMN is NOT generated from the model (the model carries no process-sequence data) and is NOT a maintained parallel model. It is a hand-authored illustration of how OpenIM capabilities (capital-call and distribution processing) and entities (LP commitment, capital call, distribution) compose into a private-markets cash-event flow. It is not normative process guidance and firm-specific process detail is deliberately out of scope.</bpmn:documentation>

    <bpmn:laneSet id="LaneSet_1">
      <bpmn:lane id="Lane_GP" name="Fund / GP-Manager">
        <bpmn:flowNodeRef>StartEvent_CommitmentEstablished</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Task_IssueCapitalCallNotice</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Task_DeployCapital</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Task_IssueDistribution</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Gateway_Recallable</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>EndEvent_CallDefaulted</bpmn:flowNodeRef>
      </bpmn:lane>
      <bpmn:lane id="Lane_LP" name="Investor / LP">
        <bpmn:flowNodeRef>Task_FundDrawdown</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Gateway_FundedOnTime</bpmn:flowNodeRef>
      </bpmn:lane>
      <bpmn:lane id="Lane_Admin" name="Fund Administrator">
        <bpmn:flowNodeRef>Task_RecordContribution</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Task_TrackRecallable</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>Task_UpdateCommitmentPosition</bpmn:flowNodeRef>
        <bpmn:flowNodeRef>EndEvent_CommitmentClosed</bpmn:flowNodeRef>
      </bpmn:lane>
    </bpmn:laneSet>

    <bpmn:startEvent id="StartEvent_CommitmentEstablished" name="LP commitment established">
      <bpmn:outgoing>Flow_Start_to_IssueCall</bpmn:outgoing>
    </bpmn:startEvent>

    <bpmn:task id="Task_IssueCapitalCallNotice" name="GP issues capital-call notice (drawdown against commitment)">
      <bpmn:incoming>Flow_Start_to_IssueCall</bpmn:incoming>
      <bpmn:outgoing>Flow_IssueCall_to_FundDrawdown</bpmn:outgoing>
    </bpmn:task>

    <bpmn:task id="Task_FundDrawdown" name="LP funds the drawdown by the due date">
      <bpmn:incoming>Flow_IssueCall_to_FundDrawdown</bpmn:incoming>
      <bpmn:outgoing>Flow_FundDrawdown_to_FundedGateway</bpmn:outgoing>
    </bpmn:task>

    <bpmn:exclusiveGateway id="Gateway_FundedOnTime" name="LP funded on time?">
      <bpmn:incoming>Flow_FundDrawdown_to_FundedGateway</bpmn:incoming>
      <bpmn:outgoing>Flow_Funded_Yes</bpmn:outgoing>
      <bpmn:outgoing>Flow_Funded_No</bpmn:outgoing>
    </bpmn:exclusiveGateway>

    <bpmn:task id="Task_RecordContribution" name="Administrator records the contribution against the commitment">
      <bpmn:incoming>Flow_Funded_Yes</bpmn:incoming>
      <bpmn:outgoing>Flow_RecordContribution_to_Deploy</bpmn:outgoing>
    </bpmn:task>

    <bpmn:endEvent id="EndEvent_CallDefaulted" name="Call defaulted &#8212; default remedy invoked">
      <bpmn:incoming>Flow_Funded_No</bpmn:incoming>
    </bpmn:endEvent>

    <bpmn:task id="Task_DeployCapital" name="GP deploys capital to the investment">
      <bpmn:incoming>Flow_RecordContribution_to_Deploy</bpmn:incoming>
      <bpmn:outgoing>Flow_Deploy_to_IssueDistribution</bpmn:outgoing>
    </bpmn:task>

    <bpmn:task id="Task_IssueDistribution" name="GP issues distribution to the LP (return of capital, income or gain)">
      <bpmn:incoming>Flow_Deploy_to_IssueDistribution</bpmn:incoming>
      <bpmn:outgoing>Flow_Distribution_to_RecallableGateway</bpmn:outgoing>
    </bpmn:task>

    <bpmn:exclusiveGateway id="Gateway_Recallable" name="Distribution recallable?">
      <bpmn:incoming>Flow_Distribution_to_RecallableGateway</bpmn:incoming>
      <bpmn:outgoing>Flow_Recallable_Yes</bpmn:outgoing>
      <bpmn:outgoing>Flow_Recallable_No</bpmn:outgoing>
    </bpmn:exclusiveGateway>

    <bpmn:task id="Task_TrackRecallable" name="Administrator restores the recallable amount to callable capacity">
      <bpmn:incoming>Flow_Recallable_Yes</bpmn:incoming>
      <bpmn:outgoing>Flow_TrackRecallable_to_UpdatePosition</bpmn:outgoing>
    </bpmn:task>

    <bpmn:task id="Task_UpdateCommitmentPosition" name="Administrator updates the cumulative called and distributed position">
      <bpmn:incoming>Flow_Recallable_No</bpmn:incoming>
      <bpmn:incoming>Flow_TrackRecallable_to_UpdatePosition</bpmn:incoming>
      <bpmn:outgoing>Flow_UpdatePosition_to_End</bpmn:outgoing>
    </bpmn:task>

    <bpmn:endEvent id="EndEvent_CommitmentClosed" name="Commitment position updated">
      <bpmn:incoming>Flow_UpdatePosition_to_End</bpmn:incoming>
    </bpmn:endEvent>

    <bpmn:sequenceFlow id="Flow_Start_to_IssueCall" sourceRef="StartEvent_CommitmentEstablished" targetRef="Task_IssueCapitalCallNotice" />
    <bpmn:sequenceFlow id="Flow_IssueCall_to_FundDrawdown" sourceRef="Task_IssueCapitalCallNotice" targetRef="Task_FundDrawdown" />
    <bpmn:sequenceFlow id="Flow_FundDrawdown_to_FundedGateway" sourceRef="Task_FundDrawdown" targetRef="Gateway_FundedOnTime" />
    <bpmn:sequenceFlow id="Flow_Funded_Yes" name="Yes" sourceRef="Gateway_FundedOnTime" targetRef="Task_RecordContribution" />
    <bpmn:sequenceFlow id="Flow_Funded_No" name="No (default)" sourceRef="Gateway_FundedOnTime" targetRef="EndEvent_CallDefaulted" />
    <bpmn:sequenceFlow id="Flow_RecordContribution_to_Deploy" sourceRef="Task_RecordContribution" targetRef="Task_DeployCapital" />
    <bpmn:sequenceFlow id="Flow_Deploy_to_IssueDistribution" sourceRef="Task_DeployCapital" targetRef="Task_IssueDistribution" />
    <bpmn:sequenceFlow id="Flow_Distribution_to_RecallableGateway" sourceRef="Task_IssueDistribution" targetRef="Gateway_Recallable" />
    <bpmn:sequenceFlow id="Flow_Recallable_Yes" name="Yes" sourceRef="Gateway_Recallable" targetRef="Task_TrackRecallable" />
    <bpmn:sequenceFlow id="Flow_Recallable_No" name="No" sourceRef="Gateway_Recallable" targetRef="Task_UpdateCommitmentPosition" />
    <bpmn:sequenceFlow id="Flow_TrackRecallable_to_UpdatePosition" sourceRef="Task_TrackRecallable" targetRef="Task_UpdateCommitmentPosition" />
    <bpmn:sequenceFlow id="Flow_UpdatePosition_to_End" sourceRef="Task_UpdateCommitmentPosition" targetRef="EndEvent_CommitmentClosed" />

  </bpmn:process>

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_CapitalCallLifecycle">

      <bpmndi:BPMNShape id="Shape_Lane_GP" bpmnElement="Lane_GP" isHorizontal="true">
        <dc:Bounds x="160" y="80" width="1240" height="160" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Lane_LP" bpmnElement="Lane_LP" isHorizontal="true">
        <dc:Bounds x="160" y="240" width="1240" height="160" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Lane_Admin" bpmnElement="Lane_Admin" isHorizontal="true">
        <dc:Bounds x="160" y="400" width="1240" height="160" />
      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Shape_StartEvent_CommitmentEstablished" bpmnElement="StartEvent_CommitmentEstablished">
        <dc:Bounds x="212" y="142" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_IssueCapitalCallNotice" bpmnElement="Task_IssueCapitalCallNotice">
        <dc:Bounds x="300" y="120" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_DeployCapital" bpmnElement="Task_DeployCapital">
        <dc:Bounds x="860" y="120" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_IssueDistribution" bpmnElement="Task_IssueDistribution">
        <dc:Bounds x="1030" y="120" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Gateway_Recallable" bpmnElement="Gateway_Recallable" isMarkerVisible="true">
        <dc:Bounds x="1205" y="135" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_EndEvent_CallDefaulted" bpmnElement="EndEvent_CallDefaulted">
        <dc:Bounds x="652" y="142" width="36" height="36" />
      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Shape_Task_FundDrawdown" bpmnElement="Task_FundDrawdown">
        <dc:Bounds x="470" y="280" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Gateway_FundedOnTime" bpmnElement="Gateway_FundedOnTime" isMarkerVisible="true">
        <dc:Bounds x="645" y="295" width="50" height="50" />
      </bpmndi:BPMNShape>

      <bpmndi:BPMNShape id="Shape_Task_RecordContribution" bpmnElement="Task_RecordContribution">
        <dc:Bounds x="740" y="440" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_TrackRecallable" bpmnElement="Task_TrackRecallable">
        <dc:Bounds x="1180" y="440" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_UpdateCommitmentPosition" bpmnElement="Task_UpdateCommitmentPosition">
        <dc:Bounds x="1180" y="280" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_EndEvent_CommitmentClosed" bpmnElement="EndEvent_CommitmentClosed">
        <dc:Bounds x="1342" y="302" width="36" height="36" />
      </bpmndi:BPMNShape>

      <bpmndi:BPMNEdge id="Edge_Flow_Start_to_IssueCall" bpmnElement="Flow_Start_to_IssueCall">
        <di:waypoint x="248" y="160" />
        <di:waypoint x="300" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_IssueCall_to_FundDrawdown" bpmnElement="Flow_IssueCall_to_FundDrawdown">
        <di:waypoint x="360" y="200" />
        <di:waypoint x="360" y="320" />
        <di:waypoint x="470" y="320" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_FundDrawdown_to_FundedGateway" bpmnElement="Flow_FundDrawdown_to_FundedGateway">
        <di:waypoint x="590" y="320" />
        <di:waypoint x="645" y="320" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Funded_Yes" bpmnElement="Flow_Funded_Yes">
        <di:waypoint x="670" y="345" />
        <di:waypoint x="670" y="480" />
        <di:waypoint x="740" y="480" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Funded_No" bpmnElement="Flow_Funded_No">
        <di:waypoint x="670" y="295" />
        <di:waypoint x="670" y="178" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_RecordContribution_to_Deploy" bpmnElement="Flow_RecordContribution_to_Deploy">
        <di:waypoint x="800" y="440" />
        <di:waypoint x="800" y="160" />
        <di:waypoint x="860" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Deploy_to_IssueDistribution" bpmnElement="Flow_Deploy_to_IssueDistribution">
        <di:waypoint x="980" y="160" />
        <di:waypoint x="1030" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Distribution_to_RecallableGateway" bpmnElement="Flow_Distribution_to_RecallableGateway">
        <di:waypoint x="1150" y="160" />
        <di:waypoint x="1205" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Recallable_Yes" bpmnElement="Flow_Recallable_Yes">
        <di:waypoint x="1230" y="185" />
        <di:waypoint x="1230" y="440" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_Recallable_No" bpmnElement="Flow_Recallable_No">
        <di:waypoint x="1230" y="185" />
        <di:waypoint x="1230" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_TrackRecallable_to_UpdatePosition" bpmnElement="Flow_TrackRecallable_to_UpdatePosition">
        <di:waypoint x="1300" y="480" />
        <di:waypoint x="1330" y="480" />
        <di:waypoint x="1330" y="360" />
        <di:waypoint x="1300" y="360" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_Flow_UpdatePosition_to_End" bpmnElement="Flow_UpdatePosition_to_End">
        <di:waypoint x="1300" y="320" />
        <di:waypoint x="1342" y="320" />
      </bpmndi:BPMNEdge>

    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>

</bpmn:definitions>
