Q01. Dashboard: today at each outlet (FR-8). 'Today' = 2026-09-30.   [3 row(s)]
outlet | bills_today | received_today | queued_now | ready_for_pickup
-------+-------------+----------------+------------+-----------------
O01    | 6           | 186000         | 9          | 23
O02    | 1           | 0              | 9          | 6
O03    | 3           | 160000         | 5          | 5

Q02. This month and last month per outlet (FR-8).   [3 row(s)]
outlet | this_month | last_month
-------+------------+-----------
O01    | 3953000    | 4572000
O02    | 3851000    | 2402000
O03    | 4109000    | 3527000

Q03. Monthly revenue: amount charged per month (FR-9).   [12 row(s)]
month   | bills | charged  | avg_bill
--------+-------+----------+---------
2025-10 | 171   | 8362000  | 48901.0
2025-11 | 204   | 9561000  | 46868.0
2025-12 | 276   | 13406000 | 48572.0
2026-01 | 235   | 11551000 | 49153.0
2026-02 | 268   | 13398000 | 49993.0
2026-03 | 317   | 15927000 | 50243.0
2026-04 | 290   | 14391000 | 49624.0
2026-05 | 248   | 11933000 | 48117.0
2026-06 | 217   | 10702000 | 49318.0
2026-07 | 255   | 12568000 | 49286.0
2026-08 | 216   | 10501000 | 48616.0
2026-09 | 256   | 11913000 | 46535.0

Q04. Money received each month, per payment method (FR-9).   [12 row(s)]
month   | cash    | qris    | transfer | credit  | total
--------+---------+---------+----------+---------+---------
2025-10 | 4757000 | 2128000 | 578000   | 223000  | 7686000
2025-11 | 5309000 | 2917000 | 761000   | 522000  | 9509000
2025-12 | 7371000 | 3687000 | 1228000  | 761000  | 13047000
2026-01 | 6226000 | 3063000 | 1249000  | 976000  | 11514000
2026-02 | 6480000 | 4394000 | 1387000  | 878000  | 13139000
2026-03 | 8268000 | 4918000 | 1154000  | 819000  | 15159000
2026-04 | 7536000 | 4960000 | 1247000  | 1256000 | 14999000
2026-05 | 5262000 | 4642000 | 1263000  | 909000  | 12076000
2026-06 | 5114000 | 3970000 | 848000   | 490000  | 10422000
2026-07 | 5075000 | 5568000 | 1043000  | 1023000 | 12709000
2026-08 | 4939000 | 3637000 | 819000   | 941000  | 10336000
2026-09 | 5358000 | 5000000 | 1311000  | 419000  | 12088000

Q05. Monthly revenue per outlet, one column per outlet (a pivot).   [12 row(s)]
month   | O01_rungkut | O02_keputih | O03_wiyung | total
--------+-------------+-------------+------------+---------
2025-10 | 5001000     | 3361000     | 0          | 8362000
2025-11 | 5454000     | 4107000     | 0          | 9561000
2025-12 | 7677000     | 5729000     | 0          | 13406000
2026-01 | 5966000     | 4160000     | 1425000    | 11551000
2026-02 | 6379000     | 4323000     | 2696000    | 13398000
2026-03 | 6245000     | 4577000     | 5105000    | 15927000
2026-04 | 6835000     | 3455000     | 4101000    | 14391000
2026-05 | 5005000     | 3434000     | 3494000    | 11933000
2026-06 | 4396000     | 3345000     | 2961000    | 10702000
2026-07 | 4799000     | 2706000     | 5063000    | 12568000
2026-08 | 4572000     | 2402000     | 3527000    | 10501000
2026-09 | 3953000     | 3851000     | 4109000    | 11913000

Q06. Revenue per outlet for the whole year, with its share.   [3 row(s)]
outlet | name                      | bills | charged  | pct
-------+---------------------------+-------+----------+-----
O01    | Profitina Laundry Rungkut | 1312  | 66282000 | 46.0
O02    | Profitina Laundry Keputih | 996   | 45450000 | 31.5
O03    | Profitina Laundry Wiyung  | 645   | 32481000 | 22.5

