422 lines
4.1 KiB
Markdown
422 lines
4.1 KiB
Markdown
# Task J.0: KPI Definition Freeze
|
|
|
|
## Goal
|
|
|
|
Freeze KPI Definitions และ Sales Pipeline Definitions ก่อนเริ่มสร้าง CRM Dashboard KPI
|
|
|
|
หลัง Task J.0 ผ่านแล้ว ห้ามเปลี่ยนนิยาม KPI โดยไม่มี ADR ใหม่
|
|
|
|
---
|
|
|
|
# Sales Pipeline Definition
|
|
|
|
## Lead
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
ยังไม่ได้ Assign Sales
|
|
```
|
|
|
|
Rules:
|
|
|
|
```txt
|
|
assignedToUserId = null
|
|
pipelineStage = lead
|
|
```
|
|
|
|
KPI Impact:
|
|
|
|
```txt
|
|
Lead Count
|
|
Lead Aging
|
|
Lead Source
|
|
New Leads
|
|
```
|
|
|
|
---
|
|
|
|
## Opportunity
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
Assign Sales แล้ว
|
|
```
|
|
|
|
Rules:
|
|
|
|
```txt
|
|
assignedToUserId != null
|
|
pipelineStage = opportunity
|
|
```
|
|
|
|
Auto Transition:
|
|
|
|
```txt
|
|
Lead
|
|
↓ Assign Sales
|
|
Opportunity
|
|
```
|
|
|
|
KPI Impact:
|
|
|
|
```txt
|
|
Opportunity Count
|
|
Opportunity Value
|
|
Hot Opportunities
|
|
Opportunity Aging
|
|
```
|
|
|
|
---
|
|
|
|
## Closed Won
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
ลูกค้ายืนยันรับงาน
|
|
หรือโครงการได้รับ Award
|
|
```
|
|
|
|
Rules:
|
|
|
|
```txt
|
|
pipelineStage = closed_won
|
|
```
|
|
|
|
Recommendation:
|
|
|
|
Add future field:
|
|
|
|
```txt
|
|
closedWonAt
|
|
```
|
|
|
|
---
|
|
|
|
## Closed Lost
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
แพ้คู่แข่ง
|
|
งบประมาณไม่ผ่าน
|
|
ลูกค้ายกเลิก
|
|
โครงการไม่เดินต่อ
|
|
```
|
|
|
|
Rules:
|
|
|
|
```txt
|
|
pipelineStage = closed_lost
|
|
```
|
|
|
|
Recommendation:
|
|
|
|
Add future field:
|
|
|
|
```txt
|
|
closedLostAt
|
|
lostReason
|
|
```
|
|
|
|
---
|
|
|
|
# Opportunity Lifecycle
|
|
|
|
```txt
|
|
Lead
|
|
↓ Assign Sales
|
|
Opportunity
|
|
↓ Create Quotation
|
|
Opportunity
|
|
↓ Approved Quotation
|
|
Opportunity
|
|
↓ Award
|
|
Closed Won
|
|
```
|
|
|
|
---
|
|
|
|
# Customer Party Definition
|
|
|
|
## Billing Customer
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
บริษัทที่ใช้ในการออกใบเสนอราคา
|
|
หรือวางบิล
|
|
```
|
|
|
|
Examples:
|
|
|
|
```txt
|
|
ALLA
|
|
Italian Thai
|
|
SCG
|
|
```
|
|
|
|
---
|
|
|
|
## End Customer
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
เจ้าของโครงการตัวจริง
|
|
```
|
|
|
|
Examples:
|
|
|
|
```txt
|
|
PTT
|
|
CP
|
|
SCG Chemicals
|
|
```
|
|
|
|
---
|
|
|
|
## Contractor
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
ผู้รับเหมาก่อสร้าง
|
|
```
|
|
|
|
---
|
|
|
|
## Consultant
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
ที่ปรึกษาโครงการ
|
|
```
|
|
|
|
---
|
|
|
|
## Customer
|
|
|
|
Definition:
|
|
|
|
```txt
|
|
คู่ค้าหรือผู้เกี่ยวข้องทั่วไป
|
|
```
|
|
|
|
---
|
|
|
|
# KPI Definitions
|
|
|
|
## Lead Metrics
|
|
|
|
```txt
|
|
Lead Count
|
|
New Leads
|
|
Unassigned Leads
|
|
Lead Aging
|
|
```
|
|
|
|
Lead Count:
|
|
|
|
```txt
|
|
pipelineStage = lead
|
|
```
|
|
|
|
---
|
|
|
|
## Opportunity Metrics
|
|
|
|
```txt
|
|
Opportunity Count
|
|
Open Opportunities
|
|
Hot Opportunities
|
|
```
|
|
|
|
Opportunity Count:
|
|
|
|
```txt
|
|
pipelineStage = opportunity
|
|
```
|
|
|
|
---
|
|
|
|
## Conversion Metrics
|
|
|
|
### Lead → Opportunity
|
|
|
|
Formula:
|
|
|
|
```txt
|
|
Opportunity Created
|
|
/
|
|
Total Leads
|
|
```
|
|
|
|
---
|
|
|
|
### Opportunity → Quotation
|
|
|
|
Formula:
|
|
|
|
```txt
|
|
Opportunity With Quotation
|
|
/
|
|
Total Opportunities
|
|
```
|
|
|
|
---
|
|
|
|
### Quotation → Won
|
|
|
|
Formula:
|
|
|
|
```txt
|
|
Closed Won
|
|
/
|
|
Total Opportunities With Quotation
|
|
```
|
|
|
|
---
|
|
|
|
# Revenue Metrics
|
|
|
|
## Opportunity Value
|
|
|
|
Source:
|
|
|
|
```txt
|
|
crm_enquiries.estimatedValue
|
|
```
|
|
|
|
Condition:
|
|
|
|
```txt
|
|
pipelineStage = opportunity
|
|
```
|
|
|
|
---
|
|
|
|
## Quotation Value
|
|
|
|
Source:
|
|
|
|
```txt
|
|
crm_quotations.totalAmount
|
|
```
|
|
|
|
Condition:
|
|
|
|
```txt
|
|
quotation status != cancelled
|
|
```
|
|
|
|
---
|
|
|
|
## Won Value
|
|
|
|
Source:
|
|
|
|
```txt
|
|
crm_quotations.totalAmount
|
|
```
|
|
|
|
Condition:
|
|
|
|
```txt
|
|
pipelineStage = closed_won
|
|
```
|
|
|
|
---
|
|
|
|
## Lost Value
|
|
|
|
Source:
|
|
|
|
```txt
|
|
crm_quotations.totalAmount
|
|
```
|
|
|
|
Condition:
|
|
|
|
```txt
|
|
pipelineStage = closed_lost
|
|
```
|
|
|
|
---
|
|
|
|
# Sales Ownership
|
|
|
|
Dashboard must use:
|
|
|
|
```txt
|
|
assignedToUserId
|
|
```
|
|
|
|
for:
|
|
|
|
```txt
|
|
Lead
|
|
Opportunity
|
|
```
|
|
|
|
and
|
|
|
|
```txt
|
|
salesmanId
|
|
```
|
|
|
|
for:
|
|
|
|
```txt
|
|
Quotation
|
|
```
|
|
|
|
---
|
|
|
|
# Future Fields (Not In Scope)
|
|
|
|
Do NOT implement now.
|
|
|
|
Track as technical debt:
|
|
|
|
```txt
|
|
convertedToOpportunityAt
|
|
closedWonAt
|
|
closedLostAt
|
|
lostReason
|
|
defaultPartyRole
|
|
```
|
|
|
|
---
|
|
|
|
# Output
|
|
|
|
1. KPI Definitions Frozen
|
|
2. Sales Pipeline Frozen
|
|
3. Customer Party Definitions Frozen
|
|
4. Revenue Rules Frozen
|
|
5. Dashboard Ready
|
|
|
|
---
|
|
|
|
# Definition of Done
|
|
|
|
✔ Lead definition frozen
|
|
|
|
✔ Opportunity definition frozen
|
|
|
|
✔ Won/Lost definition frozen
|
|
|
|
✔ Billing Customer definition frozen
|
|
|
|
✔ Project Party role definition frozen
|
|
|
|
✔ KPI formulas frozen
|
|
|
|
✔ Revenue formulas frozen
|
|
|
|
✔ Ready for Task J
|