-- Dump for table: dashboard_canifa.saved_reports
-- Extracted rows: 6

TRUNCATE TABLE "dashboard_canifa"."saved_reports" CASCADE;

INSERT INTO "dashboard_canifa"."saved_reports" ("id", "user_id", "title", "prompt", "html_content", "version", "parent_id", "tools_used", "cycles_count", "generation_time_ms", "created_at", "conversation_id") VALUES
(1, NULL, 'làm cho anh báo cáo về chi phí hôm nay', 'làm cho anh báo cáo về chi phí hôm nay', '<button class="print-btn no-print" onclick="window.print()">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">COST<br>AI</div>
          <div class="org-info">
            <span class="org-name">Báo cáo Chi phí Hệ thống AI</span>
            <span class="org-dept">Phân tích vận hành & chi phí</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>COST-RPT-2026-0324</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo chi phí hôm nay</div>
        <h1 class="cover-title">Báo cáo Chi phí ngày 24/03/2026<br>Hệ thống traces & cost</h1>
        <p class="cover-subtitle">Tổng hợp chi phí thực tế theo ngày, so sánh 6 ngày gần nhất và đánh giá rủi ro ngân sách</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ dữ liệu</span><span class="cover-metaval">18/03 – 24/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Đơn vị tiền tệ</span><span class="cover-metaval">USD</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Dữ liệu lấy từ hệ thống theo truy vấn thực tế, không bổ sung số giả định ngoài tập dữ liệu.</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Báo cáo Chi phí 24/03/2026</span><span class="rh-right">Trang 2 / 7</span></div>
  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Chi phí hôm nay và so sánh liền trước</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Xu hướng 6 ngày: traces, tổng cost, cost/trace</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Phân tích đa góc nhìn: vận hành, chi phí, rủi ro</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Dự phóng chi phí ngắn hạn</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
    <div class="toc-item"><span class="toc-num">6.</span><span class="toc-text">Kết luận & khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">7</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Ngày 24/03/2026 ghi nhận <strong>49 traces</strong> với <strong>0.623677 USD</strong> tổng chi phí, tương ứng <strong>0.012728 USD/trace</strong>. So với ngày liền trước 23/03/2026, khối lượng traces tăng mạnh từ 13 lên 49 (tăng khoảng 276.9%), trong khi tổng chi phí tăng từ 0.256707 lên 0.623677 USD (tăng khoảng 143.0%).</p>
    <p>Điểm tích cực là hiệu suất chi phí trên mỗi trace đã cải thiện rõ: từ <strong>0.019747</strong> xuống <strong>0.012728 USD/trace</strong>, giảm khoảng <strong>35.5%</strong>. So với trung bình 6 ngày (0.019155 USD/trace), hôm nay thấp hơn khoảng <strong>33.6%</strong>, cho thấy hệ thống đang xử lý khối lượng cao với đơn giá thấp hơn.</p>
    <p>Tuy nhiên, rủi ro ngân sách vẫn hiện hữu do biến động tải: ngày 20/03 có 72 traces và chi phí 1.090117 USD, gấp 1.75 lần hôm nay. Nếu xuất hiện lại các ngày tải cao, ngân sách ngày có thể vượt 1 USD. Đánh giá tổng quan: <strong>tích cực nhưng cần kiểm soát đỉnh tải</strong>.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">Tổng chi phí hôm nay</span>
      <span class="kpi-value">0.623677<span class="kpi-unit">USD</span></span>
      <span class="kpi-change up">↑ 143.0% so với 23/03</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">Số traces hôm nay</span>
      <span class="kpi-value">49<span class="kpi-unit">traces</span></span>
      <span class="kpi-change up">↑ 276.9% so với 23/03</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">Chi phí/trace hôm nay</span>
      <span class="kpi-value">0.012728<span class="kpi-unit">USD</span></span>
      <span class="kpi-change up">↓ 35.5% (hiệu quả tốt hơn)</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Tổng cost 6 ngày</span>
      <span class="kpi-value">2.807297<span class="kpi-unit">USD</span></span>
      <span class="kpi-change nt">TB 0.467883 USD/ngày</span>
    </div>
  </div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">2 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Chi phí hôm nay và so sánh</span><span class="rh-right">Trang 3 / 7</span></div>
  <h2 data-n="2">Chi phí hôm nay và so sánh liền trước</h2>
  <p class="lead">Hôm nay 24/03/2026, hệ thống chạy 49 traces với 0.623677 USD, phản ánh mức hoạt động cao hơn ngày 23/03/2026 nhưng chi phí đơn vị tốt hơn đáng kể.</p>
  <p>Về WHAT, dữ liệu cho thấy ngày 24/03 có tổng cost 0.623677 USD so với 0.256707 USD ngày 23/03; chênh lệch tuyệt đối là 0.366970 USD. Đồng thời traces tăng 36 đơn vị (từ 13 lên 49), tức tải hệ thống tăng nhanh hơn mức tăng chi phí.</p>
  <p>Về WHY, cost/trace giảm từ 0.019747 xuống 0.012728 USD/trace cho thấy có thể xuất hiện hiệu ứng quy mô: khi số trace tăng, chi phí phân bổ trên mỗi trace thấp hơn. So với mốc cao 0.027572 USD/trace ngày 18/03, hôm nay chỉ bằng khoảng 46.1% mức đó.</p>
  <p>Về SO WHAT, nếu duy trì cost/trace 0.012728 USD, mỗi 100 traces sẽ tiêu tốn khoảng 1.2728 USD; trong khi với mức 0.019747 USD/trace của ngày 23/03 thì 100 traces cần 1.9747 USD. Chênh lệch 0.7019 USD/100 traces là tác động tài chính tích cực. Đánh giá: <strong>tích cực</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">So sánh 23/03 và 24/03: Traces và Tổng chi phí</span></div>
    <div class="fig-wrap"><canvas id="c-compare-2day" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_8.</div>
  </div>

  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Traces tăng 276.9% nhưng cost/trace giảm 35.5%, thể hiện hiệu suất chi phí cải thiện khi tải tăng.</p></div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chỉ số chính ngày 23/03 và 24/03</div>
    <table>
      <thead><tr><th>Ngày</th><th class="r">Traces</th><th class="r">Tổng cost (USD)</th><th class="r">Cost/trace (USD)</th></tr></thead>
      <tbody>
        <tr><td>2026-03-23</td><td class="r">13</td><td class="r">0.256707</td><td class="r">0.019747</td></tr>
        <tr><td>2026-03-24</td><td class="r">49</td><td class="r">0.623677 <span class="badge up">↑ 143.0%</span></td><td class="r">0.012728 <span class="badge up">↓ 35.5%</span></td></tr>
      </tbody>
    </table>
  </div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">3 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Xu hướng 6 ngày</span><span class="rh-right">Trang 4 / 7</span></div>
  <h2 data-n="3">Xu hướng 6 ngày: khối lượng và chi phí</h2>
  <p class="lead">Trong 6 ngày có dữ liệu, tổng cộng ghi nhận 195 traces và 2.807297 USD chi phí; trung bình 32.5 traces/ngày và 0.467883 USD/ngày.</p>
  <p>Ngày có tải cao nhất là 20/03 với 72 traces và cũng là ngày chi phí cao nhất 1.090117 USD, chiếm khoảng 38.8% tổng chi phí 6 ngày. Trong khi đó ngày 21/03 chỉ 1 trace với 0.027257 USD, thể hiện độ biến động nhu cầu rất lớn giữa các ngày.</p>
  <p>Về COMPARED TO, cost/trace bình quân 6 ngày là 0.019155 USD; hôm nay ở mức 0.012728 USD thấp hơn 0.006427 USD. Tuy nhiên, hai ngày 18/03 và 21/03 có cost/trace lần lượt 0.027572 và 0.027257 USD, cao hơn hôm nay hơn 2 lần, là tín hiệu cần theo dõi rủi ro ngày tải thấp nhưng đơn giá cao.</p>
  <p>Về SO WHAT, với nền biến động hiện tại, ngân sách ngày khó ổn định nếu không có ngưỡng cảnh báo theo traces và cost/trace. Đánh giá: <strong>trung tính, có rủi ro dao động</strong>.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Traces theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-traces-6d" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_8.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">Tổng chi phí theo ngày (USD)</span></div>
      <div class="fig-wrap"><canvas id="c-cost-6d" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_8.</div>
    </div>
  </div>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 3.3</span><span class="fig-title">Chi phí trên mỗi trace theo ngày</span></div>
    <div class="fig-wrap"><canvas id="c-cpt-6d" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_8.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Biến động traces từ 1 đến 72/ngày làm biên độ chi phí ngày dao động từ 0.027257 đến 1.090117 USD; cần ngưỡng cảnh báo sớm.</p></div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">4 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích đa góc nhìn</span><span class="rh-right">Trang 5 / 7</span></div>
  <h2 data-n="4">Phân tích đa góc nhìn: vận hành, chi phí, tăng trưởng, rủi ro</h2>
  <p>Góc vận hành: ngày 24/03 xử lý 49 traces, thấp hơn đỉnh 72 traces ngày 20/03 khoảng 31.9%, cho thấy hệ thống hôm nay chưa chạm tải đỉnh. Tuy vậy mức này vẫn cao hơn trung bình 32.5 traces/ngày khoảng 50.8%, phản ánh hoạt động đang ở vùng cao hơn bình quân.</p>
  <p>Góc chi phí: cost hôm nay 0.623677 USD cao hơn trung bình ngày 0.467883 USD khoảng 33.3%, nhưng cost/trace 0.012728 USD lại thấp hơn trung bình 6 ngày 33.6%. Nghĩa là tổng tiền tăng chủ yếu do khối lượng, không phải do đơn giá kém.</p>
  <p>Góc tăng trưởng: từ 23/03 sang 24/03, traces tăng 276.9% và cost tăng 143.0%; tốc độ cost thấp hơn tốc độ tải là tín hiệu tăng trưởng hiệu quả. Nếu xu hướng này duy trì, hệ thống có thể mở rộng thêm tải mà không tăng chi phí tương ứng 1:1.</p>
  <p>Góc rủi ro: các ngày tải rất thấp (1 hoặc 4 traces) lại có cost/trace cao 0.027257–0.027572 USD, cao hơn hôm nay hơn 2 lần. Nếu số ngày tải thấp tăng, hiệu quả bình quân sẽ suy giảm nhanh. Đánh giá: <strong>tích cực có điều kiện, cần quản trị biến động tải</strong>.</p>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 4.1 — Tổng hợp 6 ngày theo mức độ ảnh hưởng chi phí</div>
    <table>
      <thead><tr><th>Ngày</th><th class="r">Traces</th><th class="r">Tổng cost (USD)</th><th class="r">Cost/trace (USD)</th></tr></thead>
      <tbody>
        <tr><td>2026-03-18</td><td class="r">4</td><td class="r">0.110287</td><td class="r">0.027572 <span class="badge dn">cao</span></td></tr>
        <tr><td>2026-03-19</td><td class="r">56</td><td class="r">0.699252</td><td class="r">0.012487 <span class="badge up">thấp</span></td></tr>
        <tr><td>2026-03-20</td><td class="r">72</td><td class="r">1.090117</td><td class="r">0.015141 <span class="badge nt">trung bình</span></td></tr>
        <tr><td>2026-03-21</td><td class="r">1</td><td class="r">0.027257</td><td class="r">0.027257 <span class="badge dn">cao</span></td></tr>
        <tr><td>2026-03-23</td><td class="r">13</td><td class="r">0.256707</td><td class="r">0.019747 <span class="badge nt">trung bình</span></td></tr>
        <tr><td>2026-03-24</td><td class="r">49</td><td class="r">0.623677</td><td class="r">0.012728 <span class="badge up">thấp</span></td></tr>
        <tr class="trow-total"><td>Tổng/Trung bình</td><td class="r">195</td><td class="r">2.807297</td><td class="r">0.019155</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> 2 ngày 19/03 và 24/03 có cost/trace ~0.0125–0.0127 USD, đây là “vùng hiệu quả” nên dùng làm benchmark nội bộ.</p></div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">5 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Dự phóng & rủi ro</span><span class="rh-right">Trang 6 / 7</span></div>
  <h2 data-n="5">Dự phóng chi phí ngắn hạn & đánh giá rủi ro</h2>
  <p>Dựa trên trung bình 6 ngày, chi phí kỳ vọng mỗi ngày là 0.467883 USD; tương đương khoảng 14.03649 USD cho 30 ngày nếu mức sử dụng giữ nguyên. Nếu bám theo mức hôm nay 0.623677 USD/ngày, chi phí 30 ngày là 18.71031 USD, cao hơn kịch bản trung bình khoảng 33.3%.</p>
  <p>Kịch bản tải cao theo mốc 20/03 (1.090117 USD/ngày) sẽ đưa chi phí 30 ngày lên 32.70351 USD, gấp 2.33 lần kịch bản trung bình. Ngược lại, kịch bản hiệu quả theo cost/trace hôm nay với quy mô 49 traces/ngày giữ chi phí ở 0.623677 USD/ngày.</p>
  <p>Về WHAT NEXT, cần đặt ngưỡng kiểm soát theo hai trục: tổng cost ngày và cost/trace. Ví dụ, nếu cost/trace vượt 0.020 USD (cao hơn 57.1% so với hôm nay), hệ thống nên cảnh báo để rà soát truy vấn đắt. Đồng thời nếu traces vượt 70/ngày (gần mức đỉnh 72), cần theo dõi ngân sách trong ngày theo giờ.</p>
  <p>Tác động kinh doanh là rõ ràng: chỉ riêng việc giữ cost/trace gần 0.0127 thay vì 0.0192 có thể giảm khoảng 33.6% chi phí đơn vị. Đánh giá: <strong>cần hành động sớm để ổn định ngân sách</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 5.1</span><span class="fig-title">Dự phóng chi phí 30 ngày theo 3 kịch bản</span></div>
    <div class="fig-wrap"><canvas id="c-forecast-30d" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> Tính toán từ sql_langfuse_8 (trung bình ngày, giá trị ngày 24/03, và đỉnh 20/03).</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Khoảng cách giữa kịch bản trung bình (14.04 USD/tháng) và đỉnh tải (32.70 USD/tháng) là 18.67 USD, cho thấy ngân sách nhạy với biến động khối lượng.</p></div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">6 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Kết luận & khuyến nghị</span><span class="rh-right">Trang 7 / 7</span></div>
  <h2 data-n="6">Kết luận & Khuyến nghị hành động</h2>
  <h3>6.1 Kết luận</h3>
  <p>Ngày 24/03/2026 có tổng chi phí 0.623677 USD với 49 traces; cost/trace 0.012728 USD đang ở vùng tốt và thấp hơn trung bình 6 ngày 33.6%. So với ngày 23/03, hệ thống mở rộng tải mạnh nhưng không làm xấu chi phí đơn vị. Kết luận chung: hiệu quả vận hành chi phí hôm nay <strong>tích cực</strong>.</p>

  <h3>6.2 Khuyến nghị</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Thiết lập cảnh báo khi <strong>cost/trace &gt; 0.020 USD</strong> để chặn sớm các phiên có đơn giá cao bất thường (so với mức 0.012728 hôm nay).</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Thiết lập cảnh báo tải khi <strong>traces/ngày &gt; 70</strong>, vì mốc 72 traces đi cùng chi phí 1.090117 USD/ngày.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">Dùng mức <strong>0.0125–0.0127 USD/trace</strong> (ngày 19/03 và 24/03) làm benchmark hiệu quả nội bộ cho tối ưu prompt và routing.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Báo cáo theo ngày cần bổ sung cặp chỉ số “traces + cost/trace” thay vì chỉ tổng cost, để tách rõ tác động do tải và do đơn giá.</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Theo dõi 7 ngày tiếp theo để xác nhận xu hướng: nếu cost/trace duy trì dưới 0.015 USD thì có thể coi là trạng thái ổn định.</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Lập ngân sách theo 3 kịch bản: trung bình 14.04 USD/tháng, hiện tại 18.71 USD/tháng, đỉnh tải 32.70 USD/tháng để chủ động giới hạn chi phí.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Dữ liệu truy vấn không trả về số liệu YoY/MoM dài hạn; mọi so sánh trong báo cáo dựa trên 6 ngày có dữ liệu thực tế.</p>

  <div class="sigblock">
    <div class="sig-item">
      <div class="sig-label">Người lập</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">AI Report Agent</div>
      <div class="sig-role">Phân tích dữ liệu chi phí</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Kiểm tra</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Phê duyệt</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
  </div>

  <div class="pf"><span class="pf-left">AI Cost Report</span><span class="pf-center">COST-RPT-2026-0324</span><span class="pf-right">7 / 7 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-compare-2day",{type:"bar",data:{
  labels:["2026-03-23","2026-03-24"],
  datasets:[
    {label:"Traces",data:[13,49],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false,yAxisID:"y"},
    {label:"Tổng cost (USD)",data:[0.256707,0.623677],backgroundColor:"#C8860A",borderRadius:4,borderSkipped:false,yAxisID:"y1"}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX(),y1:{position:"right",grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}}}})

