Personel Performansı — Gerçek koçluk anlarını ortaya çıkaran günlük veriler — Karşılanan sipariş sayısı, ortalama fiş tutarı, zamanında gelme oranı, iptal edilen ürünler ve müşteri puanları — hepsi personel bazında panellerde. Ayrı bir POS dışa aktarımı değil, her gece canlı sipariş verilerinizden derlenir.
Personel Yönetimi · 3. Aşama

Personel Performansı — Gerçek koçluk anlarını ortaya çıkaran günlük veriler

Karşılanan sipariş sayısı, ortalama fiş tutarı, zamanında gelme oranı, iptal edilen ürünler ve müşteri puanları — hepsi personel bazında panellerde. Ayrı bir POS dışa aktarımı değil, her gece canlı sipariş verilerinizden derlenir.

Personel performans takibi nedir?

Ordering.Tools'ta personel performansı, bir çalışanı müşteriye veya vardiyaya bağlayan her ölçümün günlük özetidir: karşıladığı siparişler, hazırladığı ürünler, sorumlu olduğu ciro, ortalama fiş büyüklüğü, zamanında/geç/gelmedi durumundaki vardiyalar, iptal edilen ürünler ve ortalama müşteri puanı. Her rakam platformun zaten topladığı verilerden gelir (Order.assignedWaiterId, OrderFeedback, ClockEvent, StaffShiftAssignment). Özetleme cron:nightly çalıştırıcısı üzerinden her gece yapılır; yöneticiler istedikleri tarih aralığını admin panelinden yeniden hesaplatabilir.

Amaç gözetlemek değil, koçluk yapmak. Kişi bazlı dosyalar önemli kalıpları gösterir: sürekli erken gelen kim, ortalama fişi en yüksek kim, akranlarından daha çok iptal yapan kim, düğünden sonraki cumartesi bile zamanında gelen kim. Bunu vardiya planlamasıyla birleştirince öğle yoğunluğuna kimi, geç saatteki terasa kimi koyacağınızı bilirsiniz. Yöneticiler için veri salt okunurdur — geçmiş ölçümler düzenlenemez; ham olaylar denetim kaydında durur, isteyen doğrulayabilir.

Kişi bazlı paneller neden 'genel satış' rakamından daha iyi

Zaten elinizdeki sipariş verisinden

Her ölçüm mevcut kayıtlardan hesaplanır — Order, OrderFeedback, ClockEvent, StaffShiftAssignment. Ek sensör, ayrı POS dışa aktarımı ya da üçüncü taraf zaman takip entegrasyonu yok. Bağlantı anahtarı Order.assignedWaiterId.

Gece özeti + istek üzerine yeniden hesaplama

Özetleme 03:00 UTC'de (cron:nightly) çalışır ve her (venue, staff, tarih) için bir StaffMetricsDaily satırı yazar. Bir dönemi yeniden hesaplamanız gerekiyorsa — örneğin geriye dönük veri girişinden sonra — /api/admin/staff/metrics/replay'e bir başlangıç/bitiş aralığı gönderirsiniz; upsert işlemi idempotenttir.

Zamanında, geç, gelmedi

Personelin CLOCK_IN saatini planlanan StaffShiftAssignment.startTime ile karşılaştırıyoruz. 5 dakika içinde = zamanında; 5 dakikadan fazla = geç; vardiya bitene kadar giriş yoksa = gelmedi. Kişi bazlı hareketli ortalamalar tek kötü günü değil, genel eğilimi gösterir.

Tasarım gereği salt okunur

Ölçümler düzenlenemez — bir yönetici satırı daha 'iyi görünsün' diye değiştiremez. Ham olaylar denetim kaydında durur ve yeniden üretilebilir. Yanlış görünen bir satıra rastlarsanız, replay uç noktası onu yeniden hesaplar; sonuç aynıysa veri doğrudur.

Performans takibi nasıl işler

1

Özelliği açın