Q07. Revenue per service. 'units' is kg, items or pairs.   [12 row(s)]
id    | price | bills | units | charged  | pct
------+-------+-------+-------+----------+-----
S0001 | 8000  | 1368  | 8531  | 67632000 | 46.9
S0002 | 12000 | 405   | 1540  | 18360000 | 12.7
S0008 | 35000 | 170   | 232   | 8085000  | 5.6
S0004 | 20000 | 157   | 390   | 7800000  | 5.4
S0003 | 6000  | 256   | 1251  | 7506000  | 5.2
S0011 | 45000 | 124   | 165   | 7425000  | 5.1
S0009 | 25000 | 128   | 247   | 6150000  | 4.3
S0005 | 65000 | 64    | 79    | 5135000  | 3.6
S0010 | 15000 | 47    | 324   | 4650000  | 3.2
S0006 | 45000 | 82    | 103   | 4590000  | 3.2
S0007 | 40000 | 78    | 104   | 4120000  | 2.9
S0012 | 30000 | 74    | 92    | 2760000  | 1.9

Q08. Top 3 services at each outlet (a window function).   [9 row(s)]
outlet | rnk | Service_id | bills | charged
-------+-----+------------+-------+---------
O01    | 1   | S0001      | 596   | 32344000
O01    | 2   | S0002      | 155   | 7032000
O01    | 3   | S0003      | 132   | 3786000
O02    | 1   | S0001      | 495   | 20904000
O02    | 2   | S0002      | 180   | 8388000
O02    | 3   | S0003      | 67    | 2028000
O03    | 1   | S0001      | 277   | 14384000
O03    | 2   | S0002      | 70    | 2940000
O03    | 3   | S0008      | 61    | 2905000

Q09. Bills received per employee at the front counter.   [7 row(s)]
id    | name               | outlet | bills | charged
------+--------------------+--------+-------+---------
E0004 | Dewi Lestari Putri | O01    | 788   | 39768000
E0012 | Fitri Handayani    | O03    | 480   | 24247000
E0008 | Rizky Pratama      | O02    | 501   | 22942000
E0011 | Kevin Tanoto       | O02    | 495   | 22508000
E0001 | Hendra Wijaya      | O01    | 280   | 14614000
E0005 | Anisa Rahmawati    | O01    | 244   | 11900000
E0003 | Bambang Sutrisno   | O03    | 165   | 8234000

Q10. Washer workload: bills finished per employee (from StatusLog).   [7 row(s)]
id    | name                  | outlet | bills_finished | first_day  | last_day
------+-----------------------+--------+----------------+------------+-----------
E0006 | Agus Setiawan         | O01    | 649            | 2025-10-02 | 2026-09-29
E0007 | Yulia Kartika Sari    | O01    | 646            | 2025-10-03 | 2026-09-30
E0010 | Wulan Sari Dewi       | O02    | 418            | 2025-10-04 | 2026-09-30
E0009 | Moh. Ma'ruf Hidayat   | O02    | 410            | 2025-10-04 | 2026-09-30
E0013 | Slamet Riyadi         | O03    | 355            | 2026-01-13 | 2026-09-29
E0014 | Nur Aini Maulida      | O03    | 283            | 2026-02-05 | 2026-09-30
E0002 | Siti Nurhaliza Rahman | O02    | 148            | 2025-10-02 | 2026-09-26

Q11. The queue now, per outlet and status.   [6 row(s)]
outlet | status   | bills | value
-------+----------+-------+--------
O01    | finished | 23    | 1045000
O01    | queued   | 9     | 384000
O02    | finished | 6     | 338000
O02    | queued   | 9     | 392000
O03    | finished | 5     | 276000
O03    | queued   | 5     | 227000

