<mxfile host="app.diagrams.net" modified="2026-04-22T08:00:00.000Z" agent="Codex" version="25.0.2">
  <diagram id="hris-engine-overview" name="HRIS Engine Overview">
    <mxGraphModel dx="1662" dy="931" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2200" pageHeight="1800" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <mxCell id="title" value="HRIS Engine Overview - AHSP" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1">
          <mxGeometry x="30" y="20" width="520" height="30" as="geometry" />
        </mxCell>
        <mxCell id="subtitle" value="High-level flow untuk engine operasional HRIS: security, master data, attendance, approval, payroll, dan output." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;fontColor=#475569;" vertex="1" parent="1">
          <mxGeometry x="30" y="52" width="900" height="20" as="geometry" />
        </mxCell>

        <mxCell id="sec_security" value="1. Akses &amp; Security Layer" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#cbd5e1;fillColor=#f8fafc;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="90" width="2050" height="120" as="geometry" />
        </mxCell>
        <mxCell id="sec_master" value="2. Master Data Foundation" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#bfdbfe;fillColor=#eff6ff;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="230" width="2050" height="240" as="geometry" />
        </mxCell>
        <mxCell id="sec_tx" value="3. HR Transactions &amp; Approval Flow" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#fde68a;fillColor=#fffbeb;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="490" width="2050" height="220" as="geometry" />
        </mxCell>
        <mxCell id="sec_att" value="4. Attendance Engine" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#bbf7d0;fillColor=#f0fdf4;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="730" width="2050" height="260" as="geometry" />
        </mxCell>
        <mxCell id="sec_pay" value="5. Payroll, BPJS, Tax &amp; Compensation Engine" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#d8b4fe;fillColor=#faf5ff;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="1010" width="2050" height="250" as="geometry" />
        </mxCell>
        <mxCell id="sec_out" value="6. Output, Monitoring &amp; Automation" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=#fecdd3;fillColor=#fff1f2;fontSize=16;fontStyle=1;fontColor=#0f172a;align=left;verticalAlign=top;spacingTop=12;spacingLeft=14;" vertex="1" parent="1">
          <mxGeometry x="30" y="1280" width="2050" height="180" as="geometry" />
        </mxCell>

        <mxCell id="login" value="Login UI&#xa;Middleware: auth, ip.block, menu.access" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="130" width="240" height="52" as="geometry" />
        </mxCell>
        <mxCell id="role" value="Role / Menu Access&#xa;User session &amp; layout profile" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="370" y="130" width="230" height="52" as="geometry" />
        </mxCell>
        <mxCell id="sched" value="Scheduler / Queue Control&#xa;Run now, health, background jobs" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#64748b;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="670" y="130" width="250" height="52" as="geometry" />
        </mxCell>

        <mxCell id="karyawan" value="Master Karyawan&#xa;- biodata&#xa;- area / jabatan&#xa;- dokumen pendukung&#xa;- signature link kontrak / offering" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="280" width="260" height="110" as="geometry" />
        </mxCell>
        <mxCell id="org" value="Master Organisasi&#xa;- Department&#xa;- Area / Client / Project&#xa;- Jabatan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="380" y="280" width="230" height="100" as="geometry" />
        </mxCell>
        <mxCell id="approval" value="Master Approval&#xa;Flow + Step approval reusable" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="660" y="280" width="230" height="82" as="geometry" />
        </mxCell>
        <mxCell id="configwork" value="Master Konfigurasi Kerja&#xa;- Kalender&#xa;- Profil Jam Kerja&#xa;- Shift Schedule&#xa;- Pembulatan / Perkalian Jam" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="930" y="280" width="280" height="120" as="geometry" />
        </mxCell>
        <mxCell id="configpay" value="Master Payroll Config&#xa;- Profil Gaji&#xa;- Profil Bulan + Assignment&#xa;- Komponen Pendapatan / Potongan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1260" y="280" width="290" height="110" as="geometry" />
        </mxCell>
        <mxCell id="configstat" value="Compliance Master&#xa;- BPJS + rate history + ceiling&#xa;- Pajak / tax setting" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#2563eb;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1600" y="280" width="250" height="92" as="geometry" />
        </mxCell>

        <mxCell id="leave" value="Leave Request&#xa;draft - submit - approve / reject" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="560" width="220" height="70" as="geometry" />
        </mxCell>
        <mxCell id="forget" value="Forgetting Clock Request&#xa;manual fix / import / approve" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="330" y="560" width="230" height="70" as="geometry" />
        </mxCell>
        <mxCell id="reimb" value="Reimbursement Request&#xa;attachment - submit - approve" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="600" y="560" width="230" height="70" as="geometry" />
        </mxCell>
        <mxCell id="spl" value="Surat Perintah Lembur (SPL)&#xa;manual / import / review candidate / separate payout" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="870" y="548" width="300" height="88" as="geometry" />
        </mxCell>
        <mxCell id="approvalengine" value="Approval Engine Runtime&#xa;semua transaksi HR masuk ke flow step, approver, status, history" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#b45309;fontColor=#0f172a;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="1240" y="550" width="300" height="84" as="geometry" />
        </mxCell>
        <mxCell id="docsig" value="Employee Contract / Offering Signature&#xa;link publik untuk approval tanda tangan digital" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d97706;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1600" y="550" width="280" height="78" as="geometry" />
        </mxCell>

        <mxCell id="source_machine" value="Attendance Sources&#xa;- machine log import&#xa;- public API sync&#xa;- mobile session / site assignment&#xa;- manual log" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#16a34a;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="800" width="270" height="110" as="geometry" />
        </mxCell>
        <mxCell id="planning" value="Planning Layer&#xa;Prioritas jadwal:&#xa;1) Master Shift Schedule&#xa;2) Profil Bulan assignment fallback&#xa;3) Kalender / holiday rules" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#16a34a;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="390" y="790" width="290" height="130" as="geometry" />
        </mxCell>
        <mxCell id="detect" value="Attendance Detection Engine&#xa;run detect / rebuild planning / queue process&#xa;mapping punch, shift, lateness, work hours" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#15803d;fontColor=#0f172a;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="740" y="790" width="320" height="120" as="geometry" />
        </mxCell>
        <mxCell id="review" value="Attendance Review V1 / V2&#xa;- review harian&#xa;- calculation detail&#xa;- approve / reject / manual adjust&#xa;- discipline / warning letter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#16a34a;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1120" y="790" width="310" height="120" as="geometry" />
        </mxCell>
        <mxCell id="reviewtospl" value="Auto OT / SPL Candidate Layer&#xa;hasil review bisa generate candidate SPL atau separate payout" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#16a34a;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1490" y="800" width="310" height="96" as="geometry" />
        </mxCell>

        <mxCell id="profilbulan" value="Profil Bulan Active Assignment&#xa;per karyawan: shift, profil gaji, kontrak, HK, overrides, export grouping" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9333ea;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="1080" width="290" height="110" as="geometry" />
        </mxCell>
        <mxCell id="payrollengine" value="Payroll Engine&#xa;menggabungkan: attendance approved + SPL + leave + forgetting clock + komponen + cycle pembayaran" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f3e8ff;strokeColor=#7e22ce;fontColor=#0f172a;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="420" y="1070" width="340" height="125" as="geometry" />
        </mxCell>
        <mxCell id="bpjsengine" value="BPJS &amp; Tax Deduction Engine&#xa;- suggestion basis dari gaji pokok jika kosong&#xa;- program aktif per karyawan&#xa;- ikut komponen potongan payroll saat relevan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9333ea;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="820" y="1070" width="330" height="125" as="geometry" />
        </mxCell>
        <mxCell id="threngine" value="THR / Bonus / Separate Payout&#xa;- THR progresif&#xa;- SPL special payout&#xa;- emergency / shutdown / special compensation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9333ea;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1210" y="1080" width="310" height="110" as="geometry" />
        </mxCell>
        <mxCell id="paystatus" value="Payment Status &amp; Cycle Control&#xa;weekly / 2 minggu / bulanan&#xa;mark paid / unmark / bulk cycle update" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9333ea;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1580" y="1080" width="280" height="110" as="geometry" />
        </mxCell>

        <mxCell id="outputs" value="Outputs&#xa;- Slip gaji&#xa;- Export Excel / PDF&#xa;- Tax proof&#xa;- Report bulanan&#xa;- THR report" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#e11d48;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="70" y="1335" width="260" height="88" as="geometry" />
        </mxCell>
        <mxCell id="dash" value="Dashboard &amp; Monitoring&#xa;- widget summary&#xa;- queue health&#xa;- report attendance / check-in" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#e11d48;fontColor=#0f172a;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="410" y="1335" width="260" height="88" as="geometry" />
        </mxCell>
        <mxCell id="ops" value="HR / Payroll / Finance Ops&#xa;review, koreksi, approve, publish, bayar" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe4e6;strokeColor=#be123c;fontColor=#0f172a;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="760" y="1335" width="260" height="88" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Catatan penting&#xa;1) Approval flow reusable dipakai transaksi HR&#xa;2) Attendance review adalah jembatan utama ke payroll&#xa;3) Profil Bulan jadi pusat assignment payroll bulanan" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#fb923c;fontColor=#7c2d12;fontSize=13;" vertex="1" parent="1">
          <mxGeometry x="1110" y="1325" width="460" height="105" as="geometry" />
        </mxCell>

        <mxCell id="e1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;endArrow=block;endFill=1;" edge="1" parent="1" source="login" target="role">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;endArrow=block;endFill=1;" edge="1" parent="1" source="role" target="sched">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#2563eb;endArrow=block;endFill=1;" edge="1" parent="1" source="karyawan" target="leave">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#2563eb;endArrow=block;endFill=1;" edge="1" parent="1" source="karyawan" target="forget">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#2563eb;endArrow=block;endFill=1;" edge="1" parent="1" source="karyawan" target="reimb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#2563eb;endArrow=block;endFill=1;" edge="1" parent="1" source="karyawan" target="spl">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#2563eb;endArrow=block;endFill=1;" edge="1" parent="1" source="approval" target="approvalengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#d97706;endArrow=block;endFill=1;" edge="1" parent="1" source="leave" target="approvalengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#d97706;endArrow=block;endFill=1;" edge="1" parent="1" source="forget" target="approvalengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#d97706;endArrow=block;endFill=1;" edge="1" parent="1" source="reimb" target="approvalengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#d97706;endArrow=block;endFill=1;" edge="1" parent="1" source="spl" target="approvalengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#d97706;endArrow=block;endFill=1;" edge="1" parent="1" source="karyawan" target="docsig">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;" edge="1" parent="1" source="source_machine" target="detect">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;" edge="1" parent="1" source="configwork" target="planning">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;" edge="1" parent="1" source="configpay" target="planning">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;" edge="1" parent="1" source="planning" target="detect">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;" edge="1" parent="1" source="detect" target="review">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e18" value="candidate / shortcut" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="review" target="reviewtospl">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e19" value="generate SPL" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="reviewtospl" target="spl">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e20" value="approved leave / fix request update review" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#16a34a;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="approvalengine" target="review">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;" edge="1" parent="1" source="configpay" target="profilbulan">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;" edge="1" parent="1" source="profilbulan" target="payrollengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e23" value="approved attendance result" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="review" target="payrollengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e24" value="approved SPL / separate payout" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="spl" target="payrollengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e25" value="component rates / basis" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="configstat" target="bpjsengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e26" value="deduction / compliance layer" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="bpjsengine" target="payrollengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e27" value="THR / bonus / special SPL" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="payrollengine" target="threngine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e28" value="payment cycle / paid status" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#9333ea;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="payrollengine" target="paystatus">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <mxCell id="e29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#e11d48;endArrow=block;endFill=1;" edge="1" parent="1" source="payrollengine" target="outputs">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#e11d48;endArrow=block;endFill=1;" edge="1" parent="1" source="review" target="dash">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#e11d48;endArrow=block;endFill=1;" edge="1" parent="1" source="paystatus" target="ops">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e32" value="queue / automation triggers" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;dashed=1;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="sched" target="detect">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e33" value="scheduled payroll ops" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;dashed=1;endArrow=block;endFill=1;fontSize=11;" edge="1" parent="1" source="sched" target="payrollengine">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