Personel → Ayarlar'da enableStaffMetrics'i etkinleştirin. Gece cron'u 24 saat içinde özetlenmiş verileri üretmeye başlar; /admin/profile'daki kişi bazlı dosya sekmesi ilgili çalışana görünür olur.

2

Gece özetlemesi çalışır

03:00 UTC'de cron:nightly çalıştırıcısı staff-metrics adımını yürütür. Her etkin mekan için Order satırlarını assignedWaiterId'ye göre gruplar, saatler için ClockEvent'leri, puanlar için OrderFeedback'i birleştirir ve her (venue, user, tarih) için bir satır upsert eder.

3

Yöneticiler dosyayı görür

Personel → Üyeler'e girip bir çalışana tıklayın. Dosya, son 30/90 gündeki günlük ölçümleri siparişler, ciro ve ortalama puan için sparkline grafikleriyle gösterir. Herhangi bir güne tıklayarak altındaki StaffShiftAssignment, ClockEvent ve siparişleri görebilirsiniz.

4

Personel kendi verisini görür

Her çalışan, mobil garson uygulamasındaki Benim İstatistiklerim ekranından kendi verisini görür — salt okundur. Koçluk görüşmeleri anekdota değil, iki tarafın da görebildiği verilere dayanır.

Personel Performansı — özellik detayları

cron:nightly ile günlük özetleme

İdempotent upsert — aynı dönem yeniden çalıştırıldığında birebir aynı satırlar üretilir. Özetleme, cron-system-migration gruplu çalıştırıcı mimarisinin bir parçasıdır; yeni bir ölçüm eklemek yeni bir cron satırı açmak değil, tek bir adımı genişletmek demektir.

  • cashback-expire ve customer-stats ile birlikte 03:00 UTC'de çalışır
  • İdempotenttir — herhangi bir dönemi kopya oluşturmadan yeniden çalıştırabilirsiniz
  • enableStaffMetrics = false olan mekanları atlar
  • Mekan bazlı izolasyon: bir mekandaki hata diğerlerini etkilemez

Zamanında / geç / gelmedi sınıflandırması

Çalışanın günün ilk CLOCK_IN kaydını StaffShiftAssignment.startTime ile karşılaştırıyoruz. Geç sayılma eşiği ayarlanabilir (varsayılan 5 dakika); vardiya bitene kadar giriş yoksa gelmedi sayılır. Sınıflandırma onTimeShifts / lateShifts / noShowShifts sayaçlarına yazılır.

  • Mekan bazında ayarlanabilir geç eşiği
  • Günde birden fazla vardiyaya toleranslı (en erken eşleşmeyi kullanır)
  • status = CANCELLED olan vardiyaları atlar
  • İzin onaylı vardiyalar gelmedi sayılmaz

Müşteri geri bildirimi toplama

Order.assignedWaiterId'ye bağlanan OrderFeedback satırları kişi bazlı müşteri puanları verir. Dosya feedbackAvg ve feedbackCount'u gösterir; üzerine tıklandığında (varsa) tekil yorumlar açılır, böylece koçlukta somut örnekler elinizde olur.

  • Dönem içindeki tüm puanlanan siparişlerin ortalama değerlendirmesi
  • Koçluk görüşmeleri için yorumların gösterilmesi
  • 'Geri bildirim yok' ile 'düşük geri bildirim' ayrımı
  • Mevcut inceleme güven hattı üzerinden anonim toplu spam puanlarının filtrelenmesi

Yönetici yeniden hesaplama uç noktası

Geriye dönük veri girişi ya da bir hata geçmiş ölçümleri yanlış bıraktıysa, /api/admin/staff/metrics/replay'e başlangıç/bitiş tarihiyle istek atın. Uç nokta, gece cron'unun kullandığı mantığı aynen yeniden çalıştırır; upsert eski satırların üzerine güncel olanları yazar.

  • Kimlik doğrulamalı ve yetki kısıtlı (staff.manage)
  • İdempotenttir — birden fazla kez çağırmak güvenlidir
  • İsteğe bağlı venueId kapsamı — tek seferde yalnızca bir mekanı yeniden hesaplayın
  • Yanıtta taranan/yazılan/hata sayılarını döndürür