Q12. The bills being processed, oldest first, with their age in hours.   [23 row(s)]
id    | outlet | rack | Service_id | unit | arrived             | age_hours
------+--------+------+------------+------+---------------------+----------
B2909 | O02    | A01  | S0001      | 6    | 2026-09-26 16:07:42 | 100.9
B2922 | O01    | C12  | S0011      | 1    | 2026-09-27 12:19:54 | 80.7
B2923 | O02    | A19  | S0001      | 4    | 2026-09-27 16:49:59 | 76.2
B2924 | O02    | A14  | S0001      | 7    | 2026-09-27 18:43:07 | 74.3
B2930 | O02    | B08  | S0011      | 1    | 2026-09-28 07:18:31 | 61.7
B2931 | O02    | A11  | S0001      | 9    | 2026-09-28 08:30:03 | 60.5
B2934 | O02    | A10  | S0001      | 4    | 2026-09-28 16:23:10 | 52.6
B2935 | O01    | A07  | S0008      | 1    | 2026-09-28 17:47:32 | 51.2
B2936 | O01    | C18  | S0009      | 2    | 2026-09-28 19:16:08 | 49.7
B2937 | O02    | C11  | S0001      | 4    | 2026-09-28 19:49:23 | 49.2
B2940 | O03    | C06  | S0008      | 1    | 2026-09-29 15:18:39 | 29.7
B2941 | O03    | C18  | S0001      | 8    | 2026-09-29 17:45:13 | 27.2
B2943 | O02    | B03  | S0001      | 5    | 2026-09-29 20:51:31 | 24.1
B2944 | O03    | A01  | S0001      | 5    | 2026-09-30 07:31:03 | 13.5
B2945 | O01    | C08  | S0008      | 1    | 2026-09-30 09:53:44 | 11.1
B2946 | O01    | B12  | S0001      | 5    | 2026-09-30 10:27:55 | 10.5
B2947 | O01    | B11  | S0003      | 7    | 2026-09-30 13:39:03 | 7.3
B2948 | O01    | B20  | S0003      | 6    | 2026-09-30 13:56:56 | 7.1
B2949 | O01    | C20  | S0001      | 7    | 2026-09-30 15:36:01 | 5.4
B2950 | O03    | A02  | S0001      | 6    | 2026-09-30 16:26:26 | 4.6
B2951 | O02    | C08  | S0008      | 1    | 2026-09-30 17:17:45 | 3.7
B2952 | O03    | B07  | S0001      | 5    | 2026-09-30 20:09:56 | 0.8
B2953 | O01    | B05  | S0006      | 1    | 2026-09-30 20:49:43 | 0.2

Q13. Overdue right now: still queued after the promised time (BR-7).   [6 row(s)]
id    | outlet | Service_id | arrived             | promised            | age_hours
------+--------+------------+---------------------+---------------------+----------
B2909 | O02    | S0001      | 2026-09-26 16:07:42 | 2026-09-28 16:07:42 | 100.9
B2923 | O02    | S0001      | 2026-09-27 16:49:59 | 2026-09-29 16:49:59 | 76.2
B2924 | O02    | S0001      | 2026-09-27 18:43:07 | 2026-09-29 18:43:07 | 74.3
B2931 | O02    | S0001      | 2026-09-28 08:30:03 | 2026-09-30 08:30:03 | 60.5
B2934 | O02    | S0001      | 2026-09-28 16:23:10 | 2026-09-30 16:23:10 | 52.6
B2937 | O02    | S0001      | 2026-09-28 19:49:23 | 2026-09-30 19:49:23 | 49.2

Q14. On-time rate per service: finished within the promised time.   [12 row(s)]
Service_id | finished_bills | on_time | on_time_pct
-----------+----------------+---------+------------
S0009      | 126            | 92      | 73.0
S0008      | 165            | 128     | 77.6
S0010      | 45             | 37      | 82.2
S0012      | 74             | 61      | 82.4
S0011      | 122            | 102     | 83.6
S0005      | 64             | 55      | 85.9
S0001      | 1343           | 1173    | 87.3
S0004      | 157            | 140     | 89.2
S0007      | 77             | 69      | 89.6
S0006      | 80             | 74      | 92.5
S0003      | 254            | 247     | 97.2
S0002      | 402            | 401     | 99.8

