# Product Statement — CityMETER Dataset: Grocery

Winning strategy ของชุดข้อมูลนี้ เขียนตามโครง Who → What → Which → How ของ Landometer Master Brand Brief v0.5.3 §7.2 และ Product Brief — CityMETER v6 §1.6 (โครงเดียวกับ CityMETER Luxury Brands 0.5) ป้ายหลักฐาน: **Observed fact** · **Owner-stated** · **Inference** · **Hypothesis** · **Project evidence**

## 0. Metadata

| รายการ | รายละเอียด |
|---|---|
| Parent product | CityMETER (City Intelligence Base Layer ของ Landometer) · แกน Location |
| Feature / dataset | Grocery — สาขาร้านค้าปลีกอาหาร 17 เชนทั่วประเทศ: ร้านสะดวกซื้อ ซูเปอร์มาร์เก็ต ไฮเปอร์มาร์เก็ต ค้าส่ง และร้านขายยา |
| รุ่นเอกสาร | 0.2 · 22 ตุลาคม 2569 รอบสอง (ระดับสถานที่ + มุมสถาปนิกแบบ Luxury Brands 0.5, สเกลสีครบ 41 ขั้นของ LDS); 0.1 · 22 ตุลาคม 2569 (รุ่นแรก ทำแบบเดียวกับ Luxury Brands 0.5) |
| สถานะ | Public demo รุ่น 0.2 บน GitHub Pages; ข้อมูลคือสิ่งที่ CityMETER production แสดงอยู่ (snapshot 22 ต.ค. 2569) ไม่ใช่สำมะโนร้านค้า |
| ผู้รับผิดชอบ | Landometer · CityMETER (owner: Montri) |
| ผู้ใช้หลัก (Hypothesis) | ทีมขยายสาขาของเชนค้าปลีก · ทีมพัฒนาโครงการ/leasing ที่ต้องเลือกร้านสะดวกซื้อหรือซูเปอร์ฯ เข้าโครงการ · นักวิเคราะห์/ที่ปรึกษาด้านทำเลและเมือง |
| ชุดข้อมูลที่เกี่ยวข้อง | Population (ทะเบียนราษฎรที่ CityMETER ใช้), Locale Insight (ย่านกรุงเทพฯ 847 แห่ง), เขตปกครอง (DOPA/DOLA), Shopping Center และ Luxury Brands (สถานที่ที่ชื่อสาขาอ้างถึง) |
| แหล่งข้อมูล / วิธี (สรุป) | ชีตวิจัย “CityMETER Grocery Thailand — Source Audit / Refresh Master 2026-10-22” + CityMETER production API (ยอด ประชากร ขอบเขต และ membership รายพื้นที่); หนึ่งรายการ = หนึ่ง source row ของเชน (บนหน้าจอเรียก “สาขา”); รายละเอียดใน `DATA_METHOD.md` |
| ข้อมูลตรวจถึง | 2026-10-22 (Observed fact, `data/grocery.json → meta.asOf`) · แหล่งต้นทางแต่ละเชนมีวันที่ของตัวเอง (29–30 ก.ย. 2569 หรือข้อมูลเดิม 12 พ.ค. 2567) |

## 1. Highlight

**Grocery คือชั้นข้อมูล “ร้านกระจุกที่ไหน เมื่อเทียบกับคน” ของค้าปลีกอาหารไทย** ช่วยให้ทีมที่ต้องตัดสินใจเรื่องสาขาหรือร้านในโครงการเห็นภายในนาทีว่าสาขาของ 17 เชนกระจุกอยู่ **จังหวัดใด อำเภอใด อปท./ย่านใด** เมื่อเทียบกับจำนวนคนที่อาศัยอยู่ และเจาะลงถึงสาขาจริงพร้อมแหล่งข้อมูล เพื่อตอบคำถามก่อนลงทุน: **“ตรงนี้ร้านแน่นเกินคนแล้ว หรือยังมีคนมากกว่าร้าน”**

