A friend said he'd open a café.
I opened every number Seoul publishes about coffee
Districts · 384 Seoul neighbourhoods × coffee × 8 quarters of estimated sales and transactions · public-data analysis
A friend of mine wants to open a café. He has worked a long time, he loves coffee, and he figures he could "start small." Everyone knows someone like this. Instead of talking him into it or out of it, I opened the data that can actually answer him. Seoul publishes estimated sales and transaction counts by neighbourhood, industry and quarter. Coffee alone gives you 384 neighbourhoods over eight quarters. His question splits into three — should I do it at all; if so, where; and in what form, at what size.
I expected to build a list of rising neighbourhoods. What caught my eye first was the citywide number. In two years, Seoul's coffee sales fell 11.9%. The city's commercial sales as a whole fell 0.8% over the same period — coffee fell fifteen times faster than the market.
Stopping there gives you "it's a downturn, don't" — which is not an answer. The same file carries transaction counts. The moment you split sales into transactions and ticket size, this data stops being a spectacle and becomes a tool that answers all three questions. That is the order of this essay — split what fell, count what remains, and close with the answer I actually gave him.
01Coffee really did shrink
I compared Q2 2024 against Q1 2026.
| Coffee | All Seoul commerce | |
|---|---|---|
| 2-year sales change | −11.9% | −0.8% |
| Median by neighbourhood | −14.0% | −4.3% |
| Neighbourhoods that fell | 306 / 384 (80%) | 280 / 420 (67%) |
Four neighbourhoods in five sold less coffee. But the spread inside is enormous: Doksan-3 is +161%, Geoyeo-2 is −72% — a gap of 233 points.
| Rising | Falling | ||
|---|---|---|---|
| Doksan-3 | +161% | Geoyeo-2 | −72% |
| Wolgye-3 | +126% | Ichon-1 | −68% |
| Sangbong-1 | +109% | Hang-dong | −68% |
| Jangchung | +93% | Ahyeon | −63% |
| Donghwa | +81% | Gayang-2 | −61% |
"The market shrank" and "my spot shrank" are different sentences. Coffee fell — and one neighbourhood in five still grew.
02Why it fell — not because prices were cut
When sales fall, two stories come to mind: prices were cut, or people stopped coming. Split it and you get this.
| Q2 2024 | Q1 2026 | Change | |
|---|---|---|---|
| Sales | ₩782.4bn | ₩689.3bn | −11.9% |
| Transactions | 103.56M | 84.29M | −18.6% |
| Ticket size | ₩7,555 | ₩8,177 | +8.2% |
Figure 1 · Decomposing two years of Seoul coffee sales. Transactions pull down; ticket size pushes back half
In two years, 19.27 million coffee payments disappeared. Prices went the other way — up 8.2% — and that rise papered over about half of the fall.
The decline is footfall, not discounting. And shops are surviving by raising prices. What reads as −11.9% in the sales column is −18.6% in actual customers. This is where the ledger and the gut disagree — an owner watches customers thin out every day while the sales report shows only half of it.
To check whether this is coffee's own problem, I ran the same split on all 62 industries. Seoul's offline payment count itself fell from 0.97 billion to 0.86 billion in two years — −11.0%. Counts fell in 50 of 62 industries. Coffee (−18.6%, rank 41) sits mid-stream, and convenience stores (−20.7%) swim in the same water.
The twelve industries that grew tell you the direction.
| Counts rising | Counts falling | ||
|---|---|---|---|
| Fruit shops | +38.5% | Fried chicken | −37.3% |
| Side-dish shops | +10.1% | Coffee | −18.6% |
| Butchers | +9.7% | Shoes | −39.5% |
Trips for fruit, side dishes and meat are up. Trips for coffee and fried chicken are down. Money that used to be spent eating out is moving into the grocery basket.
Coffee's −18.6% is not coffee failing; it is coffee standing mid-stream of this migration. The distinction matters — a current pushing a whole industry cannot be reversed by running one shop well. The only variable left is where you stand.
→ What changes because of this. The diagnostic question for a struggling shop changes. Not "how much did sales fall" but "did transactions fall, or ticket size?" A shop losing transactions cannot price its way out — the whole city already tried, raising prices 8% while customers kept leaving. A shop holding its transactions but losing sales has a pricing and mix problem instead. Opposite prescriptions; a single sales line makes them look like the same disease.
03What separates neighbourhoods is also customer count
So what distinguished rising neighbourhoods from falling ones? I split all 384 the same way.
| Value | |
|---|---|
| Neighbourhoods where counts fell | 339 / 384 (88%) |
| Neighbourhoods where ticket size rose | 280 / 384 (73%) |
| Median change in counts | −19.9% |
| Median change in ticket size | +7.4% |
| Correlation: sales change ↔ count change | +0.87 |
| Correlation: sales change ↔ ticket change | +0.23 |
Neighbourhoods are separated by customers, not prices. The correlations split +0.87 against +0.23. Raising prices is what almost everyone did in near-equal measure; what diverged is whether people showed up.
So a list of "neighbourhoods where sales rose" cannot be used as-is. Split the 78 risers:
| Neighbourhoods | Share | |
|---|---|---|
| Sales rose | 78 | |
| …and transactions rose too | 34 | 44% |
| …but only ticket size rose | 44 | 56% |
Figure 2 · 384 districts by change in transactions (x) and ticket size (y). Solid = sales rose while customers fell
More than half of the "rising" neighbourhoods gained price, not customers.
Concretely:
| Neighbourhood | Sales | Transactions | Ticket | What happened |
|---|---|---|---|---|
| Doksan-3 | +161% | +158% | +1% | Customers arrived |
| Wolgye-3 | +126% | +132% | −3% | Customers arrived |
| Jangchung | +93% | −10% | +115% | Customers left; prices doubled |
| Haengun | +43% | −21% | +81% | Same kind |
| Ichon-1 | −68% | −87% | +136% | Customers vanished; what remains is expensive |
Doksan-3 and Jangchung sit side by side on a sales table as "risers." One multiplied its customers 1.6-fold; the other lost 10% of them while its ticket doubled. They must not sit in the same bucket. A doubling ticket usually means the cheap shops in that neighbourhood disappeared — that is not a signal of a healthy market.
Ichon-1 is the extreme: 87% of customers gone, ticket up 136%, a third of the sales left.
→ What changes because of this. Site screening gains its first filter. Put a transaction-growth column next to sales growth and delete every row where sales rose but counts fell. That one filter removes half of the money-ranked candidates. Conversely, the 45 neighbourhoods (12%) where counts actually rose are themselves a short list — this is how few places in Seoul are genuinely gaining coffee customers.
04The total says nothing happened
If sales fell 12%, you would expect shops to have closed in proportion. Store counts are published too.
| Quarter | Seoul coffee storefronts |
|---|---|
| Q2 2025 | 20,688 |
| Q3 2025 | 20,493 |
| Q4 2025 | 20,677 |
| Q1 2026 | 20,535 |
−0.7%. Barely moved. Stop here and you write "stable store count, falling sales." I wrote that at first. It is wrong.
The same file carries opening and closing counts separately. Sum four quarters:
| Coffee (4 quarters) | |
|---|---|
| Shops that closed | 4,445 |
| Shops that opened | 3,833 |
| Daily average | 12.2 closed, 10.5 opened |
| Quarters where closures led | 4 / 4 |
Figure 3 · Total coffee storefronts, against closures and openings over the same period
A flat store count does not mean nothing happened. It means almost exactly as many walked in as walked out.
Against the similar-industry store base, the year's 4,445 closures are 16%. One signboard in six changed while the total read −0.7%. Totals hide turnover.
Per-store sales sit on top of that. By neighbourhood, the median change in store count is +0.0%, while median per-store sales changed −8.0% over the same window. Even after swapping the players, the take shrank.
→ What changes because of this. Retire "a stable store count" as a screening criterion. Under a flat total, one in six changed hands. To measure stability, read the cell's closure count — it is in the same file. And if you are the one moving in, the same number cuts the other way: cells with heavy closures are where rents and key money get squeezed, and if transactions are holding there, that squeeze is an opening.
05What one shop earns — and the 8.6× between neighbourhoods
Rates of change hide scale. In the 393 neighbourhoods with ten or more shops, the median coffee shop's monthly sales are ₩6.51M.
| Monthly sales per shop (est.) | |
|---|---|
| Bottom 10% of neighbourhoods | ₩2.14M |
| Median | ₩6.51M |
| Top 10% of neighbourhoods | ₩18.55M |
| Top-to-bottom multiple | 8.6× |
The same café earns more than eight times more or less depending on which neighbourhood it stands in. Rent and labour do not vary by eight times. Site choice pre-decides most of the P&L — which cell you pick comes before how well you run.
Is the cheap neighbourhood therefore "due"? If mean reversion were at work, the places earning least would have risen most. I checked.
| 2-year sales change, median | |
|---|---|
| Bottom half by initial per-store sales | −15.7% |
| Top half by initial per-store sales | −12.7% |
| Correlation: initial level ↔ 2-year change | +0.02 |
The correlation sits at zero, and if anything the neighbourhoods already earning well slipped less. The gap never narrowed. Nothing here supports walking in because a place is cheap.
Turn it into days and the weight of the number lands. Divide quarterly transactions by store count and 91.25 days and you get payments per shop per day.
| Payments per shop per day (Q1 2026) | |
|---|---|
| Bottom 10% of neighbourhoods | 10 |
| Median | 31 |
| Top 10% of neighbourhoods | 76 |
| Neighbourhoods under 30 a day | 193 / 393 (49%) |
The median Seoul neighbourhood's coffee shop rings up thirty-one payments a day. Two years ago it was thirty-eight.
You do not need a cost sheet to see what 31 a day means. Open eight hours and it is four cups an hour. That is not the arithmetic of a shop with seating and staff. In half of Seoul's neighbourhoods, the coffee shop already stands on one-person arithmetic. And the number came down from 38 to 31 in two years — hold the same spot and the arithmetic keeps worsening.
Split by price level and one more piece of folk wisdom breaks. I cut neighbourhoods into thirds by initial ticket size and tracked their counts for two years.
| Neighbourhood's initial ticket | Median ticket | 2-year change in counts |
|---|---|---|
| Cheap third | ₩5,294 | −24.2% |
| Middle | ₩6,573 | −18.6% |
| Expensive third | ₩8,622 | −17.1% |
The cheap neighbourhoods lost more customers. Low prices were not a defence.
This runs against the story that budget coffee is sweeping the market. Neighbourhoods with ₩5,000 tickets — where the budget chains cluster — lost 7 points more of their customers than ₩8,000 neighbourhoods. Causality is not settled; cheap neighbourhoods are often outlying residential areas with weaker districts to begin with. But one conclusion stands either way: nothing in this data supports pricing low as a way to keep customers.
→ What changes because of this. Two things. First, replace the revenue assumption in your P&L model with the neighbourhood's measured distribution. The median (₩6.51M) and the spread (₩2.14M–18.55M) are public; lay your cost structure on the candidate neighbourhood's distribution and the break-even resolves before you sign anything. Second, drop the "undervalued neighbourhood" thesis. The initial level and the subsequent change correlate at +0.02 — cheap did not mean due for a rise. If anything the well-off neighbourhoods slipped less (−12.7% vs −15.7%). The gap never narrowed.
06Weekdays collapsed first
Whether the loss is a weekday or a weekend story can be split too — borough-level data carries both.
| 2-year change, median | |
|---|---|
| Weekday sales | −13.9% |
| Weekend sales | −10.2% |
| Gap | 3.7 points |
Figure 4 · Two-year change in coffee sales across 25 boroughs, weekday (●) vs weekend (○)
In 23 of 25 boroughs (92%), weekdays fell further than weekends. The weekend share of coffee sales rose from 28.1% to 29.7% — not because weekends improved, but because weekdays fell faster.
Coffee is thinning where people used to commute. Neighbourhoods people visit on weekends held up better.
Split by sex, there is nothing: men −14.0%, women −13.7%. The decline does not live in a customer segment. It lives in the days of the week.
I will not claim causality — this data holds no remote-work rates and no office vacancy. The observation stops at the decline leaning hard into weekdays.
→ What changes because of this. A site's weekday-weekend mix becomes an underwriting item. A spot far below the city median weekend share (29.7%) hangs on weekday demand alone — the demand thinning fastest. Discount its revenue assumption by the weekday slope (−13.9%), and keep the lease short for the same reason. For existing shops, re-negotiate first wherever the weekend share is lowest.
07Franchise signboards did not stop closures
The thing an opening owner leans on most is a brand: a head office that picked the site, a tested operation, name recognition. If that works, neighbourhoods dense with franchises should close less. It can be checked — franchise store counts and closure rates are published per neighbourhood and quarter.
I measured inside coffee only: 618 cells with twenty or more shops.
| Value | |
|---|---|
| Correlation: franchise share ↔ quarterly closure rate | −0.01 |
| Closure rate, more-franchised half (median) | 4.0% |
| Closure rate, less-franchised half (median) | 4.0% |
Identical. To the decimal. Neighbourhoods heavy and light on franchise coffee close at indistinguishable rates.
Because the industry is held fixed, industry mix cannot explain this away. It is coffee against coffee.
Mix the industries and the opposite headline appears: across 72 industries, franchise share and closure rate correlate at +0.46 — franchises close more! But look at the 0% franchise industries: patent attorneys, accountants, notaries. At the other end, convenience stores (68.7%) and coffee (24.6%). Offices last years; coffee shops turn over by the quarter. +0.46 is not a franchise effect. It is an industry effect wearing its clothes.
Do not read this as "franchises are useless." What a head office actually contributes — site diligence, contract terms, who the franchisee is, what support lands — is not in this file. What can be said is one thing: the effect does not show up in anything you can buy or download. So do not hang an opening decision on this metric.
08I re-ran it on convenience stores — the answer flips
One industry's verdict may be that industry's quirk. So I repeated the test where franchise share runs far higher: convenience stores.
| Convenience | Coffee | |
|---|---|---|
| 2-year sales (Seoul total) | −14.7% | −11.9% |
| Neighbourhoods that fell | 333 / 395 | 306 / 384 |
| Store count change | −3.9% | −0.7% |
| Closed / opened (1 year) | 1,087 / 669 | 4,445 / 3,833 |
Convenience fell harder and shed more stores. Closures ran at 1.6× openings — coffee's ratio was 1.16×. Three closed and 1.8 opened per day.
And the franchise test points the other way:
| More-franchised half | Less-franchised half | |
|---|---|---|
| Convenience, quarterly closure rate (median) | 1.0% | 2.5% |
| Coffee, quarterly closure rate (median) | 4.0% | 4.0% |
Figure 5 · Median quarterly closure rate, more- vs less-franchised halves
No gap in coffee; half the closure rate in convenience. Absence in one industry is not absence everywhere.
But the convenience sample is 45 cells — that is all that clears the twenty-store bar (coffee had 618). The correlation is a weak −0.09, and with franchise share at 68.7%, even the "less-franchised half" is substantially franchised. The direction is visible; this sample cannot settle it.
The conclusion is not "franchises help" or "franchises don't." It is that the answer differs by industry, and the public sample is not large enough to referee it. Coffee had the sample and showed no gap; convenience shows a gap and lacks the sample. Either way, no opening decision should hang on this one metric.
→ What changes because of this. A head office already owns the data that settles it — join your own franchisees' closure records to each district's overall closure rate and you get "how much survival does our brand actually buy," district by district. That number becomes the sales pitch to prospective franchisees; districts where it fails to appear drop off the expansion map. The public data supplies the denominator for free. The numerator lives in your office.
09Three things you must fix before this data will tell the truth
None of the numbers above fall straight out of the file. Compute naively and it breaks in three places, all quiet. Two of the three share one cause — the denominator.
Each row carries three store-count columns — the industry's own stores, stores including similar industries, and franchise stores — plus separate opening and closing counts. Which one you divide by changes the answer.
First, the franchise-share denominator is a trap. The natural division — franchise ÷ own-industry stores — yields a 260% franchise share for convenience stores. Franchise counts exceed own-industry counts in 4,940 of 141,250 rows (3.5%); against the similar-industry base, exceedances are zero. The denominator is the similar-industry column. A 3.5% defect never surfaces in a skim — you only see it when a share crosses 100%.
Second, opening and closing counts use that same base. This one hides deeper. Divide convenience-store closures by own-industry stores and the quarterly closure rate comes out at 9.0–12.7% — while the published rate in the same file reads 2.0–3.5%. Divide by the similar-industry base and you get 2.5–3.5%, which matches. Reconciling against the published rate reveals the denominator. Skip that reconciliation and you carry a fourfold-inflated closure rate into everything downstream.
(Nor is the similar-industry base a perfect ceiling: openings or closures still exceed it in 365 of 141,250 rows — 524 against the own-industry base. Imperfect, but the one that reconciles to the published rates is the similar-industry column.)
Third, closure rates are quarterly and explode in small cells. 673 rows show closure rates above 50% — and their median store count is one. When a neighbourhood's only shop closes, that is a 100% closure rate. Rank neighbourhoods without a floor and you build a "100% closure" list of places that simply had one shop. Cut at twenty stores and the maximum falls to 28%. And the figure is quarterly — read it as annual and you inflate it fourfold.
Published and usable are different things. This data is published; used raw, it returns wrong answers.
10So what should you actually do
The unit of an opening decision is not a neighbourhood but a (neighbourhood × industry) cell — you do not open "in Seongsu," you open a coffee shop in Seongsu. In that cell, split total sales from per-store sales.
The measure
``` Entry headroom = (that cell's quarterly transactions) ÷ (that cell's store count) → its rate of change. Counted in transactions, not won. ```
The reason for counting transactions sits above: of 78 neighbourhoods where sales rose, 44 (56%) gained price, not customers. Count in money and those 44 rise to the top of the candidate list. Ticket size is a number you set; transactions are a number the neighbourhood gives you. A site-picking ruler must be built from what the neighbourhood gives.
364 coffee cells clear ₩100M in sales and ten stores. Total and per-store sales mostly move together — which is exactly why the cells where they diverge carry the information.
| Cells | Share | |
|---|---|---|
| Total sales rose | 85 | |
| …but per-store fell | 14 | 16% |
| Total sales fell | 279 | |
| …but per-store rose | 33 | 12% |
One rising coffee cell in six is a falling cell per store. On a total-sales table it reads as a winner. Walk in and you inherit below-average take.
| Cell | Total | Stores | Per store |
|---|---|---|---|
| Hongje-1 · coffee | +4% | +17% | −11% |
| Dogok-1 · coffee | +1% | +10% | −8% |
| Sanggye-6·7 · coffee | +6% | +15% | −8% |
Hongje-1's coffee market grew 4% while the mouths sharing it grew 17%.
Thresholds and actions
| Measure | How | Threshold | What you do when it trips |
|---|---|---|---|
| Customer direction | Change in the cell's transaction count | Counts ↑ — 45 of 384 neighbourhoods (12%) | First-rank candidates. The condition is already rare |
| False-riser filter | Sales change − count change | Sales ↑ while counts ↓ — 56% of risers | Delete from candidates. Price rose, customers did not. Usually the cheap shops left |
| Entry headroom | Change in per-store sales for the cell | Total ↑ · per-store ↑ | Promote. The market grows and so does the share |
| Entry headroom | Same measure | Total ↑ · per-store ↓ — 16% of risers | Pull it. Mouths multiply faster than pie. Looks good on the money table, so it must be filtered explicitly |
| Entry headroom | Same measure | Total ↓ · per-store ↑ — 12% of fallers | Keep. Remaining shops earn more. Money tables miss these |
| Day-of-week mix | Weekend ÷ (weekday + weekend) | Seoul coffee median 29.7%; far below = weekday-dependent | Weekday-dependent spots are thinning fastest (−13.9% vs −10.2%). Re-base the revenue assumption on that slope; shorten the lease |
| Closure rate | Quarterly closures ÷ the cell's stores | Stores under 20: do not read | Small samples explode. Leave the grade blank rather than wrong |
So how many places are actually left — all the way to names
Run the ruler across the whole city:
| Filter | Neighbourhoods left |
|---|---|
| Coffee sales observable | 384 |
| ① Transactions grew over 2 years | 45 |
| ② …and per-store sales grew too (10+ stores) | 23 |
Neighbourhoods where coffee customers and per-shop earnings both grew: 23 out of 384. Six percent.
And the 23 do not share one face. The top of the list:
| Neighbourhood | 2-yr transactions | Ticket | Monthly sales per shop |
|---|---|---|---|
| Wolgye-3 | +132% | ₩7,099 | ₩3.42M |
| Sangbong-1 | +108% | ₩7,146 | ₩13.12M |
| Donghwa | +82% | ₩10,212 | ₩4.64M |
| Sangdo-2 | +46% | ₩5,835 | ₩8.79M |
| Gahoe | +35% | ₩12,784 | ₩31.27M |
| Samseong-1 | +6% | ₩10,378 | ₩31.73M |
Wolgye-3 and Sangbong-1 are newly built-out residential districts — customers surged while per-shop sales are still low (₩3.42M · ₩13.12M). Demand arrived before supply. Gahoe and Samseong-1 are the opposite: modest count growth, but five-figure tickets and ₩30M-class monthly takes. The same list, two different briefs — the first pair suits fast-turn, mid-to-low price formats; the second pair only pays back a concept that can carry the ticket.
Note also what is missing: Gangnam-daero, Hongdae, the Seongsu café strip. The famous districts mostly sit on the wrong side of the ledger — stores multiplied faster than customers.
The choices we make — and why other values would be wrong
| Choice | Why | Done differently |
|---|---|---|
| Hold the industry to coffee alone | Turnover speed differs by industry | Mix 72 industries and the franchise correlation flips to +0.46 — an industry effect read as a brand effect |
| Judge at the (neighbourhood × coffee) cell | You bring an industry with you when you open | At whole-neighbourhood level, coffee's divergences cancel against other industries |
| Franchise denominator = similar-industry stores | Dividing by own-industry stores crosses 100% in 3.5% of rows | 260% convenience-franchise shares survive into the table |
| Closure rates floored at 20 stores | The 673 rows above 50% have a median of one store | "100% closure" neighbourhoods top the risk list |
| The time axis is sales | Sales run 8 quarters; churn runs 4 | You end up calling "rise and fall" on a single year |
11What this data cannot see
1. Sales are card-based estimates. Cash and some pay apps are missing. Coffee is heavily carded, so its time series is relatively safe, but no absolute comparisons across industries were made. 2. The citywide −11% may carry a payment-method shift. Money moving from cards to uncaptured pay apps lowers counts with footfall unchanged. Hence the weight rests on relative comparisons across industries (fruit +38.5% vs chicken −37.3%) — a payment-method shift does not split industries like that. 3. An administrative neighbourhood is not a trade area. Main-street and back-alley differ inside one neighbourhood; station catchments cross boundaries. This is the data's resolution limit. 4. The cause of the weekday decline is not in here. No remote-work rates, no office vacancy. The essay stops at the observation that the loss leans into weekdays. 5. Store counts carry no size. Ten pyeong and a hundred pyeong are one store each. Per-store figures might look different per square metre — floor area is not published. 6. Churn covers four quarters only. The trend axis therefore rests on the eight-quarter sales series. 7. Correlation is not causation. Section 07 does not say franchises do nothing — it says the public data cannot show what they do.
12So this is what I told my friend
First, the default answer is "don't." Not because of what you can or cannot do. One coffee customer in five left in two years (counts −18.6%), and that is not coffee failing — Seoul's offline payments fell 11% overall as spending migrates from eating out to the grocery basket — a current no single shop can row against. The median neighbourhood's coffee shop rings up 31 payments a day, down from 38 two years ago. Open an average café in an average spot and that arithmetic is what you inherit.
Second, if you still must — the site comes first, and 23 of 384 neighbourhoods qualify. Only that many grew both customers and per-shop earnings, and their shops ring up a median 56 payments a day — nearly double the city. Gangnam-daero, Hongdae and the Seongsu strip are not on the list. Famous districts mostly grew stores faster than customers.
Third, the form. The data crosses out three options. Compete on price — the cheap neighbourhoods lost more customers (−24.2% vs −17.1%). Ride weekday office traffic — weekdays are the fastest-thinning demand (23 of 25 boroughs). Trust a franchise signboard — inside coffee, franchise share and closure rate were unrelated. What remains follows the list's two faces: in newly settled districts like Wolgye-3 and Sangbong-1, demand outran supply and a small fast-turn format fits; in Gahoe or Samseong-1, where ₩10,000-plus tickets hold, only a concept that can carry that ticket earns its keep.
Fourth, the size. At the median arithmetic — 31 a day — seats and staff do not compute. A one-person takeaway box is what the median neighbourhood permits. Seats and payroll require a 76-a-day site — the top decile — and sites like that hand the difference back as rent. Rent and floor area are not in this data, so that final calculation happens site-by-site, after the shortlist.
One last thing. The ruler in this essay — cell-level transactions, per-store sales, the day-of-week mix — was not improvised for the occasion. It is the calculation that hicce, the property-and-district diagnostic tool we are building, already runs for individual sites; the raw data behind this essay came out of its collection pipeline. Type in an address and an industry and the cell's card comes back — today it runs as a beta for estate agents, with the founder- and head-office-facing version in preparation. Until then, the list and the ruler above are enough to measure with — and wherever the measuring gets stuck, that is the work we do.
Where to look first, wherever you sit
| You are | Look first at |
|---|---|
| About to open a café | The candidate neighbourhood's payments per shop per day. Under 30, the median there is one-person arithmetic — not a verdict on your skill |
| A franchise head office | Whether the candidate list is ranked by money or by transactions. Ranked by money, 56% of the risers are places customers are not growing |
| Multi-site operators | The per-store trend of your own cells. If your shop fell while the cell's store count grew, that is not a district problem |
| Data / strategy teams | Whether the 20-store floor and the franchise denominator are in the dashboard. If not, today's rankings are wrong |
| Investors · underwriters | If you read district sales growth alone: it points the wrong way on customers in more than half of the risers |
Method · limits
Source: the Seoul Open Data Plaza commercial-district service (published by the Seoul Credit Guarantee Foundation) — estimated sales by administrative neighbourhood × industry × quarter (Q2 2024 – Q1 2026, 8 quarters, 134,628 rows), store and churn counts (Q2 2025 – Q1 2026, 4 quarters, 141,250 rows), and borough-level sales split by weekday/weekend and sex. This essay reads the coffee-beverage industry; convenience stores appear once as a contrast.
Neighbourhood comparisons cover the 384 with over ₩100M of quarterly coffee sales in Q2 2024. Per-store and cell analyses use the window where sales and store counts overlap (Q2 2025 – Q1 2026) with ten or more stores; closure analysis uses 618 coffee cells with twenty or more. Rates are quarterly. The franchise denominator is the similar-industry store base — dividing by own-industry stores crosses 100% in 3.5% of rows. Opening/closing figures use the count columns, not the rounded rate columns. The convenience-store contrast clears the same bars with only 45 cells and is used for direction, not verdicts.
Daily payments divide quarterly transactions by store count and 91.25 days. Correlation is not
causation, and the absence of a franchise effect here is a statement about what public data can
show, not about what head offices do. Reproduction script: 상권_지표.py →
상권_지표.json. Neighbourhood names are public administrative units; no individual
business appears in this data.
Caff · August 2026
Same method, different industry. The bottleneck differs every time — finding that difference is what this series does.
One industry, one bottleneck, public data only — straight to your inbox. Nothing else, ever.
This is as far as public data can see. Repurchase, incrementality, attribution — the numbers that change decisions live inside your own data, and making them countable is what Lambency does.
caffrey.w.lee@gmail.com