Q15. Uncollected laundry: finished more than 30 days ago (BR-9).   [23 row(s)]
id    | outlet | name                 | phone          | finished_on | days_waiting
------+--------+----------------------+----------------+-------------+-------------
B0072 | O01    | Dedi Rangga Kusuma   | 0815-0000-8472 | 2025-10-16  | 349
B0089 | O01    | Vania Wirawan        | 0895-0000-4449 | 2025-10-19  | 346
B0127 | O01    | Diah Budiman         | 0852-0000-1850 | 2025-10-25  | 340
B0421 | O01    | Fadli Prakoso        | 0817-0000-4314 | 2025-12-07  | 297
B0436 | O01    | Retno Hartono        | 0815-0000-8148 | 2025-12-07  | 297
B0595 | O01    | Jessica Setiawan     | 0817-0000-6867 | 2025-12-24  | 280
B0627 | O01    | Winda Sugiarto       | 0858-0000-2719 | 2025-12-28  | 276
B1021 | O01    | Laras Irawan         | 0817-0000-8139 | 2026-02-16  | 226
B1040 | O02    | Agus Hendrawan       | 0897-0000-2834 | 2026-02-18  | 224
B1097 | O03    | Rafi Susanto         | 0815-0000-6847 | 2026-02-24  | 218
B1168 | O02    | Sri Gunawan          | 0897-0000-4114 | 2026-03-05  | 209
B1180 | O01    | Hendro Santoso       | 0857-0000-0319 | 2026-03-06  | 208
B1321 | O03    | Nadia Zulkarnain     | 0852-0000-6023 | 2026-03-16  | 198
B1493 | O01    | Nadia Umi Susanto    | 0898-0000-3194 | 2026-04-04  | 179
B1558 | O01    | Maya Santoso         | 0882-0000-1416 | 2026-04-10  | 173
B1542 | O03    | Farah Putri Kusuma   | 0895-0000-9785 | 2026-04-11  | 172
B1668 | O01    | Ika Wirawan          | 0817-0000-5474 | 2026-04-23  | 160
B1744 | O01    | Umi Utomo            | 0881-0000-9853 | 2026-04-29  | 154
B1751 | O01    | Rahmawati Kurniawati | 0815-0000-7627 | 2026-04-29  | 154
B2099 | O02    | Imam Pratama         | 0811-0000-2588 | 2026-06-14  | 108
B2178 | O01    | Anggraini Saputra    | 0853-0000-0896 | 2026-06-25  | 97
B2403 | O03    | Winda Firmansyah     | 0821-0000-8176 | 2026-07-24  | 68
B2473 | O01    | Farah Wijaya         | 0816-0000-0225 | 2026-07-31  | 61

Q16. Outstanding balances: money still to collect (FR-6).   [38 row(s)]
id    | status   | outlet | name                      | payment | paid  | balance
------+----------+--------+---------------------------+---------+-------+--------
B0340 | departed | O02    | Adi Eko Alatas            | 35000   | 0     | 35000
B0368 | departed | O01    | Umi Permana               | 72000   | 0     | 72000
B0911 | departed | O01    | Khadijah Hakim            | 56000   | 0     | 56000
B1742 | departed | O02    | Endah Ika Rahman          | 32000   | 0     | 32000
B2157 | departed | O02    | Winda Nasution            | 40000   | 0     | 40000
B2610 | departed | O03    | Nadia Zulkarnain          | 30000   | 0     | 30000
B0127 | finished | O01    | Diah Budiman              | 40000   | 0     | 40000
B0436 | finished | O01    | Retno Hartono             | 36000   | 18000 | 18000
B0595 | finished | O01    | Jessica Setiawan          | 72000   | 36000 | 36000
B1021 | finished | O01    | Laras Irawan              | 72000   | 0     | 72000
B1097 | finished | O03    | Rafi Susanto              | 18000   | 0     | 18000
B1180 | finished | O01    | Hendro Santoso            | 35000   | 17000 | 18000
B1321 | finished | O03    | Nadia Zulkarnain          | 48000   | 0     | 48000
B1493 | finished | O01    | Nadia Umi Susanto         | 64000   | 0     | 64000
B1542 | finished | O03    | Farah Putri Kusuma        | 90000   | 0     | 90000
B1668 | finished | O01    | Ika Wirawan               | 40000   | 0     | 40000
B1744 | finished | O01    | Umi Utomo                 | 48000   | 0     | 48000
B1751 | finished | O01    | Rahmawati Kurniawati      | 48000   | 24000 | 24000
B2178 | finished | O01    | Anggraini Saputra         | 32000   | 16000 | 16000
B2473 | finished | O01    | Farah Wijaya              | 60000   | 0     | 60000
B2731 | finished | O01    | Farah Tiara Fauzi         | 48000   | 0     | 48000
B2815 | finished | O02    | Nurul Anggraeni           | 24000   | 0     | 24000
B2910 | finished | O02    | Sekar Meiliana Zulkarnain | 32000   | 0     | 32000
B2922 | queued   | O01    | Ratna Ramadhan            | 45000   | 22000 | 23000
B2923 | queued   | O02    | Nadia Nasution            | 32000   | 0     | 32000
B2931 | queued   | O02    | Gilang Nasution           | 72000   | 0     | 72000
B2933 | finished | O01    | Oki Kusuma                | 56000   | 28000 | 28000
B2934 | queued   | O02    | Evi Syahputra             | 32000   | 0     | 32000
B2938 | finished | O03    | Syaiful Wijaya            | 40000   | 0     | 40000
B2940 | queued   | O03    | Susanti Mahendra          | 35000   | 17000 | 18000
B2941 | queued   | O03    | Farah Wijaya              | 64000   | 0     | 64000
B2942 | finished | O01    | Rudi Lestari              | 48000   | 0     | 48000
B2944 | queued   | O03    | Nurul Suryadi             | 40000   | 0     | 40000
B2946 | queued   | O01    | Aisyah Wijaya             | 40000   | 0     | 40000
B2949 | queued   | O01    | Zahra Halim               | 56000   | 28000 | 28000
B2950 | queued   | O03    | Ma'ruf Saputra            | 48000   | 0     | 48000
B2951 | queued   | O02    | Endah Ika Rahman          | 35000   | 0     | 35000
B2952 | queued   | O03    | Khadijah Zulkarnain       | 40000   | 20000 | 20000