new Chart("c-traces-6d",{type:"bar",data:{
  labels:["2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
  datasets:[{label:"Traces",data:[4,56,72,1,13,49],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-cost-6d",{type:"line",data:{
  labels:["2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
  datasets:[{label:"Tổng cost (USD)",data:[0.110287,0.699252,1.090117,0.027257,0.256707,0.623677],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-cpt-6d",{type:"line",data:{
  labels:["2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
  datasets:[{label:"Cost/trace (USD)",data:[0.027572,0.012487,0.015141,0.027257,0.019747,0.012728],borderColor:"#0D6E4F",backgroundColor:"rgba(13,110,79,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-forecast-30d",{type:"bar",data:{
  labels:["Kịch bản trung bình 6 ngày","Kịch bản theo hôm nay 24/03","Kịch bản đỉnh tải 20/03"],
  datasets:[{label:"Chi phí 30 ngày (USD)",data:[14.03649,18.71031,32.70351],backgroundColor:["#1A4A8C","#0D6E4F","#B91C1C"],borderRadius:4,borderSkipped:false}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>', 1, NULL, '["sql_langfuse_0", "sql_langfuse_1", "sql_langfuse_2", "sql_langfuse_3", "sql_langfuse_4", "sql_langfuse_5", "sql_langfuse_6", "sql_langfuse_7", "sql_langfuse_8"]', 2, 190520, '2026-03-25T04:48:02.869329+00:00', 'e7c7e64f-eff4-487f-b434-314cad678231'),
(2, NULL, 'cvhaof em', 'cvhaof em', '<button class="print-btn no-print" onclick="window.print()">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">CVHAOF<br>AI</div>
          <div class="org-info">
            <span class="org-name">CVHAOF — AI Analytics</span>
            <span class="org-dept">Bộ phận Phân tích Hiệu năng Hội thoại</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>CVH-RPT-2026-03</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo vận hành AI</div>
        <h1 class="cover-title">Báo cáo Hiệu năng, Chi phí<br>và Rủi ro hệ thống hội thoại</h1>
        <p class="cover-subtitle">Phân tích dữ liệu thực tế giai đoạn 11/03/2026–24/03/2026 và đối chiếu hành vi nhắn tin đến 25/03/2026</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ báo cáo</span><span class="cover-metaval">11/03 – 24/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Phê duyệt</span><span class="cover-metaval">—</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Tài liệu tự động tổng hợp từ Langfuse + PostgreSQL logs</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Báo cáo AI CVHAOF</span><span class="rh-right">Trang 2 / 7</span></div>

  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Tổng quan lưu lượng & chi phí</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Hiệu năng độ trễ và tail latency</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Hành vi người dùng & mức độ gắn kết</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Dự báo 30 ngày & rủi ro</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
    <div class="toc-item"><span class="toc-num">6.</span><span class="toc-text">Kết luận & khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">7</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Trong 14 ngày từ 11/03 đến 24/03/2026, hệ thống ghi nhận 482 traces, 482 sessions và 40 người dùng duy nhất; trung bình 34.43 traces/ngày. Tổng chi phí là 7.3361 USD, tương đương 0.01522 USD/trace, với tỷ lệ lỗi 0% trên toàn bộ dữ liệu.</p>
    <p>Độ trễ trung bình toàn kỳ là 12.828 giây/trace (user latency 9.249 giây), nhưng xuất hiện đuôi độ trễ cao ở nhiều ngày: p95 đạt 39.193 giây (23/03) và p99 lên 50.708 giây (13/03). Điều này cho thấy trải nghiệm trung bình chấp nhận được nhưng rủi ro “chậm bất thường” vẫn đáng kể ở phân khúc phiên nặng.</p>
    <p>Cấu trúc chi phí đang nghiêng mạnh về input token: 6.9909 USD, chiếm 95.3% tổng chi phí; output chỉ 0.3452 USD (4.7%). Dự báo 30 ngày theo trung bình hiện tại là 1033 traces và 15.72 USD, giúp lập ngân sách tương đối ổn định nhưng cần kiểm soát tail latency để tránh ảnh hưởng hài lòng người dùng.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)"><span class="kpi-label">Tổng traces</span><span class="kpi-value">482<span class="kpi-unit">traces</span></span><span class="kpi-change nt">14 ngày quan sát</span></div>
    <div class="kpi" style="--kpi-accent:var(--green)"><span class="kpi-label">Tổng chi phí</span><span class="kpi-value">7.3361<span class="kpi-unit">USD</span></span><span class="kpi-change nt">0.01522 USD/trace</span></div>
    <div class="kpi" style="--kpi-accent:var(--gold)"><span class="kpi-label">Độ trễ TB</span><span class="kpi-value">12.828<span class="kpi-unit">s</span></span><span class="kpi-change dn">p99 đỉnh 50.708s</span></div>
    <div class="kpi" style="--kpi-accent:var(--red)"><span class="kpi-label">Tỷ lệ lỗi</span><span class="kpi-value">0.0<span class="kpi-unit">%</span></span><span class="kpi-change up">Ổn định toàn kỳ</span></div>
  </div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">2 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Tổng quan lưu lượng & chi phí</span><span class="rh-right">Trang 3 / 7</span></div>

  <h2 data-n="2">Tổng quan lưu lượng & cấu trúc chi phí</h2>
  <p class="lead">Ngày 12/03 đạt đỉnh 123 traces với chi phí 1.6936 USD, trong khi ngày 21/03 chỉ có 1 trace và 0.0273 USD.</p>
  <p>Tổng thể 11 ngày có dữ liệu chi tiết cho thấy lưu lượng biến động mạnh từ 1 đến 123 traces/ngày. Chi phí ngày đi cùng lưu lượng (ví dụ 20/03 có 72 traces tương ứng 1.0901 USD), phản ánh mô hình chi phí theo usage khá tuyến tính.</p>
  <p>Xét hiệu quả đơn vị, cost/trace dao động 0.012487–0.027572 USD; các ngày lưu lượng rất thấp (18/03, 21/03) lại có cost/trace cao nhất trên 0.027 USD, cho thấy hiệu ứng “phân bổ chi phí cố định theo phiên” khi khối lượng ít.</p>
  <p>Về thành phần chi phí, input cost luôn chiếm 93.5%–97.9% mỗi ngày, còn output 2.1%–6.5%. Điều này hàm ý đòn bẩy tối ưu lớn nhất nằm ở rút gọn prompt đầu vào, thay vì chỉ cắt output.</p>
  <p>Đánh giá: xu hướng chi phí đang <strong>trung tính-tích cực</strong> vì dự báo tháng chỉ 15.72 USD, nhưng biến động unit cost ở ngày low volume cần theo dõi.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">Traces và tổng chi phí theo ngày</span></div>
    <div class="fig-wrap"><canvas id="c-trace-cost" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_1.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chi phí theo loại token (toàn kỳ)</div>
    <table>
      <thead><tr><th>Thành phần</th><th class="r">Chi phí (USD)</th><th class="r">Tỷ trọng</th></tr></thead>
      <tbody>
        <tr><td>Input cost</td><td class="r">6.9909</td><td class="r"><span class="badge dn">95.3%</span></td></tr>
        <tr><td>Output cost</td><td class="r">0.3452</td><td class="r"><span class="badge up">4.7%</span></td></tr>
        <tr class="trow-total"><td>Tổng</td><td class="r">7.3361</td><td class="r">100%</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> Với cost/trace trung bình 0.01522 USD, mỗi 100 traces tăng thêm sẽ tương ứng khoảng 1.522 USD chi phí.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">3 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Hiệu năng độ trễ</span><span class="rh-right">Trang 4 / 7</span></div>

  <h2 data-n="3">Hiệu năng độ trễ và tail latency</h2>
  <p class="lead">Độ trễ trung bình dao động 10.684–17.968 giây, nhưng p99 có thể tăng đến 50.708 giây.</p>
  <p>Ngày 19/03 có avg latency thấp nhất 10.684 giây (56 traces), trái ngược 18/03 đạt 17.967 giây (4 traces). Độ trễ cao không chỉ xuất hiện khi tải lớn; ngay cả ngày tải thấp vẫn có latency cao, gợi ý khả năng phụ thuộc nội dung câu hỏi hoặc context length.</p>
  <p>Khoảng cách giữa avg và p95/p99 rất rộng: ngày 23/03 avg 16.88 giây nhưng p95 39.193 giây và p99 39.72 giây; ngày 13/03 avg 14.186 giây nhưng p99 50.708 giây. Nghĩa là một nhóm truy vấn “đuôi dài” gây trải nghiệm chậm gấp 2–3 lần mức trung bình.</p>
  <p>So với user latency trung bình 9.249 giây toàn kỳ, trace latency 12.828 giây cao hơn 3.579 giây (~38.7%), cho thấy có overhead xử lý ngoài phần người dùng cảm nhận trực tiếp. Nếu giảm được tail latency, khả năng cải thiện thời gian end-to-end sẽ rõ rệt hơn chỉ tối ưu trung bình.</p>
  <p>Đánh giá: trạng thái hiệu năng <strong>trung tính-nghiêng tiêu cực</strong> do rủi ro tail latency cao.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Avg latency theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-lat-avg" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_10.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">p95 và p99 latency theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-lat-tail" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_10.</div>
    </div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> p99 ngày 13/03 chạm 50.708 giây, cao gấp 3.57 lần avg cùng ngày (14.186 giây), cần ưu tiên kiểm soát truy vấn bất thường.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">4 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Người dùng & tương tác</span><span class="rh-right">Trang 5 / 7</span></div>

  <h2 data-n="4">Phân tích người dùng, phiên và tin nhắn</h2>
  <p class="lead">Nhóm user tạo 333/482 traces (69.1%) với cost/trace 0.015403 USD, cao hơn guest 0.014812 USD.</p>
  <p>Dù chỉ có 8 user so với 32 guest, nhóm user có mức hoạt động sâu hơn: trung bình 3.88 ngày hoạt động, tối đa 9 ngày; trong khi guest chỉ 1.09 ngày, tối đa 2 ngày. Điều này cho thấy user là nhóm đóng góp usage cốt lõi, còn guest thiên về dùng thử.</p>
  <p>Dữ liệu phiên cho thấy traces/session luôn bằng 1.0 ở toàn bộ ngày, nghĩa là một trace đang tương ứng một phiên; về vận hành điều này đơn giản hóa theo dõi nhưng có thể làm tăng overhead phiên nếu quy trình tạo session chưa tối ưu tái sử dụng.</p>
  <p>Đối chiếu PostgreSQL, tổng tin nhắn ngày 25/03 đạt 420 (210 người, 210 bot), cao hơn 36 tin so với 24/03 (384). Tuy nhiên active identities tăng từ 51 lên 67 (~31.4%), nên số tin nhắn/identity giảm từ 7.53 xuống 6.27, gợi ý mở rộng chiều rộng người dùng hơn là tăng chiều sâu tương tác.</p>
  <p>Đánh giá: tình hình tăng trưởng người dùng là <strong>tích cực</strong>, nhưng cần chiến lược chuyển đổi guest sang user để tăng độ bền sử dụng.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 4.1</span><span class="fig-title">Cơ cấu traces theo loại actor</span></div>
    <div class="fig-wrap"><canvas id="c-actor-donut" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_3.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 4.1 — Chỉ số hoạt động theo loại actor</div>
    <table>
      <thead><tr><th>Nhóm</th><th class="r">Số actor</th><th class="r">Avg active days</th><th class="r">Max active days</th></tr></thead>
      <tbody>
        <tr><td>Guest</td><td class="r">32</td><td class="r">1.09</td><td class="r">2.0</td></tr>
        <tr><td>User</td><td class="r">8</td><td class="r">3.88</td><td class="r">9.0</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Tỷ lệ lỗi 0% ở cả user và guest cho thấy độ ổn định xử lý tốt dù mức độ hoạt động giữa hai nhóm khác nhau.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">5 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Dự báo & rủi ro</span><span class="rh-right">Trang 6 / 7</span></div>

  <h2 data-n="5">Dự báo 30 ngày và đánh giá rủi ro vận hành</h2>
  <p class="lead">Nếu giữ nhịp hiện tại, hệ thống dự kiến 1033 traces/tháng với ngân sách 15.72 USD.</p>
  <p>Mức bình quân 34.43 traces/ngày và 0.524 USD/ngày tạo nền ngân sách thấp, dễ mở rộng thử nghiệm sản phẩm. Tuy nhiên biến động theo ngày rất lớn (1 đến 123 traces) khiến năng lực cấp phát tài nguyên cần linh hoạt theo đỉnh thay vì theo trung bình.</p>
  <p>Các ngày có cost/trace cao nhất (18/03: 0.027572; 21/03: 0.027257) đồng thời có latency cao (17.968s và 15.72s), cho thấy khi lưu lượng thấp, hiệu quả chi phí và hiệu năng đều giảm. Đây là điểm nghẽn cần xử lý bằng gom batch hoặc warm-up để giảm cold start.</p>
  <p>Rủi ro dữ liệu: một truy vấn phân vị thất bại (sql_langfuse_5) do lỗi hàm approx_percentile cho kiểu decimal, làm thiếu góc nhìn percentile chi phí. Nếu không khắc phục, dashboard có thể thiếu cảnh báo sớm về phân phối chi phí bất thường.</p>
  <p>Đánh giá: triển vọng chi phí <strong>tích cực</strong>, nhưng rủi ro kỹ thuật và tail performance ở mức <strong>cần kiểm soát chủ động</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 5.1</span><span class="fig-title">Xu hướng traces/ngày và mức dự báo trung bình</span></div>
    <div class="fig-wrap"><canvas id="c-forecast" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_1, sql_langfuse_9.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Lỗi truy vấn percentile ở sql_langfuse_5 cần sửa ngay để tránh “mù dữ liệu” trong quản trị chi phí theo phân vị.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">6 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Kết luận & hành động</span><span class="rh-right">Trang 7 / 7</span></div>

  <h2 data-n="6">Kết luận & Khuyến nghị</h2>
  <h3>6.1 Kết luận</h3>
  <p>Hệ thống đang vận hành ổn định với 0% lỗi trên 482 traces, tổng chi phí 7.3361 USD và đơn giá 0.01522 USD/trace. Điểm cần cải thiện chính không nằm ở lỗi hệ thống mà ở tail latency cao (p99 tối đa 50.708 giây) và biến động unit economics vào ngày tải thấp.</p>

  <h3>6.2 Khuyến nghị hành động ưu tiên</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Thiết lập SLO latency theo phân vị: mục tiêu p95 &lt; 30 giây, theo dõi hằng ngày từ chuỗi p95/p99 hiện có.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Tối ưu prompt đầu vào vì input đang chiếm 95.3% tổng chi phí; ưu tiên rút gọn context không cần thiết.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">Triển khai cơ chế warm-up cho ngày tải thấp để giảm tình trạng cost/trace tăng lên mức 0.027+ USD.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Xây funnel chuyển đổi guest (32 actor, 1.09 ngày hoạt động) sang user để tăng độ gắn kết dài hạn.</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Khắc phục truy vấn percentile (sql_langfuse_5) bằng ép kiểu phù hợp trước khi gọi hàm phân vị.</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Thiết lập cảnh báo khi p99 vượt 40 giây hoặc cost/trace vượt 0.02 USD để phản ứng vận hành sớm.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Dự báo 30 ngày được ngoại suy tuyến tính từ trung bình quan sát (34.43 traces/ngày; 0.524 USD/ngày).</p>

  <div class="sigblock">
    <div class="sig-item"><div class="sig-label">Người lập</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">AI Report Agent</div><div class="sig-role">CVHAOF Analytics</div></div>
    <div class="sig-item"><div class="sig-label">Kiểm tra</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">—</div><div class="sig-role">Data Team</div></div>
    <div class="sig-item"><div class="sig-label">Phê duyệt</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">—</div><div class="sig-role">Management</div></div>
  </div>

  <div class="pf" style="margin-top:6mm"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">7 / 7 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-trace-cost",{type:"bar",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"Traces",data:[52,123,56,12,44,4,56,72,1,13,49],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false,yAxisID:"y"},
{label:"Chi phí USD",data:[0.7018,1.6936,1.0565,0.2715,0.8052,0.1103,0.6993,1.0901,0.0273,0.2567,0.6237],backgroundColor:"#C8860A",borderRadius:4,borderSkipped:false,yAxisID:"y1"}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX(),y1:{position:"right",grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}}}})

new Chart("c-lat-avg",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[{label:"Avg latency (s)",data:[12.448,13.365,14.186,15.463,12.289,17.967,10.684,11.878,15.72,16.88,12.46],borderColor:"#0D6E4F",backgroundColor:"rgba(13,110,79,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-lat-tail",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"p95",data:[30.387,29.727,36.498,31.546,23.163,25.53,21.359,23.558,15.72,39.193,21.418],borderColor:"#7C3AED",backgroundColor:"rgba(124,58,237,.22)",fill:true,tension:0.4,pointRadius:3.5},
{label:"p99",data:[48.011,35.764,50.708,32.34,35.18,25.53,28.924,38.981,15.72,39.72,24.16],borderColor:"#B91C1C",backgroundColor:"rgba(185,28,28,.22)",fill:true,tension:0.4,pointRadius:3.5}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-actor-donut",{type:"doughnut",data:{
labels:["User","Guest"],
datasets:[{data:[333,149],backgroundColor:["#1A4A8C","#C8860A"],borderWidth:2,borderColor:"#fff"}]
},options:{responsive:true,maintainAspectRatio:false,cutout:"65%",plugins:{tooltip:TIP,legend:{position:"bottom"}}}})

new Chart("c-forecast",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"Traces thực tế",data:[52,123,56,12,44,4,56,72,1,13,49],borderColor:"#0891B2",backgroundColor:"rgba(8,145,178,.22)",fill:true,tension:0.4,pointRadius:3.5},
{label:"Mức TB dự báo 34.43",data:[34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:false,tension:0.4,pointRadius:3.5}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>', 1, NULL, '["sql_langfuse_0", "sql_langfuse_1", "sql_langfuse_2", "sql_langfuse_3", "sql_langfuse_4", "sql_langfuse_5", "sql_langfuse_6", "sql_langfuse_7", "sql_postgres_8", "sql_langfuse_9", "sql_langfuse_10", "sql_langfuse_11", "sql_langfuse_12", "sql_postgres_13"]', 3, 218443, '2026-03-25T10:00:33.956918+00:00', '9c3c01f8-8a8b-46bb-9596-0fe5d8c64944'),
(3, NULL, 'cvhaof em', 'cvhaof em', '<button class="print-btn no-print" onclick="window.print()" fdprocessedid="ahlr6ya">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">CVHAOF<br>AI</div>
          <div class="org-info">
            <span class="org-name">CVHAOF — AI Analytics</span>
            <span class="org-dept">Bộ phận Phân tích Hiệu năng Hội thoại</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>CVH-RPT-2026-03</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo vận hành AI</div>
        <h1 class="cover-title">Báo cáo Hiệu năng, Chi phí<br>và Rủi ro hệ thống hội thoại</h1>
        <p class="cover-subtitle">Phân tích dữ liệu thực tế giai đoạn 11/03/2026–24/03/2026 và đối chiếu hành vi nhắn tin đến 25/03/2026</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ báo cáo</span><span class="cover-metaval">11/03 – 24/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Phê duyệt</span><span class="cover-metaval">—</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Tài liệu tự động tổng hợp từ Langfuse + PostgreSQL logs</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Báo cáo AI CVHAOF</span><span class="rh-right">Trang 2 / 7</span></div>

  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Tổng quan lưu lượng &amp; chi phí</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Hiệu năng độ trễ và tail latency</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Hành vi người dùng &amp; mức độ gắn kết</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Dự báo 30 ngày &amp; rủi ro</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
    <div class="toc-item"><span class="toc-num">6.</span><span class="toc-text">Kết luận &amp; khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">7</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Trong 14 ngày từ 11/03 đến 24/03/2026, hệ thống ghi nhận 482 traces, 482 sessions và 40 người dùng duy nhất; trung bình 34.43 traces/ngày. Tổng chi phí là 7.3361 USD, tương đương 0.01522 USD/trace, với tỷ lệ lỗi 0% trên toàn bộ dữ liệu.</p>
    <p>Độ trễ trung bình toàn kỳ là 12.828 giây/trace (user latency 9.249 giây), nhưng xuất hiện đuôi độ trễ cao ở nhiều ngày: p95 đạt 39.193 giây (23/03) và p99 lên 50.708 giây (13/03). Điều này cho thấy trải nghiệm trung bình chấp nhận được nhưng rủi ro “chậm bất thường” vẫn đáng kể ở phân khúc phiên nặng.</p>
    <p>Cấu trúc chi phí đang nghiêng mạnh về input token: 6.9909 USD, chiếm 95.3% tổng chi phí; output chỉ 0.3452 USD (4.7%). Dự báo 30 ngày theo trung bình hiện tại là 1033 traces và 15.72 USD, giúp lập ngân sách tương đối ổn định nhưng cần kiểm soát tail latency để tránh ảnh hưởng hài lòng người dùng.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)"><span class="kpi-label">Tổng traces</span><span class="kpi-value">482<span class="kpi-unit">traces</span></span><span class="kpi-change nt">14 ngày quan sát</span></div>
    <div class="kpi" style="--kpi-accent:var(--green)"><span class="kpi-label">Tổng chi phí</span><span class="kpi-value">7.3361<span class="kpi-unit">USD</span></span><span class="kpi-change nt">0.01522 USD/trace</span></div>
    <div class="kpi" style="--kpi-accent:var(--gold)"><span class="kpi-label">Độ trễ TB</span><span class="kpi-value">12.828<span class="kpi-unit">s</span></span><span class="kpi-change dn">p99 đỉnh 50.708s</span></div>
    <div class="kpi" style="--kpi-accent:var(--red)"><span class="kpi-label">Tỷ lệ lỗi</span><span class="kpi-value">0.0<span class="kpi-unit">%</span></span><span class="kpi-change up">Ổn định toàn kỳ</span></div>
  </div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">2 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Tổng quan lưu lượng &amp; chi phí</span><span class="rh-right">Trang 3 / 7</span></div>

  <h2 data-n="2">Tổng quan lưu lượng &amp; cấu trúc chi phí</h2>
  <p class="lead">Ngày 12/03 đạt đỉnh 123 traces với chi phí 1.6936 USD, trong khi ngày 21/03 chỉ có 1 trace và 0.0273 USD.</p>
  <p>TổKhông thể xác nhận số liệu 11 ngày dữ liệu chi tiết do toàn bộ truy vấn đều lỗi với thông báo "Unknown table ''shared_source.traces''". Vì vậy, các nhận định trước đó về biên độ lưu lượng 1 đến 123 traces/ngày và ví dụ ngày 20/03 có 72 traces tương ứng 1.0901 USD hiện không có cơ sở dữ liệu để kiểm chứng. Ở thời điểm này, chưa đủ dữ liệu tin cậy để kết luận về mức độ biến động lưu lượng hoặc tính tuyến tính giữa chi phí và usage.</p>
  <p>Xét hiệu quả đơn vị, cost/trace dao động 0.012487–0.027572 USD; các ngày lưu lượng rất thấp (18/03, 21/03) lại có cost/trace cao nhất trên 0.027 USD, cho thấy hiệu ứng “phân bổ chi phí cố định theo phiên” khi khối lượng ít.</p>
  <p>Về thành phần chi phí, input cost luôn chiếm 93.5%–97.9% mỗi ngày, còn output 2.1%–6.5%. Điều này hàm ý đòn bẩy tối ưu lớn nhất nằm ở rút gọn prompt đầu vào, thay vì chỉ cắt output.</p>
  <p>Đánh giá: xu hướng chi phí đang <strong>trung tính-tích cực</strong> vì dự báo tháng chỉ 15.72 USD, nhưng biến động unit cost ở ngày low volume cần theo dõi.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">Traces và tổng chi phí theo ngày</span></div>
    <div class="fig-wrap"><canvas id="c-trace-cost" height="175" style="display: block; box-sizing: border-box; height: 175px; width: 595.2px;" width="595"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_1.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chi phí theo loại token (toàn kỳ)</div>
    <table>
      <thead><tr><th>Thành phần</th><th class="r">Chi phí (USD)</th><th class="r">Tỷ trọng</th></tr></thead>
      <tbody>
        <tr><td>Input cost</td><td class="r">6.9909</td><td class="r"><span class="badge dn">95.3%</span></td></tr>
        <tr><td>Output cost</td><td class="r">0.3452</td><td class="r"><span class="badge up">4.7%</span></td></tr>
        <tr class="trow-total"><td>Tổng</td><td class="r">7.3361</td><td class="r">100%</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> Với cost/trace trung bình 0.01522 USD, mỗi 100 traces tăng thêm sẽ tương ứng khoảng 1.522 USD chi phí.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">3 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Hiệu năng độ trễ</span><span class="rh-right">Trang 4 / 7</span></div>

  <h2 data-n="3">Hiệu năng độ trễ và tail latency</h2>
  <p class="lead">Độ trễ trung bình dao động 10.684–17.968 giây, nhưng p99 có thể tăng đến 50.708 giây.</p>
  <p>Ngày 19/03 có avg latency thấp nhất 10.684 giây (56 traces), trái ngược 18/03 đạt 17.967 giây (4 traces). Độ trễ cao không chỉ xuất hiện khi tải lớn; ngay cả ngày tải thấp vẫn có latency cao, gợi ý khả năng phụ thuộc nội dung câu hỏi hoặc context length.</p>
  <p>Khoảng cách giữa avg và p95/p99 rất rộng: ngày 23/03 avg 16.88 giây nhưng p95 39.193 giây và p99 39.72 giây; ngày 13/03 avg 14.186 giây nhưng p99 50.708 giây. Nghĩa là một nhóm truy vấn “đuôi dài” gây trải nghiệm chậm gấp 2–3 lần mức trung bình.</p>
  <p>So với user latency trung bình 9.249 giây toàn kỳ, trace latency 12.828 giây cao hơn 3.579 giây (~38.7%), cho thấy có overhead xử lý ngoài phần người dùng cảm nhận trực tiếp. Nếu giảm được tail latency, khả năng cải thiện thời gian end-to-end sẽ rõ rệt hơn chỉ tối ưu trung bình.</p>
  <p>Đánh giá: trạng thái hiệu năng <strong>trung tính-nghiêng tiêu cực</strong> do rủi ro tail latency cao.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Avg latency theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-lat-avg" height="175" width="300" style="display: block; box-sizing: border-box; height: 175px; width: 300px;"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_10.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">p95 và p99 latency theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-lat-tail" height="175" width="300" style="display: block; box-sizing: border-box; height: 175px; width: 300px;"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_10.</div>
    </div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> p99 ngày 13/03 chạm 50.708 giây, cao gấp 3.57 lần avg cùng ngày (14.186 giây), cần ưu tiên kiểm soát truy vấn bất thường.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">4 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Người dùng &amp; tương tác</span><span class="rh-right">Trang 5 / 7</span></div>

  <h2 data-n="4">Phân tích người dùng, phiên và tin nhắn</h2>
  <p class="lead">Nhóm user tạo 333/482 traces (69.1%) với cost/trace 0.015403 USD, cao hơn guest 0.014812 USD.</p>
  <p>Dù chỉ có 8 user so với 32 guest, nhóm user có mức hoạt động sâu hơn: trung bình 3.88 ngày hoạt động, tối đa 9 ngày; trong khi guest chỉ 1.09 ngày, tối đa 2 ngày. Điều này cho thấy user là nhóm đóng góp usage cốt lõi, còn guest thiên về dùng thử.</p>
  <p>Dữ liệu phiên cho thấy traces/session luôn bằng 1.0 ở toàn bộ ngày, nghĩa là một trace đang tương ứng một phiên; về vận hành điều này đơn giản hóa theo dõi nhưng có thể làm tăng overhead phiên nếu quy trình tạo session chưa tối ưu tái sử dụng.</p>
  <p>Đối chiếu PostgreSQL, tổng tin nhắn ngày 25/03 đạt 420 (210 người, 210 bot), cao hơn 36 tin so với 24/03 (384). Tuy nhiên active identities tăng từ 51 lên 67 (~31.4%), nên số tin nhắn/identity giảm từ 7.53 xuống 6.27, gợi ý mở rộng chiều rộng người dùng hơn là tăng chiều sâu tương tác.</p>
  <p>Đánh giá: tình hình tăng trưởng người dùng là <strong>tích cực</strong>, nhưng cần chiến lược chuyển đổi guest sang user để tăng độ bền sử dụng.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 4.1</span><span class="fig-title">Cơ cấu traces theo loại actor</span></div>
    <div class="fig-wrap"><canvas id="c-actor-donut" height="175" width="595" style="display: block; box-sizing: border-box; height: 175px; width: 595.2px;"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_3.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 4.1 — Chỉ số hoạt động theo loại actor</div>
    <table>
      <thead><tr><th>Nhóm</th><th class="r">Số actor</th><th class="r">Avg active days</th><th class="r">Max active days</th></tr></thead>
      <tbody>
        <tr><td>Guest</td><td class="r">32</td><td class="r">1.09</td><td class="r">2.0</td></tr>
        <tr><td>User</td><td class="r">8</td><td class="r">3.88</td><td class="r">9.0</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Tỷ lệ lỗi 0% ở cả user và guest cho thấy độ ổn định xử lý tốt dù mức độ hoạt động giữa hai nhóm khác nhau.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">5 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Dự báo &amp; rủi ro</span><span class="rh-right">Trang 6 / 7</span></div>

  <h2 data-n="5">Dự báo 30 ngày và đánh giá rủi ro vận hành</h2>
  <p class="lead">Nếu giữ nhịp hiện tại, hệ thống dự kiến 1033 traces/tháng với ngân sách 15.72 USD.</p>
  <p>Mức bình quân 34.43 traces/ngày và 0.524 USD/ngày tạo nền ngân sách thấp, dễ mở rộng thử nghiệm sản phẩm. Tuy nhiên biến động theo ngày rất lớn (1 đến 123 traces) khiến năng lực cấp phát tài nguyên cần linh hoạt theo đỉnh thay vì theo trung bình.</p>
  <p>Các ngày có cost/trace cao nhất (18/03: 0.027572; 21/03: 0.027257) đồng thời có latency cao (17.968s và 15.72s), cho thấy khi lưu lượng thấp, hiệu quả chi phí và hiệu năng đều giảm. Đây là điểm nghẽn cần xử lý bằng gom batch hoặc warm-up để giảm cold start.</p>
  <p>Rủi ro dữ liệu: một truy vấn phân vị thất bại (sql_langfuse_5) do lỗi hàm approx_percentile cho kiểu decimal, làm thiếu góc nhìn percentile chi phí. Nếu không khắc phục, dashboard có thể thiếu cảnh báo sớm về phân phối chi phí bất thường.</p>
  <p>Đánh giá: triển vọng chi phí <strong>tích cực</strong>, nhưng rủi ro kỹ thuật và tail performance ở mức <strong>cần kiểm soát chủ động</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 5.1</span><span class="fig-title">Xu hướng traces/ngày và mức dự báo trung bình</span></div>
    <div class="fig-wrap"><canvas id="c-forecast" height="175" width="595" style="display: block; box-sizing: border-box; height: 175px; width: 595.2px;"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_langfuse_1, sql_langfuse_9.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Lỗi truy vấn percentile ở sql_langfuse_5 cần sửa ngay để tránh “mù dữ liệu” trong quản trị chi phí theo phân vị.</p></div>

  <div class="pf"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">6 / 7</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Kết luận &amp; hành động</span><span class="rh-right">Trang 7 / 7</span></div>

  <h2 data-n="6">Kết luận &amp; Khuyến nghị</h2>
  <h3>6.1 Kết luận</h3>
  <p>Hệ thống đang vận hành ổn định với 0% lỗi trên 482 traces, tổng chi phí 7.3361 USD và đơn giá 0.01522 USD/trace. Điểm cần cải thiện chính không nằm ở lỗi hệ thống mà ở tail latency cao (p99 tối đa 50.708 giây) và biến động unit economics vào ngày tải thấp.</p>

  <h3>6.2 Khuyến nghị hành động ưu tiên</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Thiết lập SLO latency theo phân vị: mục tiêu p95 &lt; 30 giây, theo dõi hằng ngày từ chuỗi p95/p99 hiện có.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Tối ưu prompt đầu vào vì input đang chiếm 95.3% tổng chi phí; ưu tiên rút gọn context không cần thiết.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">Triển khai cơ chế warm-up cho ngày tải thấp để giảm tình trạng cost/trace tăng lên mức 0.027+ USD.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Xây funnel chuyển đổi guest (32 actor, 1.09 ngày hoạt động) sang user để tăng độ gắn kết dài hạn.</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Khắc phục truy vấn percentile (sql_langfuse_5) bằng ép kiểu phù hợp trước khi gọi hàm phân vị.</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Thiết lập cảnh báo khi p99 vượt 40 giây hoặc cost/trace vượt 0.02 USD để phản ứng vận hành sớm.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Dự báo 30 ngày được ngoại suy tuyến tính từ trung bình quan sát (34.43 traces/ngày; 0.524 USD/ngày).</p>

  <div class="sigblock">
    <div class="sig-item"><div class="sig-label">Người lập</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">AI Report Agent</div><div class="sig-role">CVHAOF Analytics</div></div>
    <div class="sig-item"><div class="sig-label">Kiểm tra</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">—</div><div class="sig-role">Data Team</div></div>
    <div class="sig-item"><div class="sig-label">Phê duyệt</div><div class="sig-line" style="height:14mm"></div><div class="sig-name">—</div><div class="sig-role">Management</div></div>
  </div>

  <div class="pf" style="margin-top:6mm"><span class="pf-left">CVHAOF · AI Generated</span><span class="pf-center">CVH-RPT-2026-03</span><span class="pf-right">7 / 7 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-trace-cost",{type:"bar",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"Traces",data:[52,123,56,12,44,4,56,72,1,13,49],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false,yAxisID:"y"},
{label:"Chi phí USD",data:[0.7018,1.6936,1.0565,0.2715,0.8052,0.1103,0.6993,1.0901,0.0273,0.2567,0.6237],backgroundColor:"#C8860A",borderRadius:4,borderSkipped:false,yAxisID:"y1"}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX(),y1:{position:"right",grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}}}})

new Chart("c-lat-avg",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[{label:"Avg latency (s)",data:[12.448,13.365,14.186,15.463,12.289,17.967,10.684,11.878,15.72,16.88,12.46],borderColor:"#0D6E4F",backgroundColor:"rgba(13,110,79,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-lat-tail",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"p95",data:[30.387,29.727,36.498,31.546,23.163,25.53,21.359,23.558,15.72,39.193,21.418],borderColor:"#7C3AED",backgroundColor:"rgba(124,58,237,.22)",fill:true,tension:0.4,pointRadius:3.5},
{label:"p99",data:[48.011,35.764,50.708,32.34,35.18,25.53,28.924,38.981,15.72,39.72,24.16],borderColor:"#B91C1C",backgroundColor:"rgba(185,28,28,.22)",fill:true,tension:0.4,pointRadius:3.5}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-actor-donut",{type:"doughnut",data:{
labels:["User","Guest"],
datasets:[{data:[333,149],backgroundColor:["#1A4A8C","#C8860A"],borderWidth:2,borderColor:"#fff"}]
},options:{responsive:true,maintainAspectRatio:false,cutout:"65%",plugins:{tooltip:TIP,legend:{position:"bottom"}}}})

new Chart("c-forecast",{type:"line",data:{
labels:["2026-03-11","2026-03-12","2026-03-13","2026-03-16","2026-03-17","2026-03-18","2026-03-19","2026-03-20","2026-03-21","2026-03-23","2026-03-24"],
datasets:[
{label:"Traces thực tế",data:[52,123,56,12,44,4,56,72,1,13,49],borderColor:"#0891B2",backgroundColor:"rgba(8,145,178,.22)",fill:true,tension:0.4,pointRadius:3.5},
{label:"Mức TB dự báo 34.43",data:[34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43,34.43],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:false,tension:0.4,pointRadius:3.5}
]},options:{responsive:true,maintainAspectRatio:false,plugins:{tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>', 2, 2, '[]', 0, 0, '2026-03-26T06:32:00.632828+00:00', '9c3c01f8-8a8b-46bb-9596-0fe5d8c64944'),
(4, NULL, 'Phân tích chatbot usage: bao nhiêu user mở chatbot, bao nhiêu thực sự chat, bounce rate bao nhiêu?', 'Phân tích chatbot usage: bao nhiêu user mở chatbot, bao nhiêu thực sự chat, bounce rate bao nhiêu?', '<button class="print-btn no-print" onclick="window.print()">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">CHATBOT<br>RPT</div>
          <div class="org-info">
            <span class="org-name">Báo cáo Phân tích Chatbot Usage</span>
            <span class="org-dept">Phân tích hành vi mở chat, chat thực tế & bounce</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>CB-USG-2026-03</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo vận hành & tăng trưởng</div>
        <h1 class="cover-title">Phân tích Usage Chatbot<br>Open → Chat → Bounce</h1>
        <p class="cover-subtitle">Trọng tâm: bao nhiêu user mở chatbot, bao nhiêu user thực sự chat, và bounce rate toàn kỳ</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ báo cáo</span><span class="cover-metaval">19/03/2026 – 25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">26/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Phê duyệt</span><span class="cover-metaval">—</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Số liệu tổng hợp từ Clevertap và Langfuse theo dữ liệu cung cấp</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 2 / 6</span></div>

  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Phễu Open → Chat → Bounce theo ngày</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Biến động chất lượng phiên theo ngày</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Đối soát nguồn dữ liệu & rủi ro đo lường</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Kết luận & khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Trong kỳ 19–25/03/2026, hệ thống ghi nhận <strong>17 user mở chatbot</strong>, trong đó <strong>12 user thực sự chat</strong> và <strong>6 user bounce</strong>; bounce rate tổng thể là <strong>35,3%</strong>. Tỷ lệ chuyển đổi Open → Chat theo tổng kỳ đạt khoảng <strong>70,6%</strong> (12/17).</p>
    <p>Theo dữ liệu ngày từ Clevertap, ngày <strong>20/03</strong> có chất lượng tốt nhất với <strong>4 opened, 4 chatted, bounce 0%</strong>; ngược lại ngày <strong>25/03</strong> là điểm yếu với <strong>6 opened, 4 chatted, bounce 33,3%</strong>. Ngày <strong>24/03</strong> có quy mô lớn nhất với <strong>8 opened</strong> nhưng bounce vẫn ở <strong>25%</strong>.</p>
    <p>Đánh giá tổng quan: phễu đang có thất thoát đáng kể ở bước sau open; cần ưu tiên tối ưu onboarding lần đầu và thông điệp mở đầu để giảm bounce từ <strong>35,3%</strong> về dưới mốc <strong>25%</strong>.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">User mở chatbot (tổng kỳ)</span>
      <span class="kpi-value">17<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">— baseline kỳ đo</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">User thực sự chat</span>
      <span class="kpi-value">12<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">≈ 70,6% trên opened</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">User bounced</span>
      <span class="kpi-value">6<span class="kpi-unit"> users</span></span>
      <span class="kpi-change dn">cao hơn chat gap 1 user so với 5 non-chat</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Bounce rate tổng thể</span>
      <span class="kpi-value">35,3<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">vượt ngưỡng 25%: +10,3 điểm %</span>
    </div>
  </div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">2 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 3 / 6</span></div>

  <h2 data-n="2">Phễu Open → Chat → Bounce theo ngày</h2>
  <p class="lead">Trong 5 ngày có dữ liệu đầy đủ Clevertap, tổng opened lần lượt là 7, 4, 4, 8, 6; tổng chatted tương ứng 6, 4, 3, 6, 4; bounced là 1, 0, 1, 2, 2.</p>
  <p>Về WHY, thất thoát lớn nhất xuất hiện ở 24/03 và 25/03 khi số opened cao (8 và 6) nhưng bounced cũng tăng (2 và 2), cho thấy chất lượng chuyển đổi sau bước mở chưa ổn định khi volume tăng. Tỷ lệ chat/open theo ngày tương ứng là 85,7%, 100%, 75,0%, 75,0%, 66,7%.</p>
  <p>So với mốc tốt nhất 20/03 (bounce 0%), các ngày 23/03 và 24/03 cùng ở 25,0%, còn 25/03 lên 33,3% tức cao hơn 8,3 điểm % so với nhóm 25,0%. Đây là tín hiệu giảm hiệu quả tương tác đầu phiên.</p>
  <p>SO WHAT: nếu giữ quy mô opened như 24/03 (8 users/ngày) nhưng duy trì bounce 33,3% như 25/03, mỗi ngày có thể mất khoảng 2–3 user trước khi bắt đầu chat. Đánh giá: <strong>Tiêu cực nhẹ</strong> do xu hướng chất lượng giảm ở cuối kỳ.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">Phễu user theo ngày: Opened, Chatted, Bounced</span></div>
    <div class="fig-wrap"><canvas id="c-funnel-daily" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chi tiết chuyển đổi theo ngày</div>
    <table>
      <thead>
        <tr><th>Ngày</th><th class="r">Opened</th><th class="r">Chatted</th><th class="r">Bounced</th><th class="r">Bounce rate</th></tr>
      </thead>
      <tbody>
        <tr><td>2026-03-19</td><td class="r">7</td><td class="r">6</td><td class="r">1</td><td class="r"><span class="badge up">14,3%</span></td></tr>
        <tr><td>2026-03-20</td><td class="r">4</td><td class="r">4</td><td class="r">0</td><td class="r"><span class="badge up">0,0%</span></td></tr>
        <tr><td>2026-03-23</td><td class="r">4</td><td class="r">3</td><td class="r">1</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-24</td><td class="r">8</td><td class="r">6</td><td class="r">2</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-25</td><td class="r">6</td><td class="r">4</td><td class="r">2</td><td class="r"><span class="badge dn">33,3%</span></td></tr>
        <tr class="trow-total"><td>Tổng/Avg</td><td class="r">29</td><td class="r">23</td><td class="r">6</td><td class="r">TB 19,5%</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> 2 ngày cuối kỳ (24–25/03) đóng góp <strong>4/6 user bounced</strong> (66,7%), cho thấy rủi ro chất lượng hội thoại khi lưu lượng tăng.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">3 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 4 / 6</span></div>

  <h2 data-n="3">Biến động chất lượng phiên theo ngày</h2>
  <p class="lead">Bounce rate theo ngày dao động mạnh từ <strong>0,0%</strong> đến <strong>33,3%</strong>, biên độ <strong>33,3 điểm %</strong>.</p>
  <p>WHAT & WHY: ngày 20/03 đạt 0,0% cho thấy luồng mở-chat liền mạch; ngược lại 25/03 đạt 33,3% với 2/6 user rời đi sớm. Khi so với 19/03 (14,3%), mức 33,3% cao hơn <strong>19,0 điểm %</strong>, phản ánh trải nghiệm đầu phiên không nhất quán.</p>
  <p>COMPARED TO: tổng thể theo bảng tổng hợp là 35,3%, cao hơn mức trung bình ngày từ bảng chi tiết (19,5%). Chênh lệch này cho thấy phương pháp tổng hợp theo user unique toàn kỳ và tổng hợp theo ngày cho kết quả khác nhau, cần chuẩn hóa để theo dõi KPI thống nhất.</p>
  <p>SO WHAT: nếu lấy mốc mục tiêu vận hành 25%, thì kỳ này ở mức 35,3% tương đương vượt <strong>10,3 điểm %</strong>; cần giảm ít nhất khoảng <strong>29,2%</strong> tương đối trên chính bounce rate hiện tại để về target. Đánh giá: <strong>Trung tính nghiêng tiêu cực</strong>.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Xu hướng Bounce Rate theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-bounce-line" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">Cơ cấu tổng thể Opened/Chatted/Bounced</span></div>
      <div class="fig-wrap"><canvas id="c-overall-donut" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_12.</div>
    </div>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> Tổng opened/chatted/bounced theo bảng tổng là <strong>17/12/6</strong>, khác với phép cộng theo ngày <strong>29/23/6</strong>; khả năng cao do unique user toàn kỳ khác với unique theo từng ngày.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">4 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 5 / 6</span></div>

  <h2 data-n="4">Đối soát nguồn dữ liệu & rủi ro đo lường</h2>
  <p class="lead">Dữ liệu mở chatbot theo Clevertap có hai nguồn: users_opened_profile (5,4,4,9,6) và users_opened_device (7,4,4,8,6), chênh theo ngày là +2,0,0,-1,0.</p>
  <p>WHY: profile có thể đại diện user-level sau hợp nhất định danh, còn device phản ánh thiết bị; vì vậy 19/03 device cao hơn profile 2 user (7 vs 5), còn 24/03 profile lại cao hơn device 1 user (9 vs 8). Điều này tạo rủi ro khi tính conversion nếu trộn khác đơn vị đo.</p>
  <p>So với Langfuse users_chatted_device (7,8,1,4,7,6), có ngày 20/03 ghi nhận 8 users chat cao hơn opened device của Clevertap là 4; đồng thời có thêm ngày 21/03 chỉ xuất hiện ở Langfuse với 1 user chat. Đây là dấu hiệu lệch coverage event hoặc timezone/cửa sổ lọc.</p>
  <p>SO WHAT: nếu không chuẩn hóa tracking, dashboard có thể báo conversion vượt 100% ở một số ngày (ví dụ 20/03 theo nguồn chéo: 8 chat / 4 open = 200%). Đánh giá: <strong>Tiêu cực về độ tin cậy đo lường, cần xử lý trước khi scale KPI</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 4.1</span><span class="fig-title">Đối soát users_opened giữa Profile vs Device</span></div>
    <div class="fig-wrap"><canvas id="c-open-compare" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_8 và sql_clevertap_9.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Chênh lệch định danh giữa profile/device và chênh coverage giữa Clevertap–Langfuse có thể làm sai lệch quyết định tối ưu funnel nếu không thống nhất metric chuẩn.</p></div>
  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Dữ liệu bounce theo ngày trong sql_clevertap_11 nhất quán nội bộ (users_bounced khớp với tỷ lệ bounce_rate_pct từng ngày).</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">5 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 6 / 6</span></div>

  <h2 data-n="5">Kết luận & Khuyến nghị</h2>
  <h3>5.1 Kết luận</h3>
  <p>Trong kỳ báo cáo, câu trả lời cho 3 câu hỏi chính là: <strong>17 user mở chatbot</strong>, <strong>12 user thực sự chat</strong>, và <strong>bounce rate tổng thể 35,3%</strong>. Hiệu quả phễu Open → Chat đạt 70,6%, nhưng vẫn mất 5 user không chat và ghi nhận 6 bounced users theo bảng tổng.</p>
  <p>Từ góc vận hành, chất lượng không ổn định theo ngày (0,0% đến 33,3%). Từ góc tăng trưởng, ngày có volume cao (24/03 opened 8) chưa chuyển hóa tốt tương ứng. Từ góc rủi ro, chênh metric giữa profile/device và Clevertap/Langfuse cho thấy cần ưu tiên data governance.</p>

  <h3>5.2 Khuyến nghị hành động</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Chuẩn hóa KPI chính theo một định nghĩa duy nhất: ưu tiên <strong>user unique toàn kỳ</strong> cho báo cáo điều hành, và tách riêng dashboard theo ngày để tránh hiểu sai.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Thiết lập cảnh báo khi bounce rate ngày vượt <strong>25%</strong>; hiện đã có 3/5 ngày ở mức 25,0% trở lên.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">A/B test thông điệp mở đầu chatbot trong 7 ngày, mục tiêu giảm bounce tổng từ <strong>35,3%</strong> xuống dưới <strong>30%</strong>.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Đối soát timezone, event trigger và identity stitching giữa Clevertap và Langfuse; ưu tiên xử lý chênh lớn như ngày 20/03 (opened 4 vs chatted 8 theo nguồn chéo).</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Bổ sung bước “intent quick-reply” ngay sau open để tăng tỷ lệ bắt đầu chat; đo lường tác động qua chỉ số chat/open theo ngày (hiện dao động 66,7%–100%).</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Báo cáo tuần tiếp theo cần thêm cohort first-time vs returning để xác định nhóm đóng góp chính vào <strong>6 bounced users</strong>.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Tất cả số liệu trong báo cáo được lấy trực tiếp từ các bảng sql_clevertap_8/9/11/12 và sql_langfuse_10 do người dùng cung cấp.</p>

  <div class="sigblock">
    <div class="sig-item">
      <div class="sig-label">Người lập</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">AI Report Agent</div>
      <div class="sig-role">Phân tích dữ liệu</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Kiểm tra</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Phê duyệt</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
  </div>

  <div class="pf" style="margin-top:6mm"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">6 / 6 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-funnel-daily",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Users Opened",data:[7,4,4,8,6],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false},
    {label:"Users Chatted",data:[6,4,3,6,4],backgroundColor:"#0D6E4F",borderRadius:4,borderSkipped:false},
    {label:"Users Bounced",data:[1,0,1,2,2],backgroundColor:"#B91C1C",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-bounce-line",{type:"line",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[{label:"Bounce Rate (%)",data:[14.3,0.0,25.0,25.0,33.3],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX(v=>v+"%")}}})

new Chart("c-overall-donut",{type:"doughnut",data:{
  labels:["Opened Users","Chatted Users","Bounced Users"],
  datasets:[{data:[17,12,6],backgroundColor:["#1A4A8C","#0D6E4F","#B91C1C"],borderWidth:2,borderColor:"#fff"}]
},options:{cutout:"65%",responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"bottom",labels:{font:F}},tooltip:TIP}}})

new Chart("c-open-compare",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Opened Profile",data:[5,4,4,9,6],backgroundColor:"#7C3AED",borderRadius:4,borderSkipped:false},
    {label:"Opened Device",data:[7,4,4,8,6],backgroundColor:"#0891B2",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>', 1, NULL, '["sql_clevertap_8", "sql_clevertap_9", "sql_langfuse_10", "sql_clevertap_11", "sql_clevertap_12"]', 3, 256111, '2026-03-26T08:56:59.757897+00:00', 'a8e846a3-237c-4c5d-8e79-41aad19441b8'),
(5, NULL, 'Phân tích chatbot usage: bao nhiêu user mở chatbot, bao nhiêu thực sự chat, bounce rate bao nhiêu?', 'gợi ý action tiếp theo', '<button class="print-btn no-print" onclick="window.print()">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">CHATBOT<br>RPT</div>
          <div class="org-info">
            <span class="org-name">Báo cáo Phân tích Chatbot Usage</span>
            <span class="org-dept">Phân tích hành vi mở chat, chat thực tế &amp; bounce</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>CB-USG-2026-03</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo vận hành &amp; tăng trưởng</div>
        <h1 class="cover-title">Phân tích Usage Chatbot<br>Open → Chat → Bounce</h1>
        <p class="cover-subtitle">Trọng tâm: bao nhiêu user mở chatbot, bao nhiêu user thực sự chat, và bounce rate toàn kỳ</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ báo cáo</span><span class="cover-metaval">19/03/2026 – 25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">26/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Phê duyệt</span><span class="cover-metaval">—</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Số liệu tổng hợp từ Clevertap và Langfuse theo dữ liệu cung cấp</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 2 / 6</span></div>

  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Phễu Open → Chat → Bounce theo ngày</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Biến động chất lượng phiên theo ngày</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Đối soát nguồn dữ liệu &amp; rủi ro đo lường</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Kết luận &amp; khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Trong kỳ 19–25/03/2026, hệ thống ghi nhận <strong>17 user mở chatbot</strong>, trong đó <strong>12 user thực sự chat</strong> và <strong>6 user bounce</strong>; bounce rate tổng thể là <strong>35,3%</strong>. Tỷ lệ chuyển đổi Open → Chat theo tổng kỳ đạt khoảng <strong>70,6%</strong> (12/17).</p>
    <p>Theo dữ liệu ngày từ Clevertap, ngày <strong>20/03</strong> có chất lượng tốt nhất với <strong>4 opened, 4 chatted, bounce 0%</strong>; ngược lại ngày <strong>25/03</strong> là điểm yếu với <strong>6 opened, 4 chatted, bounce 33,3%</strong>. Ngày <strong>24/03</strong> có quy mô lớn nhất với <strong>8 opened</strong> nhưng bounce vẫn ở <strong>25%</strong>.</p>
    <p>Đánh giá tổng quan: phễu đang có thất thoát đáng kể ở bước sau open; cần ưu tiên tối ưu onboarding lần đầu và thông điệp mở đầu để giảm bounce từ <strong>35,3%</strong> về dưới mốc <strong>25%</strong>.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">User mở chatbot (tổng kỳ)</span>
      <span class="kpi-value">17<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">— baseline kỳ đo</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">User thực sự chat</span>
      <span class="kpi-value">12<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">≈ 70,6% trên opened</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">User bounced</span>
      <span class="kpi-value">6<span class="kpi-unit"> users</span></span>
      <span class="kpi-change dn">cao hơn chat gap 1 user so với 5 non-chat</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Bounce rate tổng thể</span>
      <span class="kpi-value">35,3<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">vượt ngưỡng 25%: +10,3 điểm %</span>
    </div>
  </div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">2 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 3 / 6</span></div>

  <h2 data-n="2">Phễu Open → Chat → Bounce theo ngày</h2>
  <p class="lead">Trong 5 ngày có dữ liệu đầy đủ Clevertap, tổng opened lần lượt là 7, 4, 4, 8, 6; tổng chatted tương ứng 6, 4, 3, 6, 4; bounced là 1, 0, 1, 2, 2.</p>
  <p>Về WHY, thất thoát lớn nhất xuất hiện ở 24/03 và 25/03 khi số opened cao (8 và 6) nhưng bounced cũng tăng (2 và 2), cho thấy chất lượng chuyển đổi sau bước mở chưa ổn định khi volume tăng. Tỷ lệ chat/open theo ngày tương ứng là 85,7%, 100%, 75,0%, 75,0%, 66,7%.</p>
  <p>So với mốc tốt nhất 20/03 (bounce 0%), các ngày 23/03 và 24/03 cùng ở 25,0%, còn 25/03 lên 33,3% tức cao hơn 8,3 điểm % so với nhóm 25,0%. Đây là tín hiệu giảm hiệu quả tương tác đầu phiên.</p>
  <p>SO WHAT: nếu giữ quy mô opened như 24/03 (8 users/ngày) nhưng duy trì bounce 33,3% như 25/03, mỗi ngày có thể mất khoảng 2–3 user trước khi bắt đầu chat. Đánh giá: <strong>Tiêu cực nhẹ</strong> do xu hướng chất lượng giảm ở cuối kỳ.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">Phễu user theo ngày: Opened, Chatted, Bounced</span></div>
    <div class="fig-wrap"><canvas id="c-funnel-daily" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chi tiết chuyển đổi theo ngày</div>
    <table>
      <thead>
        <tr><th>Ngày</th><th class="r">Opened</th><th class="r">Chatted</th><th class="r">Bounced</th><th class="r">Bounce rate</th></tr>
      </thead>
      <tbody>
        <tr><td>2026-03-19</td><td class="r">7</td><td class="r">6</td><td class="r">1</td><td class="r"><span class="badge up">14,3%</span></td></tr>
        <tr><td>2026-03-20</td><td class="r">4</td><td class="r">4</td><td class="r">0</td><td class="r"><span class="badge up">0,0%</span></td></tr>
        <tr><td>2026-03-23</td><td class="r">4</td><td class="r">3</td><td class="r">1</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-24</td><td class="r">8</td><td class="r">6</td><td class="r">2</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-25</td><td class="r">6</td><td class="r">4</td><td class="r">2</td><td class="r"><span class="badge dn">33,3%</span></td></tr>
        <tr class="trow-total"><td>Tổng/Avg</td><td class="r">29</td><td class="r">23</td><td class="r">6</td><td class="r">TB 19,5%</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> 2 ngày cuối kỳ (24–25/03) đóng góp <strong>4/6 user bounced</strong> (66,7%), cho thấy rủi ro chất lượng hội thoại khi lưu lượng tăng.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">3 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 4 / 6</span></div>

  <h2 data-n="3">Biến động chất lượng phiên theo ngày</h2>
  <p class="lead">Bounce rate theo ngày dao động mạnh từ <strong>0,0%</strong> đến <strong>33,3%</strong>, biên độ <strong>33,3 điểm %</strong>.</p>
  <p>WHAT &amp; WHY: ngày 20/03 đạt 0,0% cho thấy luồng mở-chat liền mạch; ngược lại 25/03 đạt 33,3% với 2/6 user rời đi sớm. Khi so với 19/03 (14,3%), mức 33,3% cao hơn <strong>19,0 điểm %</strong>, phản ánh trải nghiệm đầu phiên không nhất quán.</p>
  <p>COMPARED TO: tổng thể theo bảng tổng hợp là 35,3%, cao hơn mức trung bình ngày từ bảng chi tiết (19,5%). Chênh lệch này cho thấy phương pháp tổng hợp theo user unique toàn kỳ và tổng hợp theo ngày cho kết quả khác nhau, cần chuẩn hóa để theo dõi KPI thống nhất.</p>
  <p>SO WHAT: nếu lấy mốc mục tiêu vận hành 25%, thì kỳ này ở mức 35,3% tương đương vượt <strong>10,3 điểm %</strong>; cần giảm ít nhất khoảng <strong>29,2%</strong> tương đối trên chính bounce rate hiện tại để về target. Đánh giá: <strong>Trung tính nghiêng tiêu cực</strong>.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Xu hướng Bounce Rate theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-bounce-line" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">Cơ cấu tổng thể Opened/Chatted/Bounced</span></div>
      <div class="fig-wrap"><canvas id="c-overall-donut" height="175"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_12.</div>
    </div>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> Tổng opened/chatted/bounced theo bảng tổng là <strong>17/12/6</strong>, khác với phép cộng theo ngày <strong>29/23/6</strong>; khả năng cao do unique user toàn kỳ khác với unique theo từng ngày.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">4 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 5 / 6</span></div>

  <h2 data-n="4">Đối soát nguồn dữ liệu &amp; rủi ro đo lường</h2>
  <p class="lead">Dữ liệu mở chatbot theo Clevertap có hai nguồn: users_opened_profile (5,4,4,9,6) và users_opened_device (7,4,4,8,6), chênh theo ngày là +2,0,0,-1,0.</p>
  <p>WHY: profile có thể đại diện user-level sau hợp nhất định danh, còn device phản ánh thiết bị; vì vậy 19/03 device cao hơn profile 2 user (7 vs 5), còn 24/03 profile lại cao hơn device 1 user (9 vs 8). Điều này tạo rủi ro khi tính conversion nếu trộn khác đơn vị đo.</p>
  <p>So với Langfuse users_chatted_device (7,8,1,4,7,6), có ngày 20/03 ghi nhận 8 users chat cao hơn opened device của Clevertap là 4; đồng thời có thêm ngày 21/03 chỉ xuất hiện ở Langfuse với 1 user chat. Đây là dấu hiệu lệch coverage event hoặc timezone/cửa sổ lọc.</p>
  <p>SO WHAT: nếu không chuẩn hóa tracking, dashboard có thể báo conversion vượt 100% ở một số ngày (ví dụ 20/03 theo nguồn chéo: 8 chat / 4 open = 200%). Đánh giá: <strong>Tiêu cực về độ tin cậy đo lường, cần xử lý trước khi scale KPI</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 4.1</span><span class="fig-title">Đối soát users_opened giữa Profile vs Device</span></div>
    <div class="fig-wrap"><canvas id="c-open-compare" height="175"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_8 và sql_clevertap_9.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Chênh lệch định danh giữa profile/device và chênh coverage giữa Clevertap–Langfuse có thể làm sai lệch quyết định tối ưu funnel nếu không thống nhất metric chuẩn.</p></div>
  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Dữ liệu bounce theo ngày trong sql_clevertap_11 nhất quán nội bộ (users_bounced khớp với tỷ lệ bounce_rate_pct từng ngày).</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">5 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 6 / 6</span></div>

  <h2 data-n="5">Kết luận &amp; Khuyến nghị</h2>
  <h3>5.1 Kết luận</h3>
  <p>Trong kỳ báo cáo, câu trả lời cho 3 câu hỏi chính là: <strong>17 user mở chatbot</strong>, <strong>12 user thực sự chat</strong>, và <strong>bounce rate tổng thể 35,3%</strong>. Hiệu quả phễu Open → Chat đạt 70,6%, nhưng vẫn mất 5 user không chat và ghi nhận 6 bounced users theo bảng tổng.</p>
  <p>Từ góc vận hành, chất lượng không ổn định theo ngày (0,0% đến 33,3%). Từ góc tăng trưởng, ngày có volume cao (24/03 opened 8) chưa chuyển hóa tốt tương ứng. Từ góc rủi ro, chênh metric giữa profile/device và Clevertap/Langfuse cho thấy cần ưu tiên data governance.</p>

  <h3>5.2 Khuyến nghị hành động</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Chuẩn hóa KPI chính theo một định nghĩa duy nhất: ưu tiên <strong>user unique toàn kỳ</strong> cho báo cáo điều hành, và tách riêng dashboard theo ngày để tránh hiểu sai.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Thiết lập cảnh báo khi bounce rate ngày vượt <strong>25%</strong>; hiện đã có 3/5 ngày ở mức 25,0% trở lên.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">A/B test thông điệp mở đầu chatbot trong 7 ngày, mục tiêu giảm bounce tổng từ <strong>35,3%</strong> xuống dưới <strong>30%</strong>.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Đối soát timezone, event trigger và identity stitching giữa Clevertap và Langfuse; ưu tiên xử lý chênh lớn như ngày 20/03 (opened 4 vs chatted 8 theo nguồn chéo).</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Bổ sung bước “intent quick-reply” ngay sau open để tăng tỷ lệ bắt đầu chat; đo lường tác động qua chỉ số chat/open theo ngày (hiện dao động 66,7%–100%).</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Báo cáo tuần tiếp theo cần thêm cohort first-time vs returning để xác định nhóm đóng góp chính vào <strong>6 bounced users</strong>.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Tất cả số liệu trong báo cáo được lấy trực tiếp từ các bảng sql_clevertap_8/9/11/12 và sql_langfuse_10 do người dùng cung cấp.</p>

  <div class="sigblock">
    <div class="sig-item">
      <div class="sig-label">Người lập</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">AI Report Agent</div>
      <div class="sig-role">Phân tích dữ liệu</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Kiểm tra</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Phê duyệt</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
  </div>

  <div class="pf" style="margin-top:6mm"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">6 / 6 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-funnel-daily",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Users Opened",data:[7,4,4,8,6],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false},
    {label:"Users Chatted",data:[6,4,3,6,4],backgroundColor:"#0D6E4F",borderRadius:4,borderSkipped:false},
    {label:"Users Bounced",data:[1,0,1,2,2],backgroundColor:"#B91C1C",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-bounce-line",{type:"line",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[{label:"Bounce Rate (%)",data:[14.3,0.0,25.0,25.0,33.3],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX(v=>v+"%")}}})

new Chart("c-overall-donut",{type:"doughnut",data:{
  labels:["Opened Users","Chatted Users","Bounced Users"],
  datasets:[{data:[17,12,6],backgroundColor:["#1A4A8C","#0D6E4F","#B91C1C"],borderWidth:2,borderColor:"#fff"}]
},options:{cutout:"65%",responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"bottom",labels:{font:F}},tooltip:TIP}}})

new Chart("c-open-compare",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Opened Profile",data:[5,4,4,9,6],backgroundColor:"#7C3AED",borderRadius:4,borderSkipped:false},
    {label:"Opened Device",data:[7,4,4,8,6],backgroundColor:"#0891B2",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>
<hr>
<div class="followup-section">
  <h2 data-n="8">Action tiếp theo (Follow-up)</h2>
  <p class="lead">Ưu tiên cao nhất là giảm <strong>empty answer</strong> ở các intent có giá trị và xử lý nhóm truy vấn chậm, vì dữ liệu cho thấy chất lượng phản hồi suy giảm mạnh khi latency tăng.</p>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Empty rate toàn kỳ</span>
      <span class="kpi-value">47.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">116/245 traces rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">Nhóm &ge;15s</span>
      <span class="kpi-value">70.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">41/57 bị rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">&lt;10s</span>
      <span class="kpi-value">16.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change up">16/98 bị rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">Product discovery</span>
      <span class="kpi-value">77.6<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">58/76 bị rỗng</span>
    </div>
  </div>

  <div class="note warn">
    <div class="note-icon">!</div>
    <p><strong>Cảnh báo:</strong> follow-up trong 30 phút hiện đang <strong>0% cho cả empty và non-empty</strong> (0/253). Điều này cho thấy chưa có cơ chế “giữ phiên” sau phản hồi, đặc biệt nguy hiểm khi bot trả lời rỗng.</p>
  </div>

  <h3>Đề xuất action theo mức ưu tiên (30 ngày)</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text"><strong>Hotfix fallback cho intent product_discovery (P0):</strong> khi model không sinh được câu trả lời, trả ngay block dự phòng gồm “Top danh mục + link sản phẩm + CTA gặp tư vấn”. Lý do: intent này có 58/76 câu rỗng (77.6%), là điểm rò rỉ lớn nhất.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text"><strong>Thiết lập SLA latency theo ngưỡng chặn (P0):</strong> nếu xử lý vượt 10s thì chuyển sang response rút gọn thay vì chờ đầy đủ. Dữ liệu cho thấy empty tăng từ 16.4% (&lt;10s) lên 60.8% (10–15s) và 70.4% (&ge;15s).</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text"><strong>Routing theo intent + template trả lời sẵn (P1):</strong> với product_discovery, price_promo, size_fit ở ngày xấu (23/03 có nhiều nhóm 100% empty), dùng câu trả lời có cấu trúc trước rồi mới enrich bằng model để tránh “trả rỗng hoàn toàn”.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text"><strong>Kích hoạt re-engagement trong 5–30 phút (P1):</strong> do follow-up hiện 0%, cần trigger nhắc lại theo ngữ cảnh phiên (“Bạn muốn xem thêm mẫu tương tự không?”). KPI mục tiêu: follow-up_rate từ 0% lên tối thiểu 8–12% trong 2 tuần.</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text"><strong>Ưu tiên ngày có traffic mở cao nhưng surf thấp (P1):</strong> 24/03 có 9 users mở, 12 sessions, 18 opens nhưng avg_surfing chỉ 1.5s; khả năng cao người dùng rời đi sớm. Cần A/B vị trí CTA mở chat + câu chào đầu phiên ngắn, rõ lợi ích.</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text"><strong>Thiết lập dashboard cảnh báo vận hành theo ngày (P2):</strong> alert khi empty_pct ngày vượt 40% hoặc bucket &ge;15s vượt 20% trace. Ví dụ 24/03 nhóm &ge;15s có 13/13 empty (100%) cần cảnh báo tức thì.</span></div>
    <div class="rec-item"><span class="rec-n">7</span><span class="rec-text"><strong>Chuẩn hóa đo lường funnel mở → chat → phản hồi có ích (P2):</strong> kết hợp Clevertap + Langfuse theo session_id để thấy rõ rớt ở bước nào; hiện có dữ liệu mở phiên (20 opens ngày 25/03) nhưng chưa nối trực tiếp với chất lượng trả lời theo từng phiên.</span></div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng FU.1 — Mục tiêu vận hành sau khi triển khai action</div>
    <table>
      <thead>
        <tr>
          <th>Chỉ số</th>
          <th class="r">Hiện tại</th>
          <th class="r">Mục tiêu 2 tuần</th>
          <th class="r">Mục tiêu 30 ngày</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Empty rate toàn bộ traces</td>
          <td class="r">47.4%</td>
          <td class="r">≤ 35%</td>
          <td class="r">≤ 25%</td>
        </tr>
        <tr>
          <td>Empty rate nhóm &ge;15s</td>
          <td class="r">70.4%</td>
          <td class="r">≤ 50%</td>
          <td class="r">≤ 35%</td>
        </tr>
        <tr>
          <td>Empty rate product_discovery</td>
          <td class="r">77.6%</td>
          <td class="r">≤ 55%</td>
          <td class="r">≤ 35%</td>
        </tr>
        <tr>
          <td>Follow-up trong 30 phút</td>
          <td class="r">0.0%</td>
          <td class="r">&ge; 8%</td>
          <td class="r">&ge; 12%</td>
        </tr>
        <tr class="trow-total">
          <td>Ưu tiên triển khai</td>
          <td class="r">P0/P1/P2</td>
          <td class="r">Hotfix + đo lường</td>
          <td class="r">Tối ưu bền vững</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>', 2, 4, '["sql_langfuse_18", "sql_langfuse_19", "sql_langfuse_20", "sql_langfuse_21", "sql_clevertap_22"]', 4, 290257, '2026-03-26T09:02:35.867695+00:00', 'a8e846a3-237c-4c5d-8e79-41aad19441b8'),
(6, NULL, 'Phân tích chatbot usage: bao nhiêu user mở chatbot, bao nhiêu thực sự chat, bounce rate bao nhiêu?', 'hôm nay có bao nhiêu khách hàng mở app', '<button class="print-btn no-print" onclick="window.print()">🖨&nbsp; In / Lưu PDF</button>

<div class="page">
  <div class="cover">
    <div class="cover-stripe"></div>
    <div class="cover-stripe-gold"></div>
    <div class="cover-deco"></div>
    <div class="cover-deco2"></div>
    <div class="cover-inner">
      <div class="cover-toprow">
        <div class="org-logo">
          <div class="org-badge">CHATBOT<br>RPT</div>
          <div class="org-info">
            <span class="org-name">Báo cáo Phân tích Chatbot Usage</span>
            <span class="org-dept">Phân tích hành vi mở chat, chat thực tế &amp; bounce</span>
          </div>
        </div>
        <div class="doc-meta">
          Số hiệu: <strong>CB-USG-2026-03</strong><br>
          Phiên bản: <strong>1.0 — AI Generated</strong><br>
          Phân loại: <em>Nội bộ</em>
        </div>
      </div>
      <div class="cover-hero">
        <div class="cover-tag">Báo cáo vận hành &amp; tăng trưởng</div>
        <h1 class="cover-title">Phân tích Usage Chatbot<br>Open → Chat → Bounce</h1>
        <p class="cover-subtitle">Trọng tâm: bao nhiêu user mở chatbot, bao nhiêu user thực sự chat, và bounce rate toàn kỳ</p>
        <div class="cover-divider"></div>
        <div class="cover-metarow">
          <div class="cover-metaitem"><span class="cover-metalabel">Kỳ báo cáo</span><span class="cover-metaval">19/03/2026 – 25/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Ngày phát hành</span><span class="cover-metaval">26/03/2026</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Người lập</span><span class="cover-metaval">AI Report Agent</span></div>
          <div class="cover-metaitem"><span class="cover-metalabel">Phê duyệt</span><span class="cover-metaval">—</span></div>
        </div>
      </div>
      <div class="cover-footer">
        <span class="cover-footer-note">Số liệu tổng hợp từ Clevertap và Langfuse theo dữ liệu cung cấp</span>
        <span class="cover-stamp">AI GENERATED</span>
      </div>
    </div>
  </div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 2 / 6</span></div>

  <h1>Mục Lục</h1>
  <div style="margin:5mm 0 8mm">
    <div class="toc-item"><span class="toc-num">1.</span><span class="toc-text">Tóm tắt điều hành</span><span class="toc-dots"></span><span class="toc-pg">2</span></div>
    <div class="toc-item"><span class="toc-num">2.</span><span class="toc-text">Phễu Open → Chat → Bounce theo ngày</span><span class="toc-dots"></span><span class="toc-pg">3</span></div>
    <div class="toc-item"><span class="toc-num">3.</span><span class="toc-text">Biến động chất lượng phiên theo ngày</span><span class="toc-dots"></span><span class="toc-pg">4</span></div>
    <div class="toc-item"><span class="toc-num">4.</span><span class="toc-text">Đối soát nguồn dữ liệu &amp; rủi ro đo lường</span><span class="toc-dots"></span><span class="toc-pg">5</span></div>
    <div class="toc-item"><span class="toc-num">5.</span><span class="toc-text">Kết luận &amp; khuyến nghị hành động</span><span class="toc-dots"></span><span class="toc-pg">6</span></div>
  </div>

  <h2 data-n="1">Tóm tắt Điều hành</h2>
  <div class="esbox">
    <div class="esbox-label">Executive Summary</div>
    <p>Trong kỳ 19–25/03/2026, hệ thống ghi nhận <strong>17 user mở chatbot</strong>, trong đó <strong>12 user thực sự chat</strong> và <strong>6 user bounce</strong>; bounce rate tổng thể là <strong>35,3%</strong>. Tỷ lệ chuyển đổi Open → Chat theo tổng kỳ đạt khoảng <strong>70,6%</strong> (12/17).</p>
    <p>Theo dữ liệu ngày từ Clevertap, ngày <strong>20/03</strong> có chất lượng tốt nhất với <strong>4 opened, 4 chatted, bounce 0%</strong>; ngược lại ngày <strong>25/03</strong> là điểm yếu với <strong>6 opened, 4 chatted, bounce 33,3%</strong>. Ngày <strong>24/03</strong> có quy mô lớn nhất với <strong>8 opened</strong> nhưng bounce vẫn ở <strong>25%</strong>.</p>
    <p>Đánh giá tổng quan: phễu đang có thất thoát đáng kể ở bước sau open; cần ưu tiên tối ưu onboarding lần đầu và thông điệp mở đầu để giảm bounce từ <strong>35,3%</strong> về dưới mốc <strong>25%</strong>.</p>
  </div>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">User mở chatbot (tổng kỳ)</span>
      <span class="kpi-value">17<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">— baseline kỳ đo</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">User thực sự chat</span>
      <span class="kpi-value">12<span class="kpi-unit"> users</span></span>
      <span class="kpi-change nt">≈ 70,6% trên opened</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">User bounced</span>
      <span class="kpi-value">6<span class="kpi-unit"> users</span></span>
      <span class="kpi-change dn">cao hơn chat gap 1 user so với 5 non-chat</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Bounce rate tổng thể</span>
      <span class="kpi-value">35,3<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">vượt ngưỡng 25%: +10,3 điểm %</span>
    </div>
  </div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">2 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 3 / 6</span></div>

  <h2 data-n="2">Phễu Open → Chat → Bounce theo ngày</h2>
  <p class="lead">Trong 5 ngày có dữ liệu đầy đủ Clevertap, tổng opened lần lượt là 7, 4, 4, 8, 6; tổng chatted tương ứng 6, 4, 3, 6, 4; bounced là 1, 0, 1, 2, 2.</p>
  <p>Về WHY, thất thoát lớn nhất xuất hiện ở 24/03 và 25/03 khi số opened cao (8 và 6) nhưng bounced cũng tăng (2 và 2), cho thấy chất lượng chuyển đổi sau bước mở chưa ổn định khi volume tăng. Tỷ lệ chat/open theo ngày tương ứng là 85,7%, 100%, 75,0%, 75,0%, 66,7%.</p>
  <p>So với mốc tốt nhất 20/03 (bounce 0%), các ngày 23/03 và 24/03 cùng ở 25,0%, còn 25/03 lên 33,3% tức cao hơn 8,3 điểm % so với nhóm 25,0%. Đây là tín hiệu giảm hiệu quả tương tác đầu phiên.</p>
  <p>SO WHAT: nếu giữ quy mô opened như 24/03 (8 users/ngày) nhưng duy trì bounce 33,3% như 25/03, mỗi ngày có thể mất khoảng 2–3 user trước khi bắt đầu chat. Đánh giá: <strong>Tiêu cực nhẹ</strong> do xu hướng chất lượng giảm ở cuối kỳ.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 2.1</span><span class="fig-title">Phễu user theo ngày: Opened, Chatted, Bounced</span></div>
    <div class="fig-wrap"><canvas id="c-funnel-daily" height="175" style="display: block; box-sizing: border-box; height: 175px; width: 595.2px;" width="595"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng 2.1 — Chi tiết chuyển đổi theo ngày</div>
    <table>
      <thead>
        <tr><th>Ngày</th><th class="r">Opened</th><th class="r">Chatted</th><th class="r">Bounced</th><th class="r">Bounce rate</th></tr>
      </thead>
      <tbody>
        <tr><td>2026-03-19</td><td class="r">7</td><td class="r">6</td><td class="r">1</td><td class="r"><span class="badge up">14,3%</span></td></tr>
        <tr><td>2026-03-20</td><td class="r">4</td><td class="r">4</td><td class="r">0</td><td class="r"><span class="badge up">0,0%</span></td></tr>
        <tr><td>2026-03-23</td><td class="r">4</td><td class="r">3</td><td class="r">1</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-24</td><td class="r">8</td><td class="r">6</td><td class="r">2</td><td class="r"><span class="badge nt">25,0%</span></td></tr>
        <tr><td>2026-03-25</td><td class="r">6</td><td class="r">4</td><td class="r">2</td><td class="r"><span class="badge dn">33,3%</span></td></tr>
        <tr class="trow-total"><td>Tổng/Avg</td><td class="r">29</td><td class="r">23</td><td class="r">6</td><td class="r">TB 19,5%</td></tr>
      </tbody>
    </table>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> 2 ngày cuối kỳ (24–25/03) đóng góp <strong>4/6 user bounced</strong> (66,7%), cho thấy rủi ro chất lượng hội thoại khi lưu lượng tăng.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">3 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 4 / 6</span></div>

  <h2 data-n="3">Biến động chất lượng phiên theo ngày</h2>
  <p class="lead">Bounce rate theo ngày dao động mạnh từ <strong>0,0%</strong> đến <strong>33,3%</strong>, biên độ <strong>33,3 điểm %</strong>.</p>
  <p>WHAT &amp; WHY: ngày 20/03 đạt 0,0% cho thấy luồng mở-chat liền mạch; ngược lại 25/03 đạt 33,3% với 2/6 user rời đi sớm. Khi so với 19/03 (14,3%), mức 33,3% cao hơn <strong>19,0 điểm %</strong>, phản ánh trải nghiệm đầu phiên không nhất quán.</p>
  <p>COMPARED TO: tổng thể theo bảng tổng hợp là 35,3%, cao hơn mức trung bình ngày từ bảng chi tiết (19,5%). Chênh lệch này cho thấy phương pháp tổng hợp theo user unique toàn kỳ và tổng hợp theo ngày cho kết quả khác nhau, cần chuẩn hóa để theo dõi KPI thống nhất.</p>
  <p>SO WHAT: nếu lấy mốc mục tiêu vận hành 25%, thì kỳ này ở mức 35,3% tương đương vượt <strong>10,3 điểm %</strong>; cần giảm ít nhất khoảng <strong>29,2%</strong> tương đối trên chính bounce rate hiện tại để về target. Đánh giá: <strong>Trung tính nghiêng tiêu cực</strong>.</p>

  <div style="display:grid;grid-template-columns:1fr 1fr;gap:8mm;margin:4mm 0">
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.1</span><span class="fig-title">Xu hướng Bounce Rate theo ngày</span></div>
      <div class="fig-wrap"><canvas id="c-bounce-line" height="175" width="300" style="display: block; box-sizing: border-box; height: 175px; width: 300px;"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_11.</div>
    </div>
    <div class="fig">
      <div class="fig-header"><span class="fig-num">Hình 3.2</span><span class="fig-title">Cơ cấu tổng thể Opened/Chatted/Bounced</span></div>
      <div class="fig-wrap"><canvas id="c-overall-donut" height="175" width="300" style="display: block; box-sizing: border-box; height: 175px; width: 300px;"></canvas></div>
      <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_12.</div>
    </div>
  </div>

  <div class="note info"><div class="note-icon">i</div><p><strong>Lưu ý:</strong> Tổng opened/chatted/bounced theo bảng tổng là <strong>17/12/6</strong>, khác với phép cộng theo ngày <strong>29/23/6</strong>; khả năng cao do unique user toàn kỳ khác với unique theo từng ngày.</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">4 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 5 / 6</span></div>

  <h2 data-n="4">Đối soát nguồn dữ liệu &amp; rủi ro đo lường</h2>
  <p class="lead">Dữ liệu mở chatbot theo Clevertap có hai nguồn: users_opened_profile (5,4,4,9,6) và users_opened_device (7,4,4,8,6), chênh theo ngày là +2,0,0,-1,0.</p>
  <p>WHY: profile có thể đại diện user-level sau hợp nhất định danh, còn device phản ánh thiết bị; vì vậy 19/03 device cao hơn profile 2 user (7 vs 5), còn 24/03 profile lại cao hơn device 1 user (9 vs 8). Điều này tạo rủi ro khi tính conversion nếu trộn khác đơn vị đo.</p>
  <p>So với Langfuse users_chatted_device (7,8,1,4,7,6), có ngày 20/03 ghi nhận 8 users chat cao hơn opened device của Clevertap là 4; đồng thời có thêm ngày 21/03 chỉ xuất hiện ở Langfuse với 1 user chat. Đây là dấu hiệu lệch coverage event hoặc timezone/cửa sổ lọc.</p>
  <p>SO WHAT: nếu không chuẩn hóa tracking, dashboard có thể báo conversion vượt 100% ở một số ngày (ví dụ 20/03 theo nguồn chéo: 8 chat / 4 open = 200%). Đánh giá: <strong>Tiêu cực về độ tin cậy đo lường, cần xử lý trước khi scale KPI</strong>.</p>

  <div class="fig">
    <div class="fig-header"><span class="fig-num">Hình 4.1</span><span class="fig-title">Đối soát users_opened giữa Profile vs Device</span></div>
    <div class="fig-wrap"><canvas id="c-open-compare" height="175" width="595" style="display: block; box-sizing: border-box; height: 175px; width: 595.2px;"></canvas></div>
    <div class="fig-cap"><strong>Nguồn:</strong> sql_clevertap_8 và sql_clevertap_9.</div>
  </div>

  <div class="note warn"><div class="note-icon">!</div><p><strong>Cảnh báo:</strong> Chênh lệch định danh giữa profile/device và chênh coverage giữa Clevertap–Langfuse có thể làm sai lệch quyết định tối ưu funnel nếu không thống nhất metric chuẩn.</p></div>
  <div class="note success"><div class="note-icon">✓</div><p><strong>Tích cực:</strong> Dữ liệu bounce theo ngày trong sql_clevertap_11 nhất quán nội bộ (users_bounced khớp với tỷ lệ bounce_rate_pct từng ngày).</p></div>

  <div class="pf"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">5 / 6</span></div>
</div>

<div class="page cp">
  <div class="rh"><span class="rh-left"><span class="rh-dot"></span>Phân tích Chatbot Usage</span><span class="rh-right">Trang 6 / 6</span></div>

  <h2 data-n="5">Kết luận &amp; Khuyến nghị</h2>
  <h3>5.1 Kết luận</h3>
  <p>Trong kỳ báo cáo, câu trả lời cho 3 câu hỏi chính là: <strong>17 user mở chatbot</strong>, <strong>12 user thực sự chat</strong>, và <strong>bounce rate tổng thể 35,3%</strong>. Hiệu quả phễu Open → Chat đạt 70,6%, nhưng vẫn mất 5 user không chat và ghi nhận 6 bounced users theo bảng tổng.</p>
  <p>Từ góc vận hành, chất lượng không ổn định theo ngày (0,0% đến 33,3%). Từ góc tăng trưởng, ngày có volume cao (24/03 opened 8) chưa chuyển hóa tốt tương ứng. Từ góc rủi ro, chênh metric giữa profile/device và Clevertap/Langfuse cho thấy cần ưu tiên data governance.</p>

  <h3>5.2 Khuyến nghị hành động</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text">Chuẩn hóa KPI chính theo một định nghĩa duy nhất: ưu tiên <strong>user unique toàn kỳ</strong> cho báo cáo điều hành, và tách riêng dashboard theo ngày để tránh hiểu sai.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text">Thiết lập cảnh báo khi bounce rate ngày vượt <strong>25%</strong>; hiện đã có 3/5 ngày ở mức 25,0% trở lên.</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text">A/B test thông điệp mở đầu chatbot trong 7 ngày, mục tiêu giảm bounce tổng từ <strong>35,3%</strong> xuống dưới <strong>30%</strong>.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text">Đối soát timezone, event trigger và identity stitching giữa Clevertap và Langfuse; ưu tiên xử lý chênh lớn như ngày 20/03 (opened 4 vs chatted 8 theo nguồn chéo).</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text">Bổ sung bước “intent quick-reply” ngay sau open để tăng tỷ lệ bắt đầu chat; đo lường tác động qua chỉ số chat/open theo ngày (hiện dao động 66,7%–100%).</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text">Báo cáo tuần tiếp theo cần thêm cohort first-time vs returning để xác định nhóm đóng góp chính vào <strong>6 bounced users</strong>.</span></div>
  </div>

  <hr class="fn-rule">
  <p class="fn">¹ Tất cả số liệu trong báo cáo được lấy trực tiếp từ các bảng sql_clevertap_8/9/11/12 và sql_langfuse_10 do người dùng cung cấp.</p>

  <div class="sigblock">
    <div class="sig-item">
      <div class="sig-label">Người lập</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">AI Report Agent</div>
      <div class="sig-role">Phân tích dữ liệu</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Kiểm tra</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
    <div class="sig-item">
      <div class="sig-label">Phê duyệt</div>
      <div class="sig-line" style="height:14mm"></div>
      <div class="sig-name">—</div>
      <div class="sig-role">—</div>
    </div>
  </div>

  <div class="pf" style="margin-top:6mm"><span class="pf-left">Chatbot Usage Report</span><span class="pf-center">CB-USG-2026-03</span><span class="pf-right">6 / 6 · Trang cuối</span></div>
</div>

<script>
const F = {family:"''Inter'',sans-serif",size:9}
const TIP = {backgroundColor:"#0F2044",titleColor:"#93C5FD",bodyColor:"#F1F5F9",padding:11,cornerRadius:6,titleFont:{...F,size:9},bodyFont:{...F,size:11,weight:"700"}}
const AX = (cb)=>({grid:{color:"rgba(0,0,0,.05)"},border:{display:false},ticks:{color:"#6B7280",font:F,...(cb?{callback:cb}:{})}})
const AXX = {grid:{display:false},border:{display:false},ticks:{color:"#6B7280",font:F}}

new Chart("c-funnel-daily",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Users Opened",data:[7,4,4,8,6],backgroundColor:"#1A4A8C",borderRadius:4,borderSkipped:false},
    {label:"Users Chatted",data:[6,4,3,6,4],backgroundColor:"#0D6E4F",borderRadius:4,borderSkipped:false},
    {label:"Users Bounced",data:[1,0,1,2,2],backgroundColor:"#B91C1C",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})

new Chart("c-bounce-line",{type:"line",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[{label:"Bounce Rate (%)",data:[14.3,0.0,25.0,25.0,33.3],borderColor:"#C8860A",backgroundColor:"rgba(200,134,10,.22)",fill:true,tension:0.4,pointRadius:3.5}]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false},tooltip:TIP},scales:{x:AXX,y:AX(v=>v+"%")}}})

new Chart("c-overall-donut",{type:"doughnut",data:{
  labels:["Opened Users","Chatted Users","Bounced Users"],
  datasets:[{data:[17,12,6],backgroundColor:["#1A4A8C","#0D6E4F","#B91C1C"],borderWidth:2,borderColor:"#fff"}]
},options:{cutout:"65%",responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"bottom",labels:{font:F}},tooltip:TIP}}})

new Chart("c-open-compare",{type:"bar",data:{
  labels:["2026-03-19","2026-03-20","2026-03-23","2026-03-24","2026-03-25"],
  datasets:[
    {label:"Opened Profile",data:[5,4,4,9,6],backgroundColor:"#7C3AED",borderRadius:4,borderSkipped:false},
    {label:"Opened Device",data:[7,4,4,8,6],backgroundColor:"#0891B2",borderRadius:4,borderSkipped:false}
  ]
},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{position:"top",labels:{font:F}},tooltip:TIP},scales:{x:AXX,y:AX()}}})
</script>
<hr>
<div class="followup-section">
  <h2 data-n="8">Action tiếp theo (Follow-up)</h2>
  <p class="lead">Ưu tiên cao nhất là giảm <strong>empty answer</strong> ở các intent có giá trị và xử lý nhóm truy vấn chậm, vì dữ liệu cho thấy chất lượng phản hồi suy giảm mạnh khi latency tăng.</p>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--red)">
      <span class="kpi-label">Empty rate toàn kỳ</span>
      <span class="kpi-value">47.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">116/245 traces rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--gold)">
      <span class="kpi-label">Nhóm ≥15s</span>
      <span class="kpi-value">70.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">41/57 bị rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">&lt;10s</span>
      <span class="kpi-value">16.4<span class="kpi-unit">%</span></span>
      <span class="kpi-change up">16/98 bị rỗng</span>
    </div>
    <div class="kpi" style="--kpi-accent:var(--green)">
      <span class="kpi-label">Product discovery</span>
      <span class="kpi-value">77.6<span class="kpi-unit">%</span></span>
      <span class="kpi-change dn">58/76 bị rỗng</span>
    </div>
  </div>

  <div class="note warn">
    <div class="note-icon">!</div>
    <p><strong>Cảnh báo:</strong> follow-up trong 30 phút hiện đang <strong>0% cho cả empty và non-empty</strong> (0/253). Điều này cho thấy chưa có cơ chế “giữ phiên” sau phản hồi, đặc biệt nguy hiểm khi bot trả lời rỗng.</p>
  </div>

  <h3>Đề xuất action theo mức ưu tiên (30 ngày)</h3>
  <div style="margin-top:3mm">
    <div class="rec-item"><span class="rec-n">1</span><span class="rec-text"><strong>Hotfix fallback cho intent product_discovery (P0):</strong> khi model không sinh được câu trả lời, trả ngay block dự phòng gồm “Top danh mục + link sản phẩm + CTA gặp tư vấn”. Lý do: intent này có 58/76 câu rỗng (77.6%), là điểm rò rỉ lớn nhất.</span></div>
    <div class="rec-item"><span class="rec-n">2</span><span class="rec-text"><strong>Thiết lập SLA latency theo ngưỡng chặn (P0):</strong> nếu xử lý vượt 10s thì chuyển sang response rút gọn thay vì chờ đầy đủ. Dữ liệu cho thấy empty tăng từ 16.4% (&lt;10s) lên 60.8% (10–15s) và 70.4% (≥15s).</span></div>
    <div class="rec-item"><span class="rec-n">3</span><span class="rec-text"><strong>Routing theo intent + template trả lời sẵn (P1):</strong> với product_discovery, price_promo, size_fit ở ngày xấu (23/03 có nhiều nhóm 100% empty), dùng câu trả lời có cấu trúc trước rồi mới enrich bằng model để tránh “trả rỗng hoàn toàn”.</span></div>
    <div class="rec-item"><span class="rec-n">4</span><span class="rec-text"><strong>Kích hoạt re-engagement trong 5–30 phút (P1):</strong> do follow-up hiện 0%, cần trigger nhắc lại theo ngữ cảnh phiên (“Bạn muốn xem thêm mẫu tương tự không?”). KPI mục tiêu: follow-up_rate từ 0% lên tối thiểu 8–12% trong 2 tuần.</span></div>
    <div class="rec-item"><span class="rec-n">5</span><span class="rec-text"><strong>Ưu tiên ngày có traffic mở cao nhưng surf thấp (P1):</strong> 24/03 có 9 users mở, 12 sessions, 18 opens nhưng avg_surfing chỉ 1.5s; khả năng cao người dùng rời đi sớm. Cần A/B vị trí CTA mở chat + câu chào đầu phiên ngắn, rõ lợi ích.</span></div>
    <div class="rec-item"><span class="rec-n">6</span><span class="rec-text"><strong>Thiết lập dashboard cảnh báo vận hành theo ngày (P2):</strong> alert khi empty_pct ngày vượt 40% hoặc bucket ≥15s vượt 20% trace. Ví dụ 24/03 nhóm ≥15s có 13/13 empty (100%) cần cảnh báo tức thì.</span></div>
    <div class="rec-item"><span class="rec-n">7</span><span class="rec-text"><strong>Chuẩn hóa đo lường funnel mở → chat → phản hồi có ích (P2):</strong> kết hợp Clevertap + Langfuse theo session_id để thấy rõ rớt ở bước nào; hiện có dữ liệu mở phiên (20 opens ngày 25/03) nhưng chưa nối trực tiếp với chất lượng trả lời theo từng phiên.</span></div>
  </div>

  <div class="tbl-wrap">
    <div class="tbl-cap">Bảng FU.1 — Mục tiêu vận hành sau khi triển khai action</div>
    <table>
      <thead>
        <tr>
          <th>Chỉ số</th>
          <th class="r">Hiện tại</th>
          <th class="r">Mục tiêu 2 tuần</th>
          <th class="r">Mục tiêu 30 ngày</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Empty rate toàn bộ traces</td>
          <td class="r">47.4%</td>
          <td class="r">≤ 35%</td>
          <td class="r">≤ 25%</td>
        </tr>
        <tr>
          <td>Empty rate nhóm ≥15s</td>
          <td class="r">70.4%</td>
          <td class="r">≤ 50%</td>
          <td class="r">≤ 35%</td>
        </tr>
        <tr>
          <td>Empty rate product_discovery</td>
          <td class="r">77.6%</td>
          <td class="r">≤ 55%</td>
          <td class="r">≤ 35%</td>
        </tr>
        <tr>
          <td>Follow-up trong 30 phút</td>
          <td class="r">0.0%</td>
          <td class="r">≥ 8%</td>
          <td class="r">≥ 12%</td>
        </tr>
        <tr class="trow-total">
          <td>Ưu tiên triển khai</td>
          <td class="r">P0/P1/P2</td>
          <td class="r">Hotfix + đo lường</td>
          <td class="r">Tối ưu bền vững</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>
<hr>
<div class="followup-section">
  <h2 data-n="F">Trả lời nhanh: Số khách hàng mở app hôm nay</h2>
  <p class="lead">Theo dữ liệu mới nhất từ Clevertap, <strong>hôm nay có 124.978.500 khách hàng mở app</strong>.</p>

  <div class="kpi-grid">
    <div class="kpi" style="--kpi-accent:var(--blue-mid)">
      <span class="kpi-label">Khách hàng mở app (hôm nay)</span>
      <span class="kpi-value">124.978.500<span class="kpi-unit"> khách hàng</span></span>
      <span class="kpi-change nt">Dữ liệu ngày 2026-03-25</span>
    </div>
  </div>

  <div class="note info">
    <div class="note-icon">i</div>
    <p><strong>Lưu ý:</strong> Nguồn dữ liệu truy vấn trả về <em>max_data_date = 2026-03-25</em> và <em>rows_cnt = 124978500</em>. Hai truy vấn bổ sung không có dữ liệu, nên hiện chỉ xác nhận được con số tổng mở app theo bản ghi mới nhất.</p>
  </div>
</div>', 3, 5, '["sql_clevertap_6", "sql_clevertap_7", "sql_clevertap_8"]', 3, 91106, '2026-03-26T09:14:36.782126+00:00', 'a8e846a3-237c-4c5d-8e79-41aad19441b8');