Personel verisi hangi kararları iyileştirir

Yeni işe alınanı yönlendirmek

Üç ay önce işe başlayan bir garsonun feedbackAvg'i 3,8; ekip ortalaması ise 4,4. Dosyasını açıyorsunuz — düşük puanlar cumartesi geç saatlerinde kümeleniyor. Yönetici onu bu vardiyalarda kıdemli bir çalışanla eşleştiriyor; ortalama bir ay içinde 4,3'e çıkıyor.

Gelmedi kalıbını yakalamak

Petar'ın noShowShifts sayısı son 30 günde artmış. Dosyayı açıyorsunuz — her gelmedi vakası pazar sabahı. Konuşma şu: 'Pazar sabahları zor geliyor, seni akşamlara alalım.' Sorun kimseyi işten çıkarmadan çözülüyor.

Terfiye içgüdüyle değil veriyle karar vermek

Baş garson pozisyonu için iki aday var. Dosyalarında ortalama fişler birbirine çok yakın, ama biri %92 zamanında gelirken diğeri %78'de kalıyor. Terfi ilki alıyor; ikincisi ise yeniden değerlendirilmeden önce dakiklik konusunda koçluk alıyor.

İptal edilen ürünler eğitim ihtiyacına işaret eder

Mutfakta yeni başlayan birinin voidedItemCount'u ekip ortalamasının 3 katı. İptallerin çoğu yanlış pişmiş biftek. Konuşma: 'Pişirme derecesi tablosunu birlikte gözden geçirelim' — iki hafta içinde iptaller ekip ortalamasına iniyor.

Ortalama fiş sıralaması

Her mekanda doğal olarak üst satış yapan bir garson, bir de yapmayan vardır. avgTicketCents sütunu bunları sıralar. En iyi garsonun alışkanlıkları — şefin özel önerisini söylemek, bir yan ürün önermek — ekibin geri kalanına koçlukla aktarılır.

Benim İstatistiklerim ile kendi kendine gelişim

Personel kendi verisini görüp yönetici müdahalesi olmadan kendini düzeltir. Bir garson salı günleri ortalama fişinin düştüğünü fark eder — yeni makarna yemeğinden bahsetmeye başlar, ortalama toparlanır. İyileşme bir koçluk toplantısı olmadan gerçekleşir.

Zaten sahip olduğunuz veriden kişi bazlı ölçümler

Çoğu restoran analiz platformu mekan seviyesinde toplar — toplam misafir sayısı, toplam ciro, toplam fiş — ve orada durur. Zor kısım mekan ortalamalarından kişi bazlı içgörüye geçmektir, çünkü bu her siparişte bir personel bağlantı sütunu gerektirir. Ordering.Tools'ta garson modülü çıktığından beri Order.assignedWaiterId var, yani kişi bazlı özetleme yeni bir izleme projesi değil, bir SQL group-by işlemi. Saatler için ClockEvent'i, puanlar için OrderFeedback'i, zamanında sınıflandırması için StaffShiftAssignment'ı ekleyin; elinizde yeni bir sensör gerektirmeyen eksiksiz bir dosya olur.

Gece özetlemesi canlı hesaplamayı neden geçer

