-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevri.html
More file actions
555 lines (523 loc) · 39.4 KB
/
evri.html
File metadata and controls
555 lines (523 loc) · 39.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title data-key="pageTitle">Evri 派件員薪酬互動式分析報告</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FVCHEY9S46"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-FVCHEY9S46');
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700&family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Roboto', 'Noto Sans TC', sans-serif;
background-color: #FDFBF8;
color: #383838;
}
.bg-primary { background-color: #FDFBF8; }
.bg-secondary { background-color: #F1EAE4; }
.bg-accent { background-color: #005F73; }
.text-accent { color: #005F73; }
.border-accent { border-color: #005F73; }
.nav-link {
transition: color 0.3s, border-bottom-color 0.3s;
border-bottom: 2px solid transparent;
}
.nav-link:hover, .nav-link.active {
color: #003E4C;
border-bottom-color: #003E4C;
}
.timeline-item {
position: relative;
cursor: pointer;
transition: transform 0.2s;
}
.timeline-item:hover {
transform: scale(1.05);
}
.timeline-item .dot {
transition: background-color 0.3s;
}
.timeline-item.active .dot {
background-color: #005F73;
}
.modal {
transition: opacity 0.3s ease-in-out;
}
.chart-container {
position: relative;
width: 100%;
max-width: 700px;
margin-left: auto;
margin-right: auto;
height: 400px;
max-height: 50vh;
}
</style>
</head>
<body class="bg-primary">
<header id="header" class="bg-primary sticky top-0 z-50 shadow-md">
<nav class="container mx-auto px-6 py-3 flex justify-between items-center">
<h1 class="text-xl md:text-2xl font-bold text-accent" data-key="headerTitle">Evri 薪酬解密</h1>
<div class="hidden md:flex items-center space-x-8">
<a href="#conflict" class="nav-link py-1" data-key="navConflict">薪酬爭議</a>
<a href="#model" class="nav-link py-1" data-key="navModel">商業模式</a>
<a href="#pressures" class="nav-link py-1" data-key="navPressures">壓力來源</a>
<a href="#timeline" class="nav-link py-1" data-key="navTimeline">發展歷程</a>
<a href="#union" class="nav-link py-1" data-key="navUnion">工會角色</a>
<button id="lang-toggle" class="ml-4 px-3 py-1 text-sm border border-accent text-accent rounded-full hover:bg-accent hover:text-white transition-colors">EN / 繁</button>
</div>
<div class="flex items-center md:hidden">
<button id="lang-toggle-mobile" class="mr-4 px-3 py-1 text-sm border border-accent text-accent rounded-full hover:bg-accent hover:text-white transition-colors">EN / 繁</button>
<button id="mobile-menu-button">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-4 6h4" />
</svg>
</button>
</div>
</nav>
<div id="mobile-menu" class="hidden md:hidden bg-primary">
<a href="#conflict" class="block py-2 px-6 text-sm hover:bg-secondary" data-key="navConflictMobile">薪酬爭議</a>
<a href="#model" class="block py-2 px-6 text-sm hover:bg-secondary" data-key="navModelMobile">商業模式</a>
<a href="#pressures" class="block py-2 px-6 text-sm hover:bg-secondary" data-key="navPressuresMobile">壓力來源</a>
<a href="#timeline" class="block py-2 px-6 text-sm hover:bg-secondary" data-key="navTimelineMobile">發展歷程</a>
<a href="#union" class="block py-2 px-6 text-sm hover:bg-secondary" data-key="navUnionMobile">工會角色</a>
</div>
</header>
<main class="container mx-auto px-6 py-8 md:py-12">
<section id="hero" class="text-center mb-16">
<h2 class="text-3xl md:text-5xl font-bold mb-4" data-key="heroTitle">Evri 之謎:拆解您派送的真正成本</h2>
<p class="max-w-3xl mx-auto text-lg text-gray-700" data-key="heroSubtitle">Evri (前 Hermes) 是英國最大的包裹派送公司之一,以其經濟實惠的價格服務於各大零售商。但低價背後,是派件員薪酬偏低和工作條件不穩的現實。本報告將帶您深入探討這個「零工經濟」模式下的核心矛盾。</p>
</section>
<section id="conflict" class="py-12 bg-secondary rounded-xl scroll-mt-20">
<div class="text-center mb-12 px-4">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="conflictTitle">硬幣的兩面:官方說法 vs 現實處境</h3>
<p class="mt-2 max-w-2xl mx-auto text-gray-600" data-key="conflictSubtitle">Evri 官方宣稱其 SE+ 合約提供了優於最低工資的保障,但許多派件員的實際經歷卻描繪了另一幅景象。下圖比較了官方宣傳的平均時薪與派件員扣除營運成本後的實際收入。</p>
</div>
<div class="chart-container">
<canvas id="payComparisonChart"></canvas>
</div>
</section>
<section id="model" class="py-16 scroll-mt-20">
<div class="text-center mb-12 px-4">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="modelTitle">商業模式剖析:「自僱」的代價</h3>
<p class="mt-2 max-w-2xl mx-auto text-gray-600" data-key="modelSubtitle">Evri 的運作核心是一個龐大的自僱派件員網絡。這種模式為公司帶來了極大的彈性和成本優勢,但同時也將大量的營運風險和成本轉嫁給了派件員。點擊下圖中的「派件員」了解他們需要承擔哪些成本。</p>
</div>
<div class="relative flex flex-col md:flex-row items-center justify-around p-8 bg-white rounded-xl shadow-lg">
<div class="text-center">
<div class="text-5xl mb-2">📦</div>
<p class="font-bold" data-key="modelRetailers">零售商</p>
<p class="text-sm text-gray-500">(ASOS, Next...)</p>
</div>
<div class="text-accent text-4xl my-4 md:my-0 font-light">→</div>
<div class="text-center">
<div class="text-5xl mb-2">🏭</div>
<p class="font-bold" data-key="modelHub">Evri 分揀中心</p>
</div>
<div class="text-accent text-4xl my-4 md:my-0 font-light">→</div>
<div id="courier-node" class="text-center cursor-pointer p-4 rounded-lg hover:bg-gray-100 transition-colors">
<div class="text-5xl mb-2">🚚</div>
<p class="font-bold" data-key="modelCourier">自僱派件員</p>
<p class="text-sm text-blue-600" data-key="modelClick">(點擊查看詳情)</p>
</div>
<div class="text-accent text-4xl my-4 md:my-0 font-light">→</div>
<div class="text-center">
<div class="text-5xl mb-2">🏠</div>
<p class="font-bold" data-key="modelCustomer">顧客</p>
</div>
</div>
</section>
<section id="pressures" class="py-12 bg-secondary rounded-xl scroll-mt-20">
<div class="text-center mb-12 px-4">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="pressuresTitle">三重壓力:壓低薪酬的結構性因素</h3>
<p class="mt-2 max-w-2xl mx-auto text-gray-600" data-key="pressuresSubtitle">派件員的低薪並非偶然,而是由公司的商業策略、零工經濟的本質以及市場競爭環境共同造成的。</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="bg-white p-6 rounded-lg shadow-md hover:shadow-xl transition-shadow">
<h4 class="font-bold text-xl mb-2 text-accent" data-key="pressure1Title">1. 成本競爭策略</h4>
<p class="text-gray-700" data-key="pressure1Text">Evri 的核心是為大型電商客戶提供「經濟實惠」的派送服務。這意味著公司必須極力控制成本,而作為最大可變成本之一的派件員薪酬,自然成為首要目標。</p>
</div>
<div class="bg-white p-6 rounded-lg shadow-md hover:shadow-xl transition-shadow">
<h4 class="font-bold text-xl mb-2 text-accent" data-key="pressure2Title">2. 自僱模式的經濟學</h4>
<p class="text-gray-700" data-key="pressure2Text">將派件員歸類為「自僱」可讓公司免於承擔僱主的社會保險、帶薪假期、車輛開支等。這些成本直接轉嫁給個人,從而壓低了公司的直接勞動力成本。</p>
</div>
<div class="bg-white p-6 rounded-lg shadow-md hover:shadow-xl transition-shadow">
<h4 class="font-bold text-xl mb-2 text-accent" data-key="pressure3Title">3. 市場與所有權壓力</h4>
<p class="text-gray-700" data-key="pressure3Text">激烈的市場競爭迫使派送價格不斷探底。同時,私募股權(Apollo)的所有權結構,追求高效率和利潤最大化,進一步加劇了對成本(包括薪酬)的控制。</p>
</div>
</div>
</section>
<section id="timeline" class="py-16 scroll-mt-20">
<div class="text-center mb-16 px-4">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="timelineTitle">發展歷程:從 Hermes 到 Evri</h3>
<p class="mt-2 max-w-2xl mx-auto text-gray-600" data-key="timelineSubtitle">Evri 的演變反映了英國物流業的變遷。點擊時間軸上的關鍵節點,了解影響公司的重大事件。</p>
</div>
<div class="relative w-full">
<!-- Timeline line -->
<div class="absolute left-1/2 h-full w-0.5 bg-gray-300 -translate-x-1/2"></div>
<!-- Timeline items -->
<div id="timeline-container" class="space-y-12">
<!-- JS will populate this -->
</div>
</div>
<div id="timeline-details" class="mt-8 p-6 bg-secondary rounded-lg min-h-[100px] text-center transition-all">
<p class="text-gray-600" data-key="timelinePlaceholder">請點擊上方時間點查看詳細資訊。</p>
</div>
</section>
<section id="union" class="py-12 scroll-mt-20">
<div class="text-center mb-12 px-4">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="unionTitle">GMB 工會的角色與 SE+ 協議</h3>
<p class="mt-2 max-w-2xl mx-auto text-gray-600" data-key="unionSubtitle">面對法律挑戰和工會壓力,Evri (當時的 Hermes) 推出了創新的「自僱增益型」(SE+) 合約,試圖在保留彈性的同時提供更多保障。然而,這項協議是否真正解決了問題?</p>
</div>
<div class="grid md:grid-cols-2 gap-8 items-start">
<div class="bg-white p-6 rounded-lg shadow-lg">
<h4 class="font-bold text-xl mb-4 text-center text-green-700" data-key="unionProsTitle">SE+ 合約的進步之處</h4>
<ul class="space-y-3">
<li class="flex items-start"><span class="text-green-500 mr-2">✔</span> <div data-key="unionPro1"><strong>保障最低時薪:</strong> 費率高於國家生活工資。</div></li>
<li class="flex items-start"><span class="text-green-500 mr-2">✔</span> <div data-key="unionPro2"><strong>帶薪假期:</strong> 每年最多 28 天。</div></li>
<li class="flex items-start"><span class="text-green-500 mr-2">✔</span> <div data-key="unionPro3"><strong>養老金計劃:</strong> 自動加入公司支持的養老金計劃。</div></li>
<li class="flex items-start"><span class="text-green-500 mr-2">✔</span> <div data-key="unionPro4"><strong>集體談判權:</strong> GMB 工會可代表派件員進行薪酬協商。</div></li>
<li class="flex items-start"><span class="text-green-500 mr-2">✔</span> <div data-key="unionPro5"><strong>病假與育嬰假:</strong> 為 GMB 會員提供補貼保險及假期權利。</div></li>
</ul>
</div>
<div class="bg-white p-6 rounded-lg shadow-lg border-t-4 border-yellow-400">
<h4 class="font-bold text-xl mb-4 text-center text-yellow-700" data-key="unionConsTitle">持續存在的挑戰</h4>
<ul class="space-y-3">
<li class="flex items-start"><span class="text-yellow-500 mr-2">❗</span> <div data-key="unionCon1"><strong>自願加入:</strong>並非所有派件員都選擇或有資格加入 SE+,保障並非普及。</div></li>
<li class="flex items-start"><span class="text-yellow-500 mr-2">❗</span> <div data-key="unionCon2"><strong>實際收入爭議:</strong> 仍有派件員報告,即使在 SE+ 下,扣除開支後收入仍低於最低工資。</div></li>
<li class="flex items-start"><span class="text-yellow-500 mr-2">❗</span> <div data-key="unionCon3"><strong>變相減薪:</strong> 有指控稱公司會透過調整包裹分類或增加工作量來壓低高效派件員的實際費率。</div></li>
<li class="flex items-start"><span class="text-yellow-500 mr-2">❗</span> <div data-key="unionCon4"><strong>根本矛盾:</strong> 公司控制成本的需求與派件員對穩定收入的渴望之間,依然存在著持續的張力。</div></li>
</ul>
</div>
</div>
</section>
<section id="conclusion" class="text-center py-16">
<h3 class="text-2xl md:text-3xl font-bold text-accent" data-key="conclusionTitle">結論:一場未完的博弈</h3>
<p class="mt-4 max-w-3xl mx-auto text-lg text-gray-700" data-key="conclusionText">Evri 的案例是「零工經濟」下勞資關係的縮影。它揭示了在追求低成本、高效率的電子商務市場中,勞動者的權益如何被置於壓力之下。儘管在工會的努力下取得了如 SE+ 協議等重要進展,但要真正實現公平的勞動實踐與可持續的商業模式之間的平衡,Evri 和整個行業仍有很長的路要走。</p>
</section>
</main>
<!-- Modal -->
<div id="courier-modal" class="modal fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 z-50 opacity-0 pointer-events-none">
<div class="bg-white rounded-lg shadow-xl p-8 max-w-md w-full">
<h4 class="text-2xl font-bold mb-4 text-accent" data-key="modalTitle">自僱派件員的真實成本</h4>
<p class="mb-6 text-gray-700" data-key="modalSubtitle">作為「自僱人士」,派件員需自行承擔所有營運開支,這些開支會大幅蠶食他們的毛收入。這包括:</p>
<ul class="space-y-2 list-disc list-inside text-gray-600">
<li data-key="modalCost1"><strong>燃料費:</strong>每日行駛的主要開銷。</li>
<li data-key="modalCost2"><strong>車輛保險:</strong>必須購買包含商業用途的保險。</li>
<li data-key="modalCost3"><strong>車輛維護與損耗:</strong>輪胎、機油、維修等費用。</li>
<li data-key="modalCost4"><strong>稅務與國民保險:</strong>需自行處理個人稅務及供款。</li>
<li data-key="modalCost5"><strong>無薪時間:</strong>包裹分揀、裝載、規劃路線的時間不計薪。</li>
</ul>
<button id="close-modal" class="mt-6 w-full bg-accent text-white py-2 rounded-lg hover:bg-opacity-90 transition-colors" data-key="modalClose">關閉</button>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// --- 1. LANGUAGE DATA & STATE ---
const translations = {
'en': {
pageTitle: "Evri Courier Pay: An Interactive Analysis",
headerTitle: "Evri Pay Uncovered",
navConflict: "Pay Dispute",
navModel: "Business Model",
navPressures: "Pressures",
navTimeline: "History",
navUnion: "Union Role",
navConflictMobile: "Pay Dispute",
navModelMobile: "Business Model",
navPressuresMobile: "Pressures",
navTimelineMobile: "History",
navUnionMobile: "Union Role",
heroTitle: "The Evri Enigma: Deconstructing the True Cost of Your Delivery",
heroSubtitle: "Evri (formerly Hermes), one of the UK's largest parcel delivery companies, serves major retailers with its budget-friendly prices. But behind the low cost lies the reality of low courier pay and precarious working conditions. This report delves into the core conflict of this 'gig economy' model.",
conflictTitle: "Two Sides of the Coin: Official Claims vs. On-the-Ground Reality",
conflictSubtitle: "Evri officially states its SE+ contract provides a safety net above minimum wage, but many couriers' experiences paint a different picture. The chart below compares the advertised average hourly rate with the actual take-home pay after deducting operating costs.",
modelTitle: "Dissecting the Business Model: The Price of 'Self-Employment'",
modelSubtitle: "At the heart of Evri's operation is a vast network of self-employed couriers. This model offers the company immense flexibility and cost advantages, but it also shifts significant operational risks and costs onto the couriers. Click on 'Self-Employed Courier' below to see what costs they bear.",
modelRetailers: "Retailers",
modelHub: "Evri Sortation Hub",
modelCourier: "Self-Employed Courier",
modelClick: "(Click for details)",
modelCustomer: "Customer",
pressuresTitle: "The Triple Squeeze: Structural Factors Depressing Pay",
pressuresSubtitle: "Low courier pay isn't accidental; it's a result of the company's business strategy, the nature of the gig economy, and the competitive market environment.",
pressure1Title: "1. Cost-Competition Strategy",
pressure1Text: "Evri's core offering to large e-commerce clients is an 'economical' delivery service. This means the company must aggressively control costs, and courier pay, being one of the largest variable costs, is a primary target.",
pressure2Title: "2. The Economics of Self-Employment",
pressure2Text: "Classifying couriers as 'self-employed' absolves the company of employer's National Insurance contributions, holiday pay, and vehicle expenses. These costs are transferred directly to the individual, depressing the company's direct labor costs.",
pressure3Title: "3. Market and Ownership Pressure",
pressure3Text: "Fierce market competition drives down delivery prices. Simultaneously, the private equity ownership (Apollo) structure, which seeks high efficiency and profit maximization, further intensifies pressure on cost control, including pay.",
timelineTitle: "The Journey: From Hermes to Evri",
timelineSubtitle: "Evri's evolution reflects the changes in the UK logistics industry. Click on the key milestones on the timeline to learn about the significant events that have shaped the company.",
timelinePlaceholder: "Please click on a time point above for details.",
unionTitle: "The Role of the GMB Union & The SE+ Agreement",
unionSubtitle: "Facing legal challenges and union pressure, Evri (then Hermes) introduced the innovative 'Self-Employed Plus' (SE+) contract, attempting to offer more security while retaining flexibility. But has this agreement truly solved the problem?",
unionProsTitle: "Advancements of the SE+ Contract",
unionPro1: "<strong>Guaranteed Minimum Wage:</strong> Rates above the National Living Wage.",
unionPro2: "<strong>Paid Holidays:</strong> Up to 28 days annually.",
unionPro3: "<strong>Pension Scheme:</strong> Automatic enrollment into a company-supported pension plan.",
unionPro4: "<strong>Collective Bargaining:</strong> The GMB union can negotiate pay on behalf of couriers.",
unionPro5: "<strong>Sick & Parental Leave:</strong> Subsidised insurance and leave rights for GMB members.",
unionConsTitle: "Persistent Challenges",
unionCon1: "<strong>Voluntary Opt-In:</strong> Not all couriers choose or are eligible for SE+, so protections are not universal.",
unionCon2: "<strong>Actual Earnings Dispute:</strong> Couriers still report earnings below minimum wage after expenses, even under SE+.",
unionCon3: "<strong>De Facto Pay Cuts:</strong> Allegations exist that the company reduces effective rates for efficient couriers by reclassifying parcels or increasing workloads.",
unionCon4: "<strong>Fundamental Conflict:</strong> A persistent tension remains between the company's need to control costs and the couriers' desire for a stable income.",
conclusionTitle: "Conclusion: An Unfinished Game",
conclusionText: "Evri's case is a microcosm of labor relations in the gig economy. It reveals how workers' rights are squeezed in the pursuit of low-cost, high-efficiency e-commerce. While significant progress, like the SE+ agreement, has been made through union efforts, Evri and the industry as a whole have a long way to go to balance fair labor practices with a sustainable business model.",
modalTitle: "The True Cost for a Self-Employed Courier",
modalSubtitle: "As 'self-employed' individuals, couriers must cover all their operating expenses, which significantly eat into their gross earnings. This includes:",
modalCost1: "<strong>Fuel:</strong> A primary daily expense.",
modalCost2: "<strong>Vehicle Insurance:</strong> Must include business use coverage.",
modalCost3: "<strong>Vehicle Maintenance & Depreciation:</strong> Costs for tyres, oil, repairs, etc.",
modalCost4: "<strong>Tax & National Insurance:</strong> Responsible for their own tax affairs.",
modalCost5: "<strong>Unpaid Time:</strong> Time spent sorting, loading, and planning routes is not compensated.",
modalClose: "Close",
// Chart specific
chartLabel: "Hourly Pay (£)",
chartDataLabel1: "Evri Official Claim (SE+ Peak)",
chartDataLabel2: "Courier Reported Actual (Post-costs)",
chartXAxisLabel: "Income Per Hour (£)",
// Timeline specific
timelineData: [
{ year: '1974', title: 'Company Founded', text: 'Started as Grattan Mail Order in Yorkshire, serving the mail-order business.' },
{ year: '2020', title: 'Private Equity Acquisition', text: 'Advent International acquired a majority stake, investing heavily in technology and automation.' },
{ year: '2022', title: 'Rebranded to Evri', text: 'To counter negative press about mishandled parcels and poor service, Hermes UK rebranded to Evri, aiming to reshape its public image.' },
{ year: '2024', title: 'Apollo Takes Over', text: 'Private equity firm Apollo Global Management fully acquired Evri in a £2.7 billion deal.' },
{ year: '2025', title: 'Merger with DHL', text: 'Evri announced a merger with DHL eCommerce UK to create the UK\'s largest parcel delivery business, with DHL Group as a significant minority shareholder.' }
]
},
'zh-Hant': {
pageTitle: "Evri 派件員薪酬互動式分析報告",
headerTitle: "Evri 薪酬解密",
navConflict: "薪酬爭議",
navModel: "商業模式",
navPressures: "壓力來源",
navTimeline: "發展歷程",
navUnion: "工會角色",
navConflictMobile: "薪酬爭議",
navModelMobile: "商業模式",
navPressuresMobile: "壓力來源",
navTimelineMobile: "發展歷程",
navUnionMobile: "工會角色",
heroTitle: "Evri 之謎:拆解您派送的真正成本",
heroSubtitle: "Evri (前 Hermes) 是英國最大的包裹派送公司之一,以其經濟實惠的價格服務於各大零售商。但低價背後,是派件員薪酬偏低和工作條件不穩的現實。本報告將帶您深入探討這個「零工經濟」模式下的核心矛盾。",
conflictTitle: "硬幣的兩面:官方說法 vs 現實處境",
conflictSubtitle: "Evri 官方宣稱其 SE+ 合約提供了優於最低工資的保障,但許多派件員的實際經歷卻描繪了另一幅景象。下圖比較了官方宣傳的平均時薪與派件員扣除營運成本後的實際收入。",
modelTitle: "商業模式剖析:「自僱」的代價",
modelSubtitle: "Evri 的運作核心是一個龐大的自僱派件員網絡。這種模式為公司帶來了極大的彈性和成本優勢,但同時也將大量的營運風險和成本轉嫁給了派件員。點擊下圖中的「派件員」了解他們需要承擔哪些成本。",
modelRetailers: "零售商",
modelHub: "Evri 分揀中心",
modelCourier: "自僱派件員",
modelClick: "(點擊查看詳情)",
modelCustomer: "顧客",
pressuresTitle: "三重壓力:壓低薪酬的結構性因素",
pressuresSubtitle: "派件員的低薪並非偶然,而是由公司的商業策略、零工經濟的本質以及市場競爭環境共同造成的。",
pressure1Title: "1. 成本競爭策略",
pressure1Text: "Evri 的核心是為大型電商客戶提供「經濟實惠」的派送服務。這意味著公司必須極力控制成本,而作為最大可變成本之一的派件員薪酬,自然成為首要目標。",
pressure2Title: "2. 自僱模式的經濟學",
pressure2Text: "將派件員歸類為「自僱」可讓公司免於承擔僱主的社會保險、帶薪假期、車輛開支等。這些成本直接轉嫁給個人,從而壓低了公司的直接勞動力成本。",
pressure3Title: "3. 市場與所有權壓力",
pressure3Text: "激烈的市場競爭迫使派送價格不斷探底。同時,私募股權(Apollo)的所有權結構,追求高效率和利潤最大化,進一步加劇了對成本(包括薪酬)的控制。",
timelineTitle: "發展歷程:從 Hermes 到 Evri",
timelineSubtitle: "Evri 的演變反映了英國物流業的變遷。點擊時間軸上的關鍵節點,了解影響公司的重大事件。",
timelinePlaceholder: "請點擊上方時間點查看詳細資訊。",
unionTitle: "GMB 工會的角色與 SE+ 協議",
unionSubtitle: "面對法律挑戰和工會壓力,Evri (當時的 Hermes) 推出了創新的「自僱增益型」(SE+) 合約,試圖在保留彈性的同時提供更多保障。然而,這項協議是否真正解決了問題?",
unionProsTitle: "SE+ 合約的進步之處",
unionPro1: "<strong>保障最低時薪:</strong> 費率高於國家生活工資。",
unionPro2: "<strong>帶薪假期:</strong> 每年最多 28 天。",
unionPro3: "<strong>養老金計劃:</strong> 自動加入公司支持的養老金計劃。",
unionPro4: "<strong>集體談判權:</strong> GMB 工會可代表派件員進行薪酬協商。",
unionPro5: "<strong>病假與育嬰假:</strong> 為 GMB 會員提供補貼保險及假期權利。",
unionConsTitle: "持續存在的挑戰",
unionCon1: "<strong>自願加入:</strong>並非所有派件員都選擇或有資格加入 SE+,保障並非普及。",
unionCon2: "<strong>實際收入爭議:</strong> 仍有派件員報告,即使在 SE+ 下,扣除開支後收入仍低於最低工資。",
unionCon3: "<strong>變相減薪:</strong> 有指控稱公司會透過調整包裹分類或增加工作量來壓低高效派件員的實際費率。",
unionCon4: "<strong>根本矛盾:</strong> 公司控制成本的需求與派件員對穩定收入的渴望之間,依然存在著持續的張力。",
conclusionTitle: "結論:一場未完的博弈",
conclusionText: "Evri 的案例是「零工經濟」下勞資關係的縮影。它揭示了在追求低成本、高效率的電子商務市場中,勞動者的權益如何被置於壓力之下。儘管在工會的努力下取得了如 SE+ 協議等重要進展,但要真正實現公平的勞動實踐與可持續的商業模式之間的平衡,Evri 和整個行業仍有很長的路要走。",
modalTitle: "自僱派件員的真實成本",
modalSubtitle: "作為「自僱人士」,派件員需自行承擔所有營運開支,這些開支會大幅蠶食他們的毛收入。這包括:",
modalCost1: "<strong>燃料費:</strong>每日行駛的主要開銷。",
modalCost2: "<strong>車輛保險:</strong>必須購買包含商業用途的保險。",
modalCost3: "<strong>車輛維護與損耗:</strong>輪胎、機油、維修等費用。",
modalCost4: "<strong>稅務與國民保險:</strong>需自行處理個人稅務及供款。",
modalCost5: "<strong>無薪時間:</strong>包裹分揀、裝載、規劃路線的時間不計薪。",
modalClose: "關閉",
// Chart specific
chartLabel: '時薪 (英鎊)',
chartDataLabel1: 'Evri 官方宣稱時薪 (SE+ 高峰期)',
chartDataLabel2: '派件員報告實際時薪 (扣除成本後)',
chartXAxisLabel: '每小時收入 (英鎊 £)',
// Timeline specific
timelineData: [
{ year: '1974', title: '公司成立', text: '前身名為 Grattan Mail Order,位於約克郡,為郵購業務提供服務。' },
{ year: '2020', title: '私募股權收購', text: 'Advent International 收購公司多數股權,並投入巨資進行技術升級和自動化改造。' },
{ year: '2022', title: '更名為 Evri', text: '為應對包裹處理不當、服務差等負面批評,Hermes UK 更名為 Evri,意圖重塑品牌形象。' },
{ year: '2024', title: 'Apollo 接手', text: '私募股權公司 Apollo Global Management 以 27 億英鎊全面收購 Evri。' },
{ year: '2025', title: '與 DHL 合併', text: 'Evri 宣布與 DHL eCommerce UK 合併,旨在打造英國最大的包裹派送企業,DHL 集團成為重要少數股東。' }
]
}
};
let currentLang = 'zh-Hant';
let payChart = null;
// --- 2. TRANSLATION & DYNAMIC CONTENT FUNCTIONS ---
function switchLanguage(lang) {
currentLang = lang;
document.documentElement.lang = lang;
document.querySelectorAll('[data-key]').forEach(elem => {
const key = elem.getAttribute('data-key');
if (translations[lang][key]) {
elem.innerHTML = translations[lang][key];
}
});
// Re-create dynamic content with new language
createPayChart(lang);
createTimeline(lang);
}
function createPayChart(lang) {
if (payChart) {
payChart.destroy();
}
const ctx = document.getElementById('payComparisonChart').getContext('2d');
const chartData = {
labels: [translations[lang].chartDataLabel1, translations[lang].chartDataLabel2],
datasets: [{
label: translations[lang].chartLabel,
data: [23.49, 4.25],
backgroundColor: ['rgba(0, 95, 115, 0.6)', 'rgba(238, 108, 77, 0.6)'],
borderColor: ['rgba(0, 95, 115, 1)', 'rgba(238, 108, 77, 1)'],
borderWidth: 1
}]
};
const chartOptions = {
responsive: true,
maintainAspectRatio: false,
indexAxis: 'y',
scales: {
x: {
beginAtZero: true,
title: { display: true, text: translations[lang].chartXAxisLabel }
}
},
plugins: {
legend: { display: false },
tooltip: {
callbacks: {
label: function(context) {
let label = context.dataset.label || '';
if (label) { label += ': '; }
if (context.parsed.x !== null) {
label += new Intl.NumberFormat('en-GB', { style: 'currency', currency: 'GBP' }).format(context.parsed.x);
}
return label;
}
}
}
}
};
payChart = new Chart(ctx, { type: 'bar', data: chartData, options: chartOptions });
}
function createTimeline(lang) {
const timelineData = translations[lang].timelineData;
const timelineContainer = document.getElementById('timeline-container');
const timelineDetails = document.getElementById('timeline-details');
timelineContainer.innerHTML = ''; // Clear existing timeline
timelineDetails.innerHTML = `<p class="text-gray-600">${translations[lang].timelinePlaceholder}</p>`;
timelineData.forEach((item, index) => {
const itemDiv = document.createElement('div');
itemDiv.className = `timeline-item relative w-1/2 ${index % 2 === 0 ? '' : 'ml-auto'}`;
const textAlignment = index % 2 === 0 ? 'text-right pr-8' : 'text-left pl-8';
itemDiv.innerHTML = `
<div class="dot absolute top-1/2 -mt-2 w-4 h-4 rounded-full bg-gray-300 border-2 border-white ${index % 2 === 0 ? 'right-0 -mr-2' : 'left-0 -ml-2'}"></div>
<div class="${textAlignment}">
<p class="font-bold text-lg text-accent">${item.year}</p>
<p class="text-md text-gray-800">${item.title}</p>
</div>
`;
itemDiv.addEventListener('click', () => {
document.querySelectorAll('.timeline-item').forEach(el => el.classList.remove('active'));
itemDiv.classList.add('active');
timelineDetails.innerHTML = `<p class="font-bold text-accent">${item.year}: ${item.title}</p><p class="mt-2">${item.text}</p>`;
});
timelineContainer.appendChild(itemDiv);
});
}
// --- 3. EVENT LISTENERS ---
// Language Toggle
document.getElementById('lang-toggle').addEventListener('click', () => {
const newLang = currentLang === 'en' ? 'zh-Hant' : 'en';
switchLanguage(newLang);
});
document.getElementById('lang-toggle-mobile').addEventListener('click', () => {
const newLang = currentLang === 'en' ? 'zh-Hant' : 'en';
switchLanguage(newLang);
});
// Mobile Menu
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
mobileMenuButton.addEventListener('click', () => {
mobileMenu.classList.toggle('hidden');
});
document.querySelectorAll('#mobile-menu a').forEach(link => {
link.addEventListener('click', () => mobileMenu.classList.add('hidden'));
});
// Courier Cost Modal
const courierNode = document.getElementById('courier-node');
const courierModal = document.getElementById('courier-modal');
const closeModalButton = document.getElementById('close-modal');
courierNode.addEventListener('click', () => {
courierModal.classList.remove('opacity-0', 'pointer-events-none');
});
closeModalButton.addEventListener('click', () => {
courierModal.classList.add('opacity-0', 'pointer-events-none');
});
courierModal.addEventListener('click', (e) => {
if (e.target === courierModal) {
courierModal.classList.add('opacity-0', 'pointer-events-none');
}
});
// Nav link scroll behavior
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const targetElement = document.querySelector(this.getAttribute('href'));
if(targetElement){
targetElement.scrollIntoView({ behavior: 'smooth' });
}
});
});
// Active nav link on scroll
const sections = document.querySelectorAll('section');
const navLinks = document.querySelectorAll('.nav-link');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
if (pageYOffset >= sectionTop - 150) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href') && link.getAttribute('href').includes(current)) {
link.classList.add('active');
}
});
});
// --- 4. INITIAL PAGE LOAD ---
switchLanguage(currentLang); // Set initial language
});
</script>
</body>
</html>