จุดเด่นคือ **คำถามเดียวที่ถามซ้ำได้ทุกระดับ**: ส่วนแบ่งสาขาของพื้นที่อันดับต้นเทียบกับส่วนแบ่งประชากรของพื้นที่เหล่านั้น — ระดับประเทศ จังหวัด อำเภอ และ อปท./ย่าน — ด้วยตัวเลขที่ตรงกับ CityMETER production ทุกพื้นที่ และสลับเป็น “สาขาต่อ 1 หมื่นคน” ได้ในคลิกเดียว (Which §2.3)

ข้อค้นพบแรกของ snapshot ปัจจุบัน (Observed fact, ไม่กรอง): **30% ของสาขา (8,228 จาก 27,607) อยู่ใน 3 จังหวัด — กรุงเทพฯ ชลบุรี สมุทรปราการ — ซึ่งมีคนแค่ 13% ของประเทศ** ในชลบุรี 79% ของสาขาอยู่ใน 3 อำเภอ (บางละมุง ศรีราชา เมืองชลบุรี) ที่มีคน 63% ของจังหวัด และภูเก็ตมีสาขาต่อคนสูงที่สุด (11.3 ต่อ 1 หมื่นคน เทียบค่าประเทศ 4.2)

**หนึ่งบรรทัด:** แผนที่สาขาร้านค้าปลีกอาหาร 17 เชนที่บอกว่าร้านกระจุกที่ไหนเมื่อเทียบกับคน ตั้งแต่ระดับประเทศถึง อปท. และย่าน พร้อมแหล่งข้อมูลรายสาขา

## 2. Description

### 2.1 Who — ใครคือผู้ใช้ และปัญหาของพวกเขาคืออะไร

ผู้ใช้สามกลุ่มแก้คำถามเดียวกัน “ร้านแน่นเกินคนหรือยัง” จากคนละมุม (Hypothesis — นิยามจากประสบการณ์ของทีมและลูกค้าของ CityMETER ยังไม่ได้ยืนยันด้วยการสัมภาษณ์ผู้ใช้ภายนอก; แผนทดสอบใน §7)

| กลุ่ม | การตัดสินใจที่ต้องทำ | Functional needs | Emotional needs | Trigger / เสียงในหัว |
|---|---|---|---|---|
| **ทีมขยายสาขาของเชนค้าปลีก** (network planning, site selection ของร้านสะดวกซื้อ/ซูเปอร์ฯ/ค้าส่ง) | จะเปิดสาขาถัดไปที่อำเภอหรือ อปท. ใด และรูปแบบใด | เห็นพื้นที่ที่คนมากแต่ร้านน้อย (white space) และพื้นที่ที่แน่นแล้ว เทียบเชนตัวเองกับคู่แข่งในขอบเขตเดียวกัน ส่งรายชื่อพื้นที่พร้อมตัวเลขให้คณะกรรมการ | กลัวเปิดซ้อนแล้วกินยอดตัวเอง อยากให้ข้อเสนอดูมีหลักฐาน ไม่ใช่ความรู้สึก | “อำเภอไหนยังมีคนมากกว่าร้าน?” “ถ้าเราไม่เปิด คู่แข่งเปิดหรือยัง?” “ทำไมตรงนี้ 7-Eleven แน่นกว่าที่อื่น?” |
| **ทีมพัฒนาโครงการ / leasing** (คอนโด หมู่บ้าน มิกซ์ยูส ปั๊มน้ำมัน โรงพยาบาล) | จะเชิญร้านสะดวกซื้อหรือซูเปอร์ฯ แบรนด์ใดเข้าโครงการ และพื้นที่รอบโครงการขาดอะไร | ดูว่ารอบโครงการมีร้านประเภทใด กี่ร้าน ต่อคนเท่าไร เทียบย่านข้างเคียง ใช้ภาพเดียวคุยกับเชน | กลัวเชิญผิดรูปแบบ อยากมีข้อมูลที่เอาไปต่อรองได้ทันที | “รอบโครงการเรามีร้านพอแล้วหรือยัง?” “ซูเปอร์ฯ ใกล้สุดอยู่ไหน?” |
| **นักวิเคราะห์ ที่ปรึกษา และหน่วยงานเมือง** (feasibility, ทำเล, การเข้าถึงสินค้าจำเป็น) | จะใช้หลักฐานอะไรใน proposal หรือรายงาน และพื้นที่ไหนควรดูต่อ | ตัวเลขที่ตรงกับแหล่งเดียวกันทุกระดับ ตรวจย้อนถึงสาขาได้ ประชากรที่ใช้ระบุชัด | กลัวถูก challenge เรื่องที่มาและวันที่ เหนื่อยกับการรวม locator ทีละเชน | “ตัวเลขนี้ตรงกับ CityMETER ไหม?” “ประชากรมาจากไหน ปีไหน?” |

