Interactive data

四月 22 2016 Published by under Engineering

At EZTABLE, we encourage a self-serving model when asking questions regarding our massive database. For example, an account manager might ask a question such as “What’s the average age of all customers who made reservations in February of 2015?". Any backend engineer could quickly translate the question into the corresponding SQL query and run it against out MySQL database, however that defies our purpose of being transparent and self-serving. So the key element that we need is “an interface that let everyone in our company to interactively ask questions and learn from data". Enter metabase.

Metabase is an open source project that provides:

  1. Easy to setup
  2. Let anyone on your team ask questions without knowing SQL syntax
  3. Rich & beautiful dashboards

Before jumping into the juicy details, let’s first quickly go through a relational data model 101.

  • Tables
  • Columns
  • Rows
  • Relationships

Fundamentally data are stored in a database, which is a huge collection of tables, conceptually similar to a large Excel document that contains lots of sheets. Tables contain one or more columns and rows.

Tables

Fig 1. A member table.

All the cells in a column contain the same type of information. For example, in the sample table below, the name column contains name in each cell and member_id column contains the member ID.

A bookings table.

Fig 2. A bookings table.

A tables can contain references to other tables, which establishes a relationship between them. For example, a database can lookup the age of members based on the member_id column from the booking table.

Fig 3. Relationships between tables.

Fig 3. Relationships between tables.

With metabase, everyone in the company can quickly produce statistics by looking up demographics or anything they want based on relationships. Don’t worry, sensitive informations are hidden away.

Fig 4. Commonly used tables.

Fig 4. Commonly used tables.

Let’s get back to the main topic. How can metabase help us answering questions such as “What’s the average age of all customers who made reservations in February of 2015″? Let’s see a little animation.

 

Fig 5. Metabase in action.

Fig 5. Metabase in action. Click to enlarge.

 

Each part of our question can be translated to a corresponding element on the user interface, which is simple enough that anyone within our organization to play with and answer their own questions.

Fig 6. Questions translated to metabase UI.

Fig 6. Questions translated to metabase UI.

There more tricks that metabse can do e.g.

  1. Drawing charts.
  2. Create a dashboard for big screens.
  3. Export daily report to email or slack.

Subscribe to EZTABLE IDEAS for more articles!

hden

P.S. For those who use Facebook’s PrestoDB, Airbnb has release a similar tool called Airpal.

No responses yet

為了更好的閱讀經驗

一月 17 2014 Published by under Engineering

iOS Simulator Screen shot

在 EZTABLE 我們很注重用餐經驗,我們討論的用餐經驗不只是從坐在餐桌上到結賬的過程,而是從用找餐廳,認識餐廳,到用餐過後繼續尋找下一道美食的整個流程。

為了讓大家認識更多餐廳,我們的編輯們每天都勤奮的製造有趣的內容,有安裝 iOS app 的人應該不難發現每一兩幾天就會出現新的字卡,又多認識了幾家餐廳。

Status Quo

假設 n 個使用者閱覽了 m 個字卡,我們馬上可以得到 n x m 的矩陣裡頭充滿了資料,像這種複雜的網路 (a.k.a. hairball) 其實相當難以圖像化。

Screen Shot 2014-01-17 at 9.42.20 AM

BC Cancer Agency 的生物資訊學家 Martin Krzywinski 在 2009 年發表的論文 – Circos 裡有提出一個解決方法,Krzywinski 認為 n x m 的關係可以用圓形的圖案表示,將 n, m 排列在圓上,中間的連結用線條表示,線的粗細則表示連結的強度。加上適度的上色,我們就可以很直覺的表示複雜的關係圖。

Screen Shot 2014-01-17 at 10.04.48 AM

從圖中可以看出看過『浪漫約會去』的人大多數都會跑去看下一篇內容,作為一個閱讀經驗的入口,這是相當成功的。像是『尾牙懶人包』這種流入與流出大約是 1:1 的字卡很適合做為內容與內容之間的連結。