Kişi bazlı ölçümleri her panel açılışında canlı hesaplamak, 50 kişilik bir mekanın ana sayfasının her yüklemede 30 günlük siparişler üzerinden 50 satırlık bir toplama yapması demektir. İndeksler olsa bile bu yavaştır ve büyüdükçe kötüleşir. Gece özetlemesi her (venue, staff, tarih) için tek bir StaffMetricsDaily satırı yazar, paneller de o satırları doğrudan okur. Dosya yükleme sürelerinin P95 değeri saniyelerden milisaniyelere iner, veritabanı yükü kat kat azalır ve veri gerektiği kadar günceldir (dünkü rakamlar, 03:00 UTC'de hesaplanır).

Zamanında sınıflandırması, adaletli biçimde

Hoşgörülü olmakla (30 dakika geç = zamanında) katı olmak (1 dakika geç = geç) arasında bir gerilim vardır. Kültür farklı, rol farklı. Ordering.Tools varsayılan olarak 5 dakika kullanır — trafik ve durak hesapları iyi çalışanları geç diye damgalamayacak kadar cömert, sürekli 20 dakika geç başlamaları işaretleyecek kadar sıkı. Eşik mekan bazında ayarlanabilir. Sınıflandırma hareketlidir — tek kötü gün 30 günlük ortalamayı bozmaz — ve izin onaylı gelmemeler, tasarım gereği sayılmaz.

Tasarım gereği salt okunur — gözetleme değil koçluk

Düzenlenebilir performans ölçümleri güvensizlik doğurur. Bir yönetici düşük puanlı bir günü daha iyi görünsün diye 'düzeltebiliyorsa', personel panele güvenmeyi bırakır ve 'gerçek rakam neydi?' diye sormaya başlar. Ordering.Tools ölçümleri salt okunur olarak sunar — bunları değiştirmenin tek yolu ham olaylardan yeniden hesaplayan replay uç noktasıdır. Ham olayların kendisi de sadece eklenebilir niteliktedir (ClockEvent'te MANUAL_ADJUST deseni vardır; siparişler tamamlandıktan sonra düzenlenemez). Panelde görünen, bir yöneticinin yorumu değil, verinin söylediğidir.

Anekdotla değil, veriyle koçluk yapın

Mevcut sipariş verinizle çalışan kişi bazlı dosyalar. Premium özellik, Personel Yönetimi paketine dahildir.

İlgili özellikler

Restoranların bununla birlikte kullandığı diğer araçlar.

Ücret Takibi — Değiştirilemeyen kayıt geçmişi, konum doğrulamalı giriş-çıkış, aktarıma hazır puantajlar

Her personel için saatlik ücret belirleyin, telefonlarından — isterseniz konum doğrulamasıyla — giriş-çıkış yapmalarını sağlayın ve puantajı tek tıkla CSV veya XLSX olarak dışa aktarın. Her ücret değişikliği geçmişiyle birlikte saklanır, her giriş-çıkış kaydı olduğu gibi kalır, her düzeltme bir iz bırakır.

Daha fazla bilgi
Bahşiş Havuzu — Bahşişleri role ve çalışılan saate göre, tek seferde dağıtın

Bir dönem için bahşiş havuzu açın, role göre yüzde paylarını belirleyin (%60 garson / %30 mutfak / %10 bar); platform toplam tutarı her personelin o roldeki çalışma saatiyle orantılı şekilde dağıtır. Tek işlem, tek denetim kaydı, sıfır Excel tablosu.

Daha fazla bilgi
BG Bordro Raporları — Maaş Bordrosu (ведомост), Декларация 1+6 ve Banka Transfer Dosyaları Oluşturun

Bulgar işverenler için mevzuata uygun rapor üretimi: puantaj kayıtlarından çalışma saatlerini çekin, yılın resmi sigorta ve vergi oranlarını uygulayın, NRA portalına ve bankanıza yüklemeye hazır dosyaları indirin.

Daha fazla bilgi
Personel Belgeleri — Sözleşmeleri, sabıka kayıtlarını, sağlık karnelerini ve çalışma izinlerini takip edin

Bir kez yükleyin, süresi dolmadan haber alın. Belgeleri yalnızca yöneticiler yükler (sosyal mühendislik riskine karşı); personel kendi kopyalarını telefonundan görür; süre takipçisi 30/14/3 gün kala sizi uyarır.

Daha fazla bilgi