Month-end financial close with timer start
Record-to-report month-end close triggered by a monthly timer start event: period cut-off, accruals and recurring journals posted while the AP and AR sub-ledgers close in parallel, balance-sheet reconciliations, consolidation, controller review of the trial balance with an investigate-and-adjust loop, then approval, period lock and management reporting. Illustrative timetable.
Rendering…
Make it your own.
<?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="Process_MonthEndClose_defs" targetNamespace="http://flowss.ai/bpmn">
<bpmn:process id="Process_MonthEndClose" name="Month-end close" isExecutable="false">
<bpmn:documentation>A timer start event with an ISO-8601 repeating cycle (R/2026-01-01T06:00:00Z/P1M) opens the close at 06:00 UTC on the first of each month. Sub-ledger closes and journal posting run in parallel and are joined before reconciliations. Unexplained variances found in the controller's flux review are investigated and adjusted, and reconciliation runs again until the trial balance is clean. The timetable is illustrative; many teams target business day 3 to 5.</bpmn:documentation>
<bpmn:laneSet id="Process_MonthEndClose_lanes">
<bpmn:lane id="Lane_GL" name="General ledger"><bpmn:flowNodeRef>Start_MonthEnd</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Cutoff</bpmn:flowNodeRef><bpmn:flowNodeRef>Gw_CloseFork</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Journals</bpmn:flowNodeRef><bpmn:flowNodeRef>Gw_CloseJoin</bpmn:flowNodeRef><bpmn:flowNodeRef>Gw_ReconcileMerge</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Reconcile</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Consolidate</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Adjust</bpmn:flowNodeRef></bpmn:lane>
<bpmn:lane id="Lane_AP" name="Accounts payable"><bpmn:flowNodeRef>Task_CloseAP</bpmn:flowNodeRef></bpmn:lane>
<bpmn:lane id="Lane_AR" name="Accounts receivable"><bpmn:flowNodeRef>Task_CloseAR</bpmn:flowNodeRef></bpmn:lane>
<bpmn:lane id="Lane_Controller" name="Financial controller"><bpmn:flowNodeRef>Task_Review</bpmn:flowNodeRef><bpmn:flowNodeRef>Gw_Variances</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Approve</bpmn:flowNodeRef><bpmn:flowNodeRef>Task_Publish</bpmn:flowNodeRef><bpmn:flowNodeRef>End_Closed</bpmn:flowNodeRef></bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="Start_MonthEnd" name="New month begins"><bpmn:timerEventDefinition id="Start_MonthEnd_ed"><bpmn:timeCycle xsi:type="bpmn:tFormalExpression">R/2026-01-01T06:00:00Z/P1M</bpmn:timeCycle></bpmn:timerEventDefinition></bpmn:startEvent>
<bpmn:serviceTask id="Task_Cutoff" name="Run period cut-off"/>
<bpmn:parallelGateway id="Gw_CloseFork"/>
<bpmn:userTask id="Task_Journals" name="Post accruals and journals"/>
<bpmn:userTask id="Task_CloseAP" name="Close AP sub-ledger"/>
<bpmn:userTask id="Task_CloseAR" name="Close AR sub-ledger"/>
<bpmn:parallelGateway id="Gw_CloseJoin"/>
<bpmn:exclusiveGateway id="Gw_ReconcileMerge"/>
<bpmn:userTask id="Task_Reconcile" name="Reconcile balance sheet"/>
<bpmn:serviceTask id="Task_Consolidate" name="Consolidate and eliminate"/>
<bpmn:userTask id="Task_Review" name="Review flux analysis"/>
<bpmn:exclusiveGateway id="Gw_Variances" name="Variances explained?" default="Flow_15"/>
<bpmn:userTask id="Task_Adjust" name="Investigate and adjust"/>
<bpmn:userTask id="Task_Approve" name="Approve and lock period"/>
<bpmn:serviceTask id="Task_Publish" name="Publish management accounts"/>
<bpmn:endEvent id="End_Closed" name="Books closed"/>
<bpmn:sequenceFlow id="Flow_1" sourceRef="Start_MonthEnd" targetRef="Task_Cutoff"/>
<bpmn:sequenceFlow id="Flow_2" sourceRef="Task_Cutoff" targetRef="Gw_CloseFork"/>
<bpmn:sequenceFlow id="Flow_3" sourceRef="Gw_CloseFork" targetRef="Task_Journals"/>
<bpmn:sequenceFlow id="Flow_4" sourceRef="Gw_CloseFork" targetRef="Task_CloseAP"/>
<bpmn:sequenceFlow id="Flow_5" sourceRef="Gw_CloseFork" targetRef="Task_CloseAR"/>
<bpmn:sequenceFlow id="Flow_6" sourceRef="Task_Journals" targetRef="Gw_CloseJoin"/>
<bpmn:sequenceFlow id="Flow_7" sourceRef="Task_CloseAP" targetRef="Gw_CloseJoin"/>
<bpmn:sequenceFlow id="Flow_8" sourceRef="Task_CloseAR" targetRef="Gw_CloseJoin"/>
<bpmn:sequenceFlow id="Flow_9" sourceRef="Gw_CloseJoin" targetRef="Gw_ReconcileMerge"/>
<bpmn:sequenceFlow id="Flow_10" sourceRef="Gw_ReconcileMerge" targetRef="Task_Reconcile"/>
<bpmn:sequenceFlow id="Flow_11" sourceRef="Task_Reconcile" targetRef="Task_Consolidate"/>
<bpmn:sequenceFlow id="Flow_12" sourceRef="Task_Consolidate" targetRef="Task_Review"/>
<bpmn:sequenceFlow id="Flow_13" sourceRef="Task_Review" targetRef="Gw_Variances"/>
<bpmn:sequenceFlow id="Flow_14" name="no" sourceRef="Gw_Variances" targetRef="Task_Adjust"><bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=unexplainedVariances > 0</bpmn:conditionExpression></bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_15" name="yes" sourceRef="Gw_Variances" targetRef="Task_Approve"/>
<bpmn:sequenceFlow id="Flow_16" sourceRef="Task_Adjust" targetRef="Gw_ReconcileMerge"/>
<bpmn:sequenceFlow id="Flow_17" sourceRef="Task_Approve" targetRef="Task_Publish"/>
<bpmn:sequenceFlow id="Flow_18" sourceRef="Task_Publish" targetRef="End_Closed"/>
<bpmn:textAnnotation id="Note_Timetable"><bpmn:text>Close timetable is illustrative; many teams target business day 3 to 5.</bpmn:text></bpmn:textAnnotation>
</bpmn:process>
<bpmn:collaboration id="Process_MonthEndClose_collab">
<bpmn:participant id="Process_MonthEndClose_pool" name="Finance — record to report" processRef="Process_MonthEndClose"/>
</bpmn:collaboration>
<bpmndi:BPMNDiagram id="Process_MonthEndClose_di">
<bpmndi:BPMNPlane id="Process_MonthEndClose_plane" bpmnElement="Process_MonthEndClose_collab">
<bpmndi:BPMNShape id="Process_MonthEndClose_pool_di" bpmnElement="Process_MonthEndClose_pool" isHorizontal="true"><dc:Bounds x="160" y="80" width="1998" height="730"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_GL_di" bpmnElement="Lane_GL" isHorizontal="true"><dc:Bounds x="190" y="80" width="1968" height="280"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_AP_di" bpmnElement="Lane_AP" isHorizontal="true"><dc:Bounds x="190" y="360" width="1968" height="150"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_AR_di" bpmnElement="Lane_AR" isHorizontal="true"><dc:Bounds x="190" y="510" width="1968" height="150"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_Controller_di" bpmnElement="Lane_Controller" isHorizontal="true"><dc:Bounds x="190" y="660" width="1968" height="150"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Start_MonthEnd_di" bpmnElement="Start_MonthEnd"><dc:Bounds x="262" y="152" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="251" y="193" width="58" height="28"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Cutoff_di" bpmnElement="Task_Cutoff"><dc:Bounds x="380" y="130" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gw_CloseFork_di" bpmnElement="Gw_CloseFork"><dc:Bounds x="555" y="145" width="50" height="50"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Journals_di" bpmnElement="Task_Journals"><dc:Bounds x="680" y="130" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_CloseAP_di" bpmnElement="Task_CloseAP"><dc:Bounds x="680" y="395" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_CloseAR_di" bpmnElement="Task_CloseAR"><dc:Bounds x="680" y="545" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gw_CloseJoin_di" bpmnElement="Gw_CloseJoin"><dc:Bounds x="855" y="145" width="50" height="50"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gw_ReconcileMerge_di" bpmnElement="Gw_ReconcileMerge" isMarkerVisible="true"><dc:Bounds x="1005" y="145" width="50" height="50"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Reconcile_di" bpmnElement="Task_Reconcile"><dc:Bounds x="1130" y="130" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Consolidate_di" bpmnElement="Task_Consolidate"><dc:Bounds x="1280" y="130" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Review_di" bpmnElement="Task_Review"><dc:Bounds x="1430" y="695" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gw_Variances_di" bpmnElement="Gw_Variances" isMarkerVisible="true"><dc:Bounds x="1605" y="710" width="50" height="50"/><bpmndi:BPMNLabel><dc:Bounds x="1602" y="765" width="56" height="28"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Adjust_di" bpmnElement="Task_Adjust"><dc:Bounds x="1730" y="240" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Approve_di" bpmnElement="Task_Approve"><dc:Bounds x="1730" y="695" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_Publish_di" bpmnElement="Task_Publish"><dc:Bounds x="1880" y="695" width="100" height="80"/></bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_Closed_di" bpmnElement="End_Closed"><dc:Bounds x="2062" y="717" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="2046" y="758" width="68" height="15"/></bpmndi:BPMNLabel></bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1"><di:waypoint x="298" y="170"/><di:waypoint x="380" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2"><di:waypoint x="480" y="170"/><di:waypoint x="555" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3"><di:waypoint x="605" y="170"/><di:waypoint x="680" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4"><di:waypoint x="580" y="195"/><di:waypoint x="580" y="435"/><di:waypoint x="680" y="435"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_5_di" bpmnElement="Flow_5"><di:waypoint x="580" y="195"/><di:waypoint x="580" y="585"/><di:waypoint x="680" y="585"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_6_di" bpmnElement="Flow_6"><di:waypoint x="780" y="170"/><di:waypoint x="855" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_7_di" bpmnElement="Flow_7"><di:waypoint x="780" y="435"/><di:waypoint x="880" y="435"/><di:waypoint x="880" y="195"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_8_di" bpmnElement="Flow_8"><di:waypoint x="780" y="585"/><di:waypoint x="880" y="585"/><di:waypoint x="880" y="195"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_9_di" bpmnElement="Flow_9"><di:waypoint x="905" y="170"/><di:waypoint x="1005" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10_di" bpmnElement="Flow_10"><di:waypoint x="1055" y="170"/><di:waypoint x="1130" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11_di" bpmnElement="Flow_11"><di:waypoint x="1230" y="170"/><di:waypoint x="1280" y="170"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_12_di" bpmnElement="Flow_12"><di:waypoint x="1380" y="170"/><di:waypoint x="1405" y="170"/><di:waypoint x="1405" y="735"/><di:waypoint x="1430" y="735"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13_di" bpmnElement="Flow_13"><di:waypoint x="1530" y="735"/><di:waypoint x="1605" y="735"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14_di" bpmnElement="Flow_14"><di:waypoint x="1630" y="710"/><di:waypoint x="1630" y="280"/><di:waypoint x="1730" y="280"/><bpmndi:BPMNLabel><dc:Bounds x="1636" y="691" width="15" height="15"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15_di" bpmnElement="Flow_15"><di:waypoint x="1655" y="735"/><di:waypoint x="1730" y="735"/><bpmndi:BPMNLabel><dc:Bounds x="1661" y="716" width="20" height="15"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16_di" bpmnElement="Flow_16"><di:waypoint x="1780" y="320"/><di:waypoint x="1780" y="340"/><di:waypoint x="1030" y="340"/><di:waypoint x="1030" y="195"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17_di" bpmnElement="Flow_17"><di:waypoint x="1830" y="735"/><di:waypoint x="1880" y="735"/></bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18_di" bpmnElement="Flow_18"><di:waypoint x="1980" y="735"/><di:waypoint x="2062" y="735"/></bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Note_Timetable_di" bpmnElement="Note_Timetable"><dc:Bounds x="1780" y="410" width="230" height="44"/></bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>