What’s next?

Medium.comPete Davies 認為 總閱讀時間(total reading time) 是測量閱讀經驗最重要的一項指標,無論是像 Huffington Post 這類小而病毒的文章到紐約時報的大作 Snow Fall 全部都可以用 total reading time 來測量閱讀經驗。接下來我們也會將這一項指標納入我們的參考,希望收集到夠多的 data 後可以再度和大家分享結果。

Further Reading

Apps

No responses yet

如何拿到滿分?讓 EZTABLE 告訴你

十一月 07 2013 Published by under Engineering

Inspired by Airbnb nerds.

在 EZTABLE 我們非常在意使用者是否得到完美的用餐經驗,我們的合作餐廳也都非常重視使用者的意見,您或許曾收到過我們的 email 或是電話訪問,現在讓我們來看看這些問卷帶來了哪些 insight。

用餐滿意度問卷

questionnaire

當消費者在 EZTABLE 用餐完畢後我們都會發出一封用餐滿意度調查,其中包含幾項重要的問題:

  • 餐點滿意度
  • 服務滿意度
  • 用餐滿意度

使用者可以透過 1 – 5 顆星 (預設是 3 顆星) 的方式表達他或她的意見。這種星星評等的方式相當常見卻未必是完美的,比如說評價很容易兩極化 (5 或是 1 顆星)。但是我們可以確定任何一項評論拿到滿分的確代表使用者相當滿意。

使用者填寫的評論會直接影響到餐廳在 EZTABLE 的排名,分數也會直接公佈於餐廳資訊頁上。我們發現 FB 上確實有在討論 EZTABLE 的排名,而且餐廳老闆也非常重視這份排名。

由於我們有興趣知道哪些因素會影響對餐廳的評價,我們抽樣了 2013 年度約一萬次用餐經驗的問卷,評論者男女比 1.05,評論對象包含對於北中南超過 600 家中高階餐廳。

影響因素

在此,我們想知道到底哪些因素會影響整體餐廳拿滿分的機率,以下的表格顯示每個因素相較於基準點幫助提升 (正值) 或是減少 (負值) 餐廳拿到三項滿分的機率。

Gender  
Female 0.0%
Male 30.09%
Age group  
NA 0.0%
13 – 19 15.19%
20 – 29 29.07%
30 – 39 21.03%
40 – 49 -17.03%
50+ -42.38%

相較于女性,男性評分者分數給的比較高,而 20 – 29 歲的年輕人分數也給的比較大方,可能的原因包含,但不限於 1) 年輕族群比較習慣撰寫評論,2) 他們對餐廳的期望值比較低,或 3) 吃的餐廳等級不同。

Group size  
2 0.0%
3 -20.57%
4 -28.75%
5 -24.85%
6 – 10 -32.03%
10+ -46.20%

至於用餐人數,大人數的用餐傾向給較低的分數 (不知道餐廳對這些大桌的客人做何感想)。

提早多少天訂位  
< 1 Day (當天) 0.0%
1 – 2 Days 4.36%
3 – 6 Days 3.51%
7 – 13 Days 13.59%
14 – 20 Days 30.63%
21 – 41 Days 35.13%
42 – 82 Days 85.69%
82+ Days 464.92%

越早訂位的客人越開心,至少數字上是這樣說的。越早訂位給與餐廳滿分評價的機率越高,可能的原因包含 1) 客人有充分的時間挑選餐廳,對於餐廳提供的服務有充分的理解,或是 2) 越重要的節日就會越早訂位,經過充分的準備加上一點 EZTABLE 的魔法之後產生完美用餐經驗的成功率就越高!

閒話

在 EZTABLE 我們非常在意使用者是否得到完美的用餐經驗,我們的合作餐廳也都非常重視使用者的意見,接下來我們會有一連串的研究如何提升使用者經驗,請持續訂閱,分享 EZTABLE ideas,敬請期待下一波研究報告。

EZTABLE CD team: hden

No responses yet