ποΈ Master Report Catalog¶
Catalog Rule
Report Title is the primary key. Every report maps to exactly one ID, one email group, one schedule and one owner β no orphan reports, no hardcoded recipients.
Inventory: 6 email-distributed reports (RPT) Β· 4 automated GAS snapshots (GAS) Β· 6 dashboards (DASH) = 16 catalogued deliverables.
0. How to Read This Catalog¶
| Field | Meaning |
|---|---|
| ID | Stable reference used in links, logs and the KPI framework |
| Cadence | Generation frequency + send time (Asia/Yangon) |
| Audience | Email group (TO) + oversight (CC) |
| Source | das-db tables or etl_test warehouse objects |
| Status | β Production Β· π§ In build Β· π Planned Β· β οΈ Needs fix |
1. Catalog at a Glance¶
| ID | Title | Type | Cadence | Audience | Status |
|---|---|---|---|---|---|
| RPT-001 | Daily Sales Report | Daily 08:00 | Sales Management | β | |
| RPT-002 | Weekly Sales Performance | Mon 09:00 | Sales Management | β | |
| RPT-003 | Monthly Sales Report | Monthly 10:00 | Management | β | |
| RPT-004 | Customer Analysis Report | Fri 09:00 | CRM Team | β | |
| RPT-005 | Inventory Report | Daily 08:30 | Operations Team | β | |
| RPT-006 | Finance Summary Report | Monthly | Finance Team | π§ | |
| GAS-01 | M-Kitchen Master Data Snapshot | GAS | Mon 04:00 | Cell A2 group | β |
| GAS-02 | M-Trading Master Data Snapshot | GAS | Mon 04:00 | Cell D2 group | β |
| GAS-03 | M-Kitchen Product Pricelist | GAS | Mon 04:00 | Cell J2 group | β |
| GAS-04 | MK β M-Express Deliveries Snapshot | GAS | Monthly | Cell G2 group | β οΈ |
| DASH-01 | Executive Dashboard | Dashboard | Live | Leadership | π§ |
| DASH-02 | KR Monitoring Board | Dashboard | Live | HODs | π |
| DASH-03 | ESG Dashboard | Dashboard | Monthly | Sustainability | π |
| DASH-04 | SLA β KRs Sync Board | Dashboard | Live | Management | π |
| DASH-05 | Product Performance | Dashboard | Live | Sales/Ops | π§ |
| DASH-06 | Delivery Operations | Dashboard | Live | M-Express | π |
2. Email-Distributed Reports (RPT)¶
RPT-001 β Daily Sales Report¶
| Field | Value |
|---|---|
| Email group | Sales Management |
| TO | sales.manager@ Β· sales.team@ Β· regional.manager@company.com |
| CC | bi.team@company.com |
| Schedule | Daily Β· 08:00 |
| Source | etl_test.agg_product_sales β fact_saless |
| Content | Revenue, gross profit, margin % by BU & category; vs-target delta |
| Owner | BI Lead |
RPT-002 β Weekly Sales Performance¶
| Field | Value |
|---|---|
| Email group | Sales Management |
| TO | sales.manager@ Β· regional.manager@company.com |
| CC | bi.team@ Β· management@company.com |
| Schedule | Every Monday Β· 09:00 |
| Source | fact_saless (weekly aggregate) |
| Content | WoW trend, top/bottom 10 SKUs, cross-BU share, K-SZ-03 & K-MK-02 inputs |
RPT-003 β Monthly Sales Report¶
| Field | Value |
|---|---|
| Email group | Management |
| TO | management@ Β· finance.manager@ Β· sales.director@company.com |
| CC | bi.team@company.com |
| Schedule | Monthly Β· 10:00 (1st working day) |
| Source | fact_saless + agg_product_sales (monthly rollup) |
| Content | BU P&L inputs, channel split (B2B/Corp/B2C), OKR-1 progress vs Lakhs targets |
RPT-004 β Customer Analysis Report¶
| Field | Value |
|---|---|
| Email group | CRM Team |
| Schedule | Every Friday Β· 09:00 |
| Source | das-db.customers β sales_invoices β customer_payments |
| Content | ABC classes, churn flags, identified-customer % (K-SZ-02), payment-on-time (K-MK-01) |
RPT-005 β Inventory Report¶
| Field | Value |
|---|---|
| Email group | Operations Team |
| Schedule | Daily Β· 08:30 |
| Source | das-db.stock_summaries β stock_summary_daily_balances |
| Content | Current stock, stock shortage % (K-MF-01), ageing buckets (K-SZ-01), FEFO expiry alerts (30/60/90 d) |
RPT-006 β Finance Summary Report¶
| Field | Value |
|---|---|
| Email group | Finance Team |
| Schedule | Monthly (by 15th, per K-FN-01 SLA) |
| Source | das-db.account_transactions β banking_transactions β bills |
| Content | Revenue & financial summary, AP/AR exposure, unreconciled bank items |
| Status | π§ Wiring to warehouse finance fact (Epic 3 scope) |
3. Automated GAS Snapshots (GAS)¶
Shared platform
All four run on Google Apps Script (V8, Asia/Yangon), connect via JDBC to
das-db @ DigitalOcean (db-distribution-accounting-β¦ondigitalocean.com:25060),
write a data tab, export CSV and email it. Recipients are read from the shared
config sheet 17Bxuaβ¦hz_o β never hardcoded. Full runbook:
Report Automation (GAS).
GAS-01 β M-Kitchen Master Data Snapshot¶
| Config | Value |
|---|---|
| Trigger | Weekly Β· Monday 04:00β05:00 (createWeeklyTrigger) |
| Filename | 'W'ww/yy 'M-Kitchen Master Data Snapshot' |
| Drive folder | 1ADhJd5JlN5Z3gHn7j4heX5O_4f65wSSm |
| Recipients cell | A2 Β· DB user kmkyaw |
| BU scope | M-Kitchen (84093770-29ad-4e8e-9da1-babe583c0d69) |
Content & logic: active goods (nature='G', sellable/purchasable) with
MasterdataAlert flags β Confirm shelf life (<30 d), Confirm brand name,
No batch tracking, No expiry date tracking β 3-level categories, account names
(purchase/sales/inventory), and Source resolution: Kit β M-Trading β
Repacking β M-Kitchen via purchased_sku cross-BU joins.
GAS-02 β M-Trading Master Data Snapshot¶
| Config | Value |
|---|---|
| Trigger | Weekly Β· Monday 04:00 |
| Filename | 'W'ww/yy 'M-Trading Master Data Snapshot' |
| Drive folder | 1KNwNKApqaaKWj9LUjY7nwikQ3A9nXt6z |
| Recipients cell | D2 Β· DB user thansoeaung |
| BU scope | M-Trading Food (7ef7c6c0-b59d-4be9-960c-7fa573038642) |
Same master-data health logic as GAS-01; Source = Kit vs Supplier.
GAS-03 β M-Kitchen Product Pricelist¶
| Config | Value |
|---|---|
| Trigger | Weekly Β· Monday 04:00 |
| Filename | 'W'ww/yy 'M-Kitchen Product Pricelist' |
| Drive folder | 1WY4Thfn7-PYs-W1Mp8enLgrskPQR-Saa |
| Recipients cell | J2 Β· DB user thansoeaung |
Content & logic (CTE chain): LatestPO β BaseData β SupplierSKULookup β
SurveyAverages (30-day market survey: Retail / Street / B2B) β PriceCalculation β
FinalCalculations. Outputs conversion rates, purchasing vs last-PO price,
delivery cost (weight Γ 300), Catalogue/Corp/B2B prices, margins & discounts, and
Price_Alert flags:
| Alert | Meaning |
|---|---|
Purchasing price increased |
Calculated purchasing > last PO price |
Negative margin |
Lowest price < total cost |
Catalogue price not configured |
Sellable but catalogue = 1 |
No PO price known / No purchasing price |
Missing cost evidence |
GAS-04 β MK β M-Express Deliveries Snapshot¶
| Config | Value |
|---|---|
| Trigger | Monthly β manual trigger β οΈ (add createMonthlyTrigger, see runbook 6.2) |
| Filename | [MMM] 'M-Kitchen --> M-Express Deliveries Master Data Snapshot' |
| Drive folder | 1rla_QZmXl6P6lV_2neApaaJY6QyF5T1o |
| Recipients cell | G2 Β· DB user thansoeaung |
Content: per invoice β order_number, invoice_number, InvoiceMonth,
DeliveryMethod, TotalQty, InvoiceTotalWeight (= Ξ£ detail_qty Γ weight).
Feeds delivery KPIs K-ME-01β¦03.
4. Dashboards (DASH)¶
DASH-01 β Executive Dashboard¶
Group revenue, margin, OKR progress (Lakhs), cross-BU heat map. Looker Studio Β· Power BI.
DASH-02 β KR Monitoring Board¶
27 KPIs from OKR & KPI Framework with Fail/Target traffic lights; Monday 2 pm publication (K-BI-01).
DASH-03 β ESG Dashboard¶
Sustainability metrics: bicycle %, women shares, reusable packaging, tier-3 coverage, agent income.
DASH-04 β SLA β KRs Sync Board¶
SLA master sheet vs measured KRs β the Epic 4 executive deliverable.
DASH-05 β Product Performance¶
SKU velocity, margin waterfalls, pricelist alerts (GAS-03), ABC classes.
DASH-06 β Delivery Operations¶
On-time delivery (K-ME-01), weight per invoice (GAS-04), returns & retries.
5. Distribution Architecture¶
graph LR
subgraph "SOURCES"
DB[(das-db)]
DW[(etl_test)]
end
subgraph "GENERATION"
G[GAS cron Β· Mon 04:00]
P[Python cron Β· daily]
L[Looker / Power BI]
end
subgraph "DISTRIBUTION"
CS[Config sheet<br/>A2Β·D2Β·G2Β·J2]
M[MailApp / SMTP]
DV[Drive archive<br/>Www/yy snapshots]
end
DB --> G
DW --> P
DW --> L
G --> CS
P --> CS
CS --> M
G --> DV
M --> U[Stakeholder groups]
6. Recipient Governance¶
| Script / Report | Config cell | Change procedure |
|---|---|---|
| GAS-01 | A2 | Edit config sheet β effective next run |
| GAS-02 | D2 | Same |
| GAS-04 | G2 | Same |
| GAS-03 | J2 | Same |
| RPT-001β¦006 | dim_report_email_map |
Email Distribution 5 |
No hardcoded recipients
Adding a person = editing the config sheet / mapping table, not editing code. All changes are logged and reviewed at the monthly data-quality meeting.
7. Adding a New Report (Procedure)¶
- Reserve the next ID (
RPT-007,GAS-05,DASH-07) and define the title (primary key). - Register recipients (TO/CC) in the config sheet or
dim_report_email_map. - Implement generation (SQL view / GAS project / dashboard) and schedule.
- Add the row to this catalog before first distribution.
- Announce via Announcements; tag the ticket
report-request.
8. Naming & Retention¶
- Files:
Www/yy <Report Title>(weekly) Β·[MMM] <Report Title>(monthly) - Archive: Drive folders per report; retain 24 months, then move to cold storage
- Subjects:
Weekly Data Update: <filename>(GAS standard)
9. Cross-Mapping to KPIs & OKRs¶
| Report | Feeds KPI | Supports OKR |
|---|---|---|
| RPT-001/002/003 | K-SZ-03, K-MK-02 | SZ-OKR1 Β· MK-OKR1 |
| RPT-004 | K-SZ-02, K-MK-01 | CRM quality |
| RPT-005 | K-MF-01, K-SZ-01 | MT-OKR1 |
| GAS-01/02 | Master-data health | BI-OKR2 |
| GAS-03 | Pricing/margin KRs | MK-OKR1 |
| GAS-04 | K-ME-01β¦03 | ME-OKR1/2 |
| DASH-02/04 | All 27 KPIs | BI-OKR1 |
Library Index Β· Email Distribution Β· Report Automation Β· OKR & KPI Framework