**Value proposition:** เติมช่องว่างระหว่าง “รู้ว่าร้านสะดวกซื้ออยู่เต็มเมือง” กับ “เห็นว่าร้านกระจุกเกินคนที่ไหน ขาดที่ไหน ในระดับที่ใช้ตัดสินใจได้จริง (อำเภอ อปท. ย่าน) และตรวจย้อนถึงสาขาได้”

**Core pain (Inference จากวิธีทำงานปัจจุบัน §2.3):** ข้อมูลสาขาแยกรายเชนและไม่ได้เทียบกับประชากร การรวมเองต้องจับคู่ขอบเขตปกครองและประชากรหลายแหล่งที่ไม่ตรงกัน และตัวเลขที่ได้มักไม่ตรงกับระบบที่ลูกค้าเห็น

### 2.2 What — ปัญหาที่เลือกแก้ และแก้อย่างไร

**ปัญหาที่เลือกแก้:** “ก่อนเลือกพื้นที่เปิดสาขาหรือร้านในโครงการ ทีมต้องรู้ว่าร้านค้าปลีกอาหารกระจุกตัวเทียบกับคนอย่างไรในแต่ละระดับพื้นที่ แต่ไม่มีภาพเดียวที่เทียบได้ทุกระดับด้วยตัวเลขชุดเดียวกัน” ไม่ได้เลือกแก้เรื่องยอดขาย ค่าเช่า footfall หรือกำลังซื้อ

**เร่งด่วนและรุนแรงแค่ไหน:** เร่งด่วนทุกรอบวางแผนสาขาและทุกโครงการที่ต้องเลือกร้าน (Inference) · รุนแรงเพราะสาขาที่เปิดผิดที่ผูกกับสัญญาและกินยอดสาขาเดิม (Inference; ไม่ระบุตัวเลขต้นทุนเพราะยังไม่มีหลักฐานโครงการ)

**Solution ที่ใช้:** ชั้นข้อมูลแบบ administrative-drill บน CityMETER (เจ้าของเลือกหน่วยพื้นที่ “A+อปท” และ Aha “สาขากระจุกเทียบคน” 22 ต.ค. 2569 — Owner-stated)

- **ข้อมูลต้นทาง (raw):** 27,607 สาขาของ 17 เชน 5 ประเภท (ยอด CityMETER 27,608); ทุกแถวมีแหล่งข้อมูลและวันที่ของแหล่ง, tile ต้นทาง, ที่อยู่ (ขาด 178), ตำบล; ประชากรและขอบเขตของ 77 จังหวัด 928 อำเภอ 8,621 อปท./ย่าน (Observed fact)
- **ค่าคำนวณ (calculated):** สาขา แบรนด์ไม่ซ้ำ และสาขาต่อ 1 หมื่นคนต่อพื้นที่; ส่วนแบ่งสาขาและส่วนแบ่งประชากรของ k พื้นที่อันดับต้นทุกระดับ (first Aha); อันดับและระดับสี quantile 5 ระดับ
- **การตีความ (inferred):** “กระจุก” หมายถึงส่วนแบ่งสาขามากกว่าส่วนแบ่งคน ไม่ใช่คำตัดสินว่าพื้นที่อิ่มตัวหรือมีศักยภาพ; สถานที่ตามชื่อสาขาเป็นชื่อที่สาขาอ้างถึง ไม่ใช่การยืนยันว่าอยู่ภายใน
- **ผลลัพธ์ที่ผู้ใช้เห็น:** ข้อค้นพบแรก (30% ใน 3 จังหวัด, คน 13%) บนแผนที่ที่โฟกัส 3 จังหวัดนั้น → จังหวัด (Aha ระดับอำเภอ) → อำเภอ (Aha ระดับ อปท./ย่าน) → อปท./ย่าน (เทียบค่าเฉลี่ยอำเภอ) → สาขารายรายการพร้อมที่อยู่ แหล่งข้อมูล และความแม่นพิกัด → กราฟเทียบพื้นที่และตาราง