Q17. One bill with all its payments and a running balance.   [2 row(s)]
unit | price | charged | paid_at             | method | amount | balance_after
-----+-------+---------+---------------------+--------+--------+--------------
3    | 12000 | 36000   | 2025-10-02 09:09:06 | cash   | 18000  | 18000
3    | 12000 | 36000   | 2025-10-03 20:11:24 | cash   | 18000  | 0

Q18. Top 10 customers by amount charged.   [10 row(s)]
id    | name             | visits | charged | last_visit | deposit_left
------+------------------+--------+---------+------------+-------------
C0094 | Khadijah Hakim   | 62     | 3079000 | 2026-09-27 | 0
C0056 | Gilang Nasution  | 51     | 3011000 | 2026-09-28 | 0
C0059 | Ayu Suryadi      | 59     | 2895000 | 2026-09-22 | 0
C0081 | Fadli Prakoso    | 56     | 2800000 | 2026-09-11 | 0
C0090 | Farah Wijaya     | 49     | 2450000 | 2026-09-29 | 0
C0164 | Nadia Zulkarnain | 49     | 2448000 | 2026-09-21 | 0
C0111 | Hendro Ramadhan  | 46     | 2217000 | 2026-09-06 | 55000
C0022 | Vania Wirawan    | 41     | 2168000 | 2026-09-26 | 0
C0167 | Evi Syahputra    | 37     | 1917000 | 2026-09-28 | 0
C0079 | Siti Irawan      | 30     | 1744000 | 2026-08-06 | 0

Q19. How often do customers come? Customers per visit bucket.   [6 row(s)]
bucket                 | customers | bills
-----------------------+-----------+------
0 (no visit this year) | 3         | 0
1                      | 18        | 18
2-5                    | 72        | 255
6-12                   | 85        | 753
13-25                  | 52        | 941
26+                    | 26        | 986

Q20. New customers per month (older ones counted as 'before').   [13 row(s)]
month          | new_customers
---------------+--------------
before 2025-10 | 110
2025-10        | 7
2025-11        | 8
2025-12        | 9
2026-01        | 17
2026-02        | 22
2026-03        | 20
2026-04        | 22
2026-05        | 7
2026-06        | 6
2026-07        | 5
2026-08        | 10
2026-09        | 13

Q21. Payment method mix for the whole year.   [4 row(s)]
method   | payments | amount   | pct_of_value
---------+----------+----------+-------------
cash     | 1695     | 71695000 | 50.2
qris     | 1151     | 48884000 | 34.3
transfer | 290      | 12888000 | 9.0
credit   | 183      | 9217000  | 6.5

Q22. QRIS share of payments per quarter and outlet.   [11 row(s)]
quarter | outlet | payments | qris_pct
--------+--------+----------+---------
2025-Q4 | O01    | 396      | 24.5
2025-Q4 | O02    | 320      | 35.9
2026-Q1 | O01    | 394      | 29.4
2026-Q1 | O02    | 316      | 36.7
2026-Q1 | O03    | 196      | 29.6
2026-Q2 | O01    | 369      | 31.7
2026-Q2 | O02    | 259      | 44.8
2026-Q2 | O03    | 250      | 35.6
2026-Q3 | O01    | 333      | 36.0
2026-Q3 | O02    | 206      | 49.5
2026-Q3 | O03    | 280      | 37.5

Q23. How were bills paid? One pattern per bill, then counted.   [7 row(s)]
pattern                         | bills
--------------------------------+------
paid in full at pickup          | 1294
paid in full at drop-off        | 1181
two parts (down payment + rest) | 415
nothing paid yet                | 28
cancelled (nothing charged)     | 21
down payment only (still open)  | 10
paid later (after pickup)       | 4

Q24. Weekday pattern. SQLite: strftime('%w') gives 0 for Sunday.   [7 row(s)]
dow | day | bills | charged
----+-----+-------+---------
0   | Sun | 458   | 22099000
1   | Mon | 430   | 21653000
2   | Tue | 400   | 19940000
3   | Wed | 382   | 18336000
4   | Thu | 413   | 19725000
5   | Fri | 361   | 17179000
6   | Sat | 509   | 25281000

Q25. Arrival hour pattern (shop hours 07:00-21:00).   [14 row(s)]
hour | bills
-----+------
07   | 387
08   | 336
09   | 336
10   | 118
11   | 125
12   | 109
13   | 108
14   | 102
15   | 209
16   | 211
17   | 229
18   | 219
19   | 229
20   | 235

Q26. The Lebaran effect, week by week (weeks start on Monday).   [8 row(s)]
week_start | bills | big_items | charged
-----------+-------+-----------+--------
2026-02-23 | 69    | 10        | 3527000
2026-03-02 | 78    | 16        | 3768000
2026-03-09 | 99    | 30        | 4832000
2026-03-16 | 29    | 9         | 1807000
2026-03-23 | 69    | 7         | 3404000
2026-03-30 | 84    | 16        | 4225000
2026-04-06 | 68    | 5         | 3127000
2026-04-13 | 66    | 6         | 3022000

Q27. Average processing time and waiting-for-pickup time per service.   [12 row(s)]
Service_id | avg_process_h | avg_wait_pickup_h
-----------+---------------+------------------
S0001      | 42.1          | 37.5
S0002      | 8.1           | 32.0
S0003      | 28.9          | 35.3
S0004      | 77.6          | 45.5
S0005      | 81.7          | 38.6
S0006      | 77.5          | 39.1
S0007      | 81.8          | 35.3
S0008      | 70.4          | 40.5
S0009      | 70.4          | 31.1
S0010      | 108.1         | 24.1
S0011      | 80.3          | 33.1
S0012      | 42.4          | 32.4

Q28. Cancellations and complaints per outlet, from the audit trail.   [3 row(s)]
outlet | bills | cancelled | complaints | complaint_pct
-------+-------+-----------+------------+--------------
O01    | 1312  | 8         | 21         | 1.6
O02    | 996   | 11        | 11         | 1.1
O03    | 645   | 2         | 12         | 1.86

Q29. The audit trail of the first bill that received a complaint.   [4 row(s)]
id | Bill_id | status    | changed_at          | by_employee           | section
---+---------+-----------+---------------------+-----------------------+------------
16 | B0014   | queued    | 2025-10-03 10:02:06 | Kevin Tanoto          | transaction
49 | B0014   | finished  | 2025-10-05 07:40:13 | Siti Nurhaliza Rahman | wash
58 | B0014   | departed  | 2025-10-05 13:03:56 | Rizky Pratama         | transaction
80 | B0014   | complaint | 2025-10-07 07:46:07 | Siti Nurhaliza Rahman | wash

Q30. Customer self-service status check (FR-10): bill id AND phone.   [1 row(s)]
-- row 1
id           : B2938
status       : finished
arrived      : 2026-09-28 19:52:30
finished     : 2026-09-30 18:00:28
departed     : NULL
service      : Wash, dry & fold (per kg)
unit         : 5
payment      : 40000
balance      : 40000
outlet       : Profitina Laundry Wiyung
outlet_phone : 031-0000-2103