> **Data Clarity:** สาขาคือสิ่งที่ CityMETER production แสดง ณ 22 ต.ค. 2569 (แหล่งต้นทางคือหน้าค้นหาสาขาของแต่ละแบรนด์หรือข้อมูลเดิม); ยอดทุกพื้นที่ตรงกับ API (อปท./ย่าน 8,621/8,621 · อำเภอ 927/928 · จังหวัด 76/77 — ต่างกัน 1 แถวที่เกาะพะงัน); ประชากรคือทะเบียนราษฎร พ.ค. 2569 ที่ CityMETER ใช้; “อยู่ในรายการของแบรนด์” ไม่ใช่การยืนยันว่าเปิดอยู่; พิกัดถอดจาก vector tile (ตาราง ~10 ม.); ไม่ใช่สำมะโนร้านขายของชำทั้งประเทศ

### 2.3 Which — ผู้ใช้แก้ปัญหานี้ด้วยอะไรอยู่ และต้องดีกว่าแค่ไหนจึงจะเปลี่ยนพฤติกรรม

**สิ่งที่ใช้อยู่ (Inference จากวิธีทำงานที่พบบ่อย ยังไม่ได้สำรวจผู้ใช้):**

| ทางเลือก | ใช้ทำอะไร | จุดแข็ง | ช่องว่างที่ Grocery ต้องปิด |
|---|---|---|---|
| หน้าค้นหาสาขาของแต่ละแบรนด์ (7-Eleven, CJ More, Lotus's, Big C, Tops …) | ดูสาขาทีละเชน | ข้อมูลตรงจากเจ้าของ | ทีละเชน ไม่เทียบกับคน ไม่รวมเป็นพื้นที่ ส่งออกไม่ได้ |
| Google Maps / แผนที่ทั่วไป | ค้นร้านรอบจุดหนึ่ง | ครอบคลุม ใช้ง่าย | นับเป็นพื้นที่ไม่ได้ ไม่มีประชากร ไม่รู้ว่าครบหรือไม่ |
| CityMETER production (หน้า Grocery) | ดูยอดและความหนาแน่นรายพื้นที่ | ตัวเลขทางการของ Landometer | ยังไม่บอกข้อค้นพบให้ทันที ต้องอ่านเองทีละระดับ (Inference) |
| สถิติราชการ / รายงานที่ปรึกษา | ภาพรวมจังหวัด | อ้างอิงได้ | ไม่ลงถึง อปท./ย่าน ไม่ลงรายสาขา ไม่สด |
| GIS ภายในองค์กร | วิเคราะห์เอง | ยืดหยุ่น | ต้องรวมข้อมูลและขอบเขตเอง ตัวเลขไม่ตรงกับที่ลูกค้าเห็น |

**ทางเลือกที่เป็นมาตรฐานคุณภาพ (aspirational, Inference):** ระบบวิเคราะห์ทำเลค้าปลีกระดับสากล (เช่น Esri Business Analyst, Placer.ai) — เรียนรู้เรื่องคำตอบที่เริ่มจากคำถามธุรกิจ, การเทียบกับประชากร/ตลาด และการส่งต่อเป็นรายงาน; ระบบ locator ที่ดีของแบรนด์ — ความชัดของรายละเอียดสาขา

**Quality bar ที่ต้องผ่านจึงจะเปลี่ยนพฤติกรรม:**

1. ข้อค้นพบแรกอ่านจบใน 10 วินาที และบอกทั้งตัวตั้ง ตัวหาร และพื้นที่ที่ถูกนับ
2. ตัวเลขทุกพื้นที่ตรงกับ CityMETER production (ต่างได้เฉพาะที่อธิบายไว้)
3. ถามคำถามเดิมได้ทุกระดับภายใน 2 คลิก และกลับขึ้นได้จาก breadcrumb
4. สลับจำนวน ↔ ต่อคน โดยไม่เสียตำแหน่งที่กำลังดู
5. ทุกสาขาตรวจย้อนได้ถึงแหล่งข้อมูล วันที่ และ tile ต้นทาง
6. ไม่มีค่า “0” ปลอมแทนข้อมูลที่ไม่มี
7. ใช้ได้บนมือถือ 390 px และฉายในห้องประชุมได้ทั้งสองธีม

### 2.4 How — เราชนะอย่างไร และต่อยอดอะไรได้

1. **คำถามเดียวทุกระดับ:** Aha เดียวที่คำนวณใหม่ตามระดับและตัวกรอง ทำให้ผู้ใช้เรียนครั้งเดียวแล้วใช้ได้ทั้งประเทศถึงย่าน
2. **ตัวเลขตรงกับ production:** membership จาก production เอง (ไม่ใช่ point-in-polygon ของเรา) จึงอธิบายต่อลูกค้าได้ว่าตัวเลขเดียวกับที่เห็นใน CityMETER
3. **ประชากรเป็นตัวเทียบตั้งแต่หน้าแรก:** ไม่ต้องคำนวณเอง และบอกชัดเมื่อไม่มีประชากร
4. **ลงถึงสาขาจริงพร้อมหลักฐาน:** ที่อยู่ ตำบล แหล่งข้อมูล วันที่ tile และลิงก์กลับ production
5. **พร้อมส่งต่อ:** handoff สำหรับ developer/agent (สัญญาข้อมูล acceptance criteria tests) เพื่อยกเข้า production

ต่อยอดได้ (ดู backlog ใน `handoff/IMPLEMENTATION_PLAN.md`): ช่องว่างร้านต่อคนตามรัศมีเดินถึง, เทียบเชนต่อเชน, ข้อมูลเปิด–ปิดรายสาขา, เชื่อม Locale Insight นอกกรุงเทพฯ, โลโก้สถานที่บนแผนที่

## 3. บทบาทผลิตภัณฑ์และเส้นทางผู้ใช้

Grocery เป็น Location dataset ใน CityMETER: หน้าแรกคือข้อค้นพบ (ไม่ใช่ฟอร์มตัวกรอง) → คลิกพื้นที่เพื่อเจาะลง → อ่านพื้นที่ย่อยด้วยคำถามเดิม → เปิดสาขา → ส่งต่อด้วยกราฟ ตาราง หรือลิงก์ที่มีสถานะใน URL

## 4. ข้อมูลและวิธี (Data and method clarity)

- หน่วย: หนึ่ง source row = หนึ่งสาขา (ไม่รวม ไม่ซ้ำ ไม่ย้ายพิกัด)
- พื้นที่: จังหวัด/อำเภอจาก membership ตำบลของแหล่งต้นทาง, อปท./ย่านจาก overlay membership ของ production
- ประชากร: ทะเบียนราษฎร พ.ค. 2569 ที่ CityMETER ใช้; ไม่มี = ไม่มีข้อมูล
- ตัวชี้วัด: สาขา, แบรนด์ไม่ซ้ำ, สาขาต่อ 1 หมื่นคน, ส่วนแบ่งสาขา/คนของพื้นที่อันดับต้น
- สี: LDS 0.9.7 `count` และ `density.capita` ครบ 41 ขั้น (`rank-41` ตามลำดับค่า กติกาเจ้าของ 22 ต.ค. 2569), HEX เดียวกันสองธีม
- ข้อจำกัดและการสร้างใหม่: `DATA_METHOD.md`

## 5. ข้อกำหนด UX และผลลัพธ์ (ที่ Product Statement นี้กำหนด)

- หน้าแรกแสดงข้อค้นพบพร้อมพื้นที่ที่ถูกนับและปุ่มทันที (ดูทุกจังหวัด · เปรียบเทียบจังหวัด) ก่อนตัวกรอง
- focus + quiet: พื้นที่อันดับต้นมีสี ส่วนอื่นเหลือเส้นขอบ จุดสาขานอกโฟกัสเป็นสีเทา
- เส้นทาง ประเทศไทย › จังหวัด › อำเภอ/เขต › อปท./ย่าน › สถานที่ ใช้รหัสของ production ทุกระดับ
- สลับจำนวน/ต่อคนได้ทั้งในคำอธิบายแผนที่และในอันดับ; สีทุกสเกลใช้ครบ 41 ขั้นของ LDS (รุ่น 0.2)
- ระดับสถานที่ (รุ่น 0.2): ระดับอำเภอ/อปท. แสดงอาคารของสถานที่ในโฟกัส กดเข้าสถานที่แล้วเห็นอาคารในมุมสถาปนิก (two-point) ที่มองเห็นและกดได้เสมอ; อาคารเป็นหลักฐานของชื่อหรือพิกัด ไม่ใช่การยืนยันว่าร้านเช่าอยู่
- ภาษาไทยสั้น เป็นธรรมชาติ ไม่มีคำเตือนลอย ๆ บนจอ; สถานะและแหล่งข้อมูลอยู่ในรายละเอียดสาขา

## 6. Brand DNA / Voice / Visual mini-check

- Calm, clear, evidence-aware: ตัวเลขมาพร้อมตัวหารเสมอ; ใช้ “แค่” เฉพาะเมื่อข้อมูลบอกว่าน้อยกว่า
- Civic-minded: ประชากรเป็นตัวเทียบ ไม่ใช่กำลังซื้อหรือพฤติกรรม (LDS: density.capita ห้ามตีความเป็นพฤติกรรม)
- Visual: LDS 0.9.7 tokens, ฟอนต์ Bai Jamjuree / IBM Plex Sans Thai Looped / JetBrains Mono, ไอคอน nav-7, basemap กระดาษ

## 7. สิ่งที่ต้องทดสอบต่อ (Hypotheses → validation)

| Hypothesis | วิธีทดสอบ | เกณฑ์ผ่าน |
|---|---|---|
| ผู้ใช้เข้าใจ “X% ของสาขาอยู่ใน k พื้นที่ ซึ่งมีคน Y%” โดยไม่ต้องอธิบาย | ทดสอบ 5 คนจากทีมขยายสาขา/leasing ให้เล่าข้อค้นพบหลังดู 10 วินาที | ≥ 4/5 เล่าได้ถูกทั้งสองตัวเลขและพื้นที่ |
| สาขาต่อคนระดับ อปท./ย่านเปลี่ยนรายชื่อพื้นที่ที่ทีมจะไปสำรวจ | ให้ทีมขยายสาขาเลือก 5 พื้นที่ก่อนและหลังใช้ | ≥ 2 พื้นที่เปลี่ยน และเหตุผลอ้างตัวเลขในหน้า |
| ความตรงกับ production เป็นเหตุผลที่ทำให้ใช้ต่อ | สัมภาษณ์ลูกค้า CityMETER 3 ราย | ≥ 2 รายระบุว่าความตรงกันสำคัญต่อการนำไปใช้ |

### แหล่งแนวทางของเอกสาร

Landometer Master Brand Brief v0.5.3 §3.7, §7.2 · Product Brief — CityMETER v6 §1.6 · LDS 0.9.7 (v0.9.7-owner.1) · CityMETER Luxury Brands 0.5 Product Statement (โครงเดียวกัน)
