{"id":142543,"date":"2026-08-11T03:02:43","date_gmt":"2026-08-11T01:02:43","guid":{"rendered":"https:\/\/news.abusizz.ch\/elis-aktie-waesche-und-andere-services-im-abo-das-geschaeft-hinter-den-kulissen\/"},"modified":"2026-08-11T03:02:43","modified_gmt":"2026-08-11T01:02:43","slug":"elis-aktie-waesche-und-andere-services-im-abo-das-geschaeft-hinter-den-kulissen","status":"publish","type":"post","link":"https:\/\/news.abusizz.ch\/it\/elis-aktie-waesche-und-andere-services-im-abo-das-geschaeft-hinter-den-kulissen\/","title":{"rendered":"Elis Aktie: W\u00e4sche und andere Services im Abo \u2013 das Gesch\u00e4ft hinter den Kulissen"},"content":{"rendered":"<div>\n<div id=\"attachment_90378\" style=\"width: 410px\" class=\"wp-caption alignleft\">\n<p id=\"caption-attachment-90378\" class=\"wp-caption-text\">Dank hoher Kundenbindung und langlaufenden Service-Vertr\u00e4gen profitiert die Elis-Aktie von stabilen Cashflows im textilen B2B-Gesch\u00e4ft. (Foto: Magnific.com, arinahabich)<\/p>\n<\/div>\n<p>Tag f\u00fcr Tag liefert ein Unternehmen am Morgen frische \u00c4rztekittel in Dutzende Krankenh\u00e4user, reinigt die Bettw\u00e4sche in Hunderten von Hotels und sorgt daf\u00fcr, dass die Schutzkleidung in Automobilwerken am Flie\u00dfband h\u00e4ngt, bevor die erste Schicht beginnt.<\/p>\n<p>All das l\u00e4uft fast schon unsichtbar im Hintergrund. Kein Wunder, dass der Name dieses Unternehmens nicht weitl\u00e4ufig bekannt ist: Elis SA. Gegr\u00fcndet 1883 in Frankreich, bedient der Konzern heute 400.000 Kunden in 31 L\u00e4ndern und erzielte zuletzt einen Umsatz von knapp 5 Milliarden Euro. An der Pariser B\u00f6rse fristet die Aktie ein Dasein unterhalb des Radars der meisten Privatanleger \u2013 zu Unrecht, wie ein n\u00e4herer Blick zeigt.<\/p>\n<div class=\"infobox\">\n<p><strong>Das Wichtigste zur Elis Aktie<\/strong><\/p>\n<ul>\n<li>Elis \u00fcberzeugt durch ein krisenresistentes B2B-Gesch\u00e4ftsmodell mit hoher Kundenbindung und monatlichen Servicepauschalen.<\/li>\n<li>Die Quartalszahlen im 1. Halbjahr zeigen ein solides Umsatzwachstum von 4,9 Prozent auf 2,46 Milliarden Euro.<\/li>\n<li>Trotz operativer St\u00e4rke bestehen Risiken durch juristische Altlasten in Brasilien und den Verlust von Regierungsauftr\u00e4gen in Mexiko.<\/li>\n<\/ul>\n<\/div>\n<h3>Textil-Service: Simples Prinzip, starke Wirkung<\/h3>\n<p>Um <a href=\"https:\/\/fr.elis.com\/en\/group\" target=\"_blank\" rel=\"noopener\">Elis<\/a> zu verstehen, muss man zun\u00e4chst begreifen, was das Unternehmen eigentlich verkauft. Die \u00fcberraschende Antwort darauf lautet: gar nichts. Vielmehr vermietet Elis. Allerdings nicht nur Textilien, sondern auch die gesamte Dienstleistung drumherum.<\/p>\n<p>So schlie\u00dft ein Krankenhaus, das mit Elis zusammenarbeitet, nicht etwa einen Kaufvertrag f\u00fcr OP-M\u00e4ntel oder Patientenw\u00e4sche ab. Stattdessen zahlt es eine monatliche Servicepauschale, um im Gegenzug die wiederaufbereiteten oder gegebenenfalls ausgebesserten Kleidungsst\u00fccke zur sofortigen Weiternutzung geliefert zu bekommen.<\/p>\n<p>Dasselbe Prinzip gilt f\u00fcr Hoteliers, die keine eigene W\u00e4scherei betreiben wollen oder f\u00fcr Industrieunternehmen, die ihren Mitarbeitern Schutzkleidung stellen m\u00fcssen. Elis \u00fcbernimmt all das und rechnet es im Abonnementpaket ab.<\/p>\n<p>Obwohl die Dienstleistung zun\u00e4chst wie ein einfacher W\u00e4scheservice anmuten mag, ist sie in Wirklichkeit ein kapitalintensives und doch robustes Gesch\u00e4ftsmodell. Das Erfolgsrezept liegt in den langen Vertragslaufzeiten und der hohen Kundenbindung.<\/p>\n<p>Wer einmal mit Elis kooperiert, wechselt selten, weil es zu aufw\u00e4ndig w\u00e4re, einen neuen Anbieter zu suchen, der an 400 eigenen Standorten W\u00e4schereien betreibt, Touren f\u00e4hrt und die gesamte dahinterstehende Logistik problemlos beherrscht.<\/p>\n<h3>Quartalszahlen unterstreichen operative Stabilit\u00e4t<\/h3>\n<p>Erst Ende Juli legte Elis seinen Halbjahresbericht vor, der sich sehen lassen kann. In den ersten 6 Monaten des laufenden Jahres stieg der Umsatz um 4,9 Prozent auf 2,46 Milliarden Euro, wovon 3,2 Prozent aus echtem organischem Wachstum stammen, der Rest hingegen auf Zuk\u00e4ufe oder W\u00e4hrungseffekte zur\u00fcckzuf\u00fchren ist.<\/p>\n<p>Ebenfalls um 4,9 Prozent legte das bereinigte operative Ergebnis vor Zinsen, Steuern und Abschreibungen (Ebitda) auf 853,8 Millionen Euro zu, sodass die Marge bei konstanten 37,7 Prozent verharrt. Zuw\u00e4chse gab es derweil auch beim Nettogewinn (7,3 Prozent auf 163,6 Millionen Euro) sowie beim bereinigten Gewinn je Aktie, der nun bei 0,89 Euro liegt (plus 5,1 Prozent).<\/p>\n<p>\u00a0<\/p>\n<div class=\"chartwrapper\" id=\"chartwrapper\" data-chartid=\"6a79e06ab57bc\"><\/div>\n<p>    <script id=\"tvChartLoader\" async src=\"https:\/\/unpkg.com\/lightweight-charts@4.2.0\/dist\/lightweight-charts.standalone.production.js\"><\/script><\/p>\n<p>    <script id=\"declarations\">\n    var chartid = \"6a79e06ab57bc\";\n    function renderTV(kursData, chartData,companyName,currency, chartHeight, chartWidth, code, exchange, kursDate, hidetitle, hidelegend, chartid) {      \n    \tconsole.log(\"render chart with id\", document.querySelector(`[data-chartid=\"${chartid}\"]`));\n        let width = chartWidth?chartWidth:600;\n        let ratio = 2\n        let height = chartHeight?chartHeight:(width\/ratio);\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.height = chartHeight +50\n        document.querySelector(`[data-chartid=\"${chartid}\"]`).style.width = chartWidth<\/p>\n<p>        \/\/ formatter for x achis dates\n        function customXAchsisFormetter(timePoint, tickMarkType, locale) {\n            let formatOptions = {};\n            const date = new Date(timePoint);<\/p>\n<p>            if(tickMarkType <=1){\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n\n            }else{\n                formatOptions = {day: \"numeric\", month: \"short\",year: \"numeric\",}\n            }\n            \/\/ from given date we should use only as UTC date or timestamp\n            \/\/ but to format as locale date we can convert UTC date to local date\n            const localDateFromUtc = new Date(\n                date.getUTCFullYear(),\n                date.getUTCMonth(),\n                date.getUTCDate()\n            );\n\n            return localDateFromUtc.toLocaleString(locale, formatOptions);\n        }\n\n        \/\/create buttons\n        function createSimpleSwitcher(items, activeItem, activeItemChangedCallback) {\n            var switcherElement = document.createElement(\"div\");\n            switcherElement.classList.add(\"switcher\");\n\n            var intervalElements = items.map(function (item) {\n                var itemEl = document.createElement(\"button\");\n                itemEl.innerText = item;\n                itemEl.classList.add(\"switcher-item\");\n                itemEl.classList.toggle(\"switcher-active-item\", item === activeItem);\n                itemEl.addEventListener(\"click\", function () {\n                    onItemClicked(item);\n                });\n                switcherElement.appendChild(itemEl);\n                return itemEl;\n            });\n\n            function onItemClicked(item) {\n                if (item === activeItem) {\n                    return;\n                }\n\n                intervalElements.forEach(function (element, index) {\n                    element.classList.toggle(\"switcher-active-item\", items[index] === item);\n                });\n\n                activeItem = item;\n\n                activeItemChangedCallback(item);\n            }\n\n            return switcherElement;\n        }\n        \/\/ loading: true or false\n        function handleAsyncUI(loading){\n            var IntervalButtons = document.getElementsByClassName(\"switcher-item\");\n             for(var i = 0; i < IntervalButtons.length; i++){\n                IntervalButtons[i].disabled = loading;\n             } \n             var chart = document.getElementsByClassName(\"tv-lightweight-charts\")[0];\n             if(loading){\n            \n            chart.style[\"display\"] = \"flex\"\n            chart.style[\"align-items\"] = \"center\"\n            chart.style[\"justify-content\"] = \"center\"\n\n            var loadingIndicator = document.createElement(\"div\");\n            loadingIndicator.classList.add(\"loader\");\n            \/\/loadingIndicator.innerText = \"Loading\";\n            loadingIndicator.id =\"loadingIndicator\"\n            chart.appendChild(loadingIndicator);\n             }else{\n            document.getElementById(\"loadingIndicator\").remove();\n            chart.style[\"display\"] = null\n            chart.style[\"align-items\"] =null\n            chart.style[\"justify-content\"] = null\n             }\n\n        }\n        var intervals = [\"1M\",\"3M\",\"6M\",\"1Y\",\"3Y\",\"5Y\"];\n        var seriesesData = new Map([\n            [\"1M\", []], \/\/ 1m (interval daten?), 3m, 6m, 1y, 3y, 5y\n            [\"3M\", []],\n            [\"6M\", []],\n            [\"1Y\", chartData],\n            [\"3Y\", []],\n            [\"5Y\", []],\n        ]);\n        var switcherElement = createSimpleSwitcher(intervals, intervals[3], syncToInterval);\n        var chartElement = document.createElement(\"div\");\n        const chart = LightweightCharts.createChart(chartElement, {\n            width: width,\n            height: height,\n            rightPriceScale: {\n                scaleMargins: {\n                    top: 0.2,\n                    bottom: 0.2,\n                },\n                borderVisible: false,\n            },\n            timeScale: {\n                borderVisible: false,\n                lockVisibleTimeRangeOnResize: true,\n\n                rightOffset:1,\n                tickMarkFormatter:customXAchsisFormetter\n\n            },\n            grid: {\n                horzLines: {\n                    color: \"#eee\",\n                    visible: false,\n                },\n                vertLines: {\n                    color: \"#ffffff\",\n                },\n            },\n            crosshair: {\n                horzLine: {\n                    visible: false,\n                    labelVisible: false\n                },\n                vertLine: {\n                    visible: true,\n                    style: 0,\n                    width: 2,\n                    color: \"rgba(80, 50, 25, 0.1)\",\n                    labelVisible: false,\n                }\n            },\n            handleScroll: {\n                mouseWheel: false,\n                pressedMouseMove: false,\n                horzTouchDrag: false,\n                vertTouchDrag: false\n            },\n            handleScale: {\n                axisPressedMouseMove: false,\n                mouseWheel: false,\n                pinch: false,\n            },\n        });\n        var areaSeries = null;\n        var positionDIV = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        positionDIV.appendChild(chartElement);\n        positionDIV.appendChild(switcherElement);\n        function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 &#038;&#038; xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        }\n        function formatDate(date) {\n            \n            var month = \"\" + (date.getMonth()+1);\n            var day = \"\" + date.getDate();\n            var year = date.getFullYear();\n\n            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n            return [year, month, day].join(\"-\");\n        }\n        function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));\n                \n                }\n            return {from:from, to:to}\n        }\t\n        \/\/ what happens on button click\n        function syncToInterval(interval) {\n            if (areaSeries &#038;&#038; seriesesData.get(interval).length <=0) {\n                console.log(\"GETTING REMOTE DATA\")\n\n                chart.removeSeries(areaSeries);\n                areaSeries = null;\n                let apiToken = \"za1j116n2273ab1vxukuh6\"\n                let timeframe = getTimeframe(interval)\n                let filter = \"adjusted_close\"\n                handleAsyncUI(true)\t\t\t\t\t\t\n                httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n                    let newData = []\n                    newData = JSON.parse(res)\/\/.map(el=>newData.push({time:el.date, value:el.close}))\n                    \/\/ newData = newData.map(el=>{\n                    \/\/     console.log(el.time.year)\n                    \/\/     console.log(el.time.month)\n                    \/\/     console.log(el.time.day)\n                    \/\/     console.log(el)\n                    \/\/     console.log(new Date(el.time.year, el.time.month-1, el.time.day));\n                    \/\/     return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})\n                    console.log(\"newData\")\n                    console.log(newData)\n                    seriesesData.set(interval, newData)\n                    areaSeries = chart.addAreaSeries({\n                        topColor: \"rgba(33, 108, 173, 0.56)\",\n                        bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                        lineColor: \"rgba(33, 108, 173, 1)\",\n                    lineWidth: 2,\n                });\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries.setData(seriesesData.get(interval));\n                chart.timeScale().fitContent();\n                handleAsyncUI(false)\t\n                    })\n            }else{\n                console.log(\"GETTING LOADED DATA\")\n                if(areaSeries){\n                    console.log(\"DELETING  LOADED DATA FROM CHART\")\n                    chart.removeSeries(areaSeries);\n                    areaSeries = null;\n                }\n                kursData = seriesesData.get(interval)[seriesesData.get(interval).length-1].value\n                areaSeries = chart.addAreaSeries({\n                topColor: \"rgba(33, 108, 173, 0.56)\",\n                bottomColor: \"rgba(33, 108, 173, 0.04)\",\n                lineColor: \"rgba(33, 108, 173, 1)\",\n                lineWidth: 2,\n            });\n            areaSeries.setData(seriesesData.get(interval));<\/p>\n<p>            chart.timeScale().fitContent();\n            }<\/p>\n<p>        }\n        \/\/ data interval at startup\n        syncToInterval(intervals[3]);\n        \/\/ Name and Kurs as Text in legend<\/p>\n<p>        var watermark = document.createElement(\"img\")\n        watermark.classList.add(\"watermark\")\n        watermark.setAttribute(\"src\", \"https:\/\/api.leeway.tech\/leeway-sign.png\")\n        var testA = document.querySelector(`[data-chartid=\"${chartid}\"]`)\n        var testB = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n        var test =  testA.getElementsByTagName(\"canvas\")[0].getBoundingClientRect();\n        watermark.style.position = \"absolute\";\n        watermark.style.width = \"90px\";\n        watermark.style.height = \"30px\";\n        watermark.style.display = \"block\";\n        \/\/watermark.style.z-index = \"1000000\";\n        watermark.style.bottom = \"0\";\n        watermark.style.right = \"10px\";<\/p>\n<p>        let linkLW = document.createElement(\"a\")\n        linkLW.href=\"https:\/\/www.ftd.de\/leeway-tech\";\n        linkLW.target = \"_blank\";\n        linkLW.appendChild(watermark)\n        \/\/ append to DOM<\/p>\n<p>        \/\/div-chartwrapper -> div -> div ->  table  -> tr ->  td td -> div\n        const myElementA = document.querySelector(`[data-chartid=\"${chartid}\"]`);\n        let myElementB = myElementA.childNodes[0]\n        let myElementC = myElementB.childNodes[0]\n        let myElementD = myElementC.childNodes[0]\n        let myElementE = myElementD.childNodes[0]\n        let myElementF = myElementE.childNodes[1]\n        let myElementG = myElementF.childNodes[0]\n        myElementG.appendChild(linkLW);<\/p>\n<p>        if(hidelegend == \"false\"){\n            console.log(\"SHOW LEGEND!\")\n            var legend = document.createElement(\"div\");\n            legend.classList.add(\"legend\");\n            var offsets = document.querySelector(`[data-chartid=\"${chartid}\"]`).getBoundingClientRect();\n            var chartwrapperTop = offsets.top;<\/p>\n<p>            var legendHeight = height *-1\n            if(legendHeight>-210){legendHeight = -210;}\n            legend.style.top = legendHeight*1.2  + \"px\"\n            positionDIV.appendChild(legend);<\/p>\n<p>            if(hidetitle == \"false\"){\n                var firstRow = document.createElement(\"div\");\n                firstRow.classList.add(\"titleText\");\t<\/p>\n<p>            }<\/p>\n<p>            var secondRow = document.createElement(\"div\");\n            secondRow.classList.add(\"secondRow\");\t<\/p>\n<p>            if(kursData !== null){\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;\n                 legend.appendChild(secondRow);\n            }else{\n                if(hidetitle == \"false\"){\n                    firstRow.innerText = companyName\n                    legend.appendChild(firstRow);\n                }<\/p>\n<p>                legend.appendChild(secondRow);\n            }<\/p>\n<p>            \/\/ cursor moving and handling third row of legend\n            chart.subscribeCrosshairMove((param) => {\n                if (param.time) {\n                    let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n                    let currentDate = new Date(param.time).toLocaleDateString(\"de-DE\", options)\n                    const price = param.seriesData.get(areaSeries).value;\n                    secondRow.innerText = currentDate + \":  \" + price.toFixed(2) + \" \"+(currency?currency:\" \");\n                }\n            else {\n                secondRow.innerText = kursDate +\": \" + Number(kursData).toFixed(2) + \" \"+currency;<\/p>\n<p>            }\n            });<\/p>\n<p>        }<\/p>\n<p>    }\n    function httpGetAsync(theUrl, callback) {\n            var xmlHttp = new XMLHttpRequest();\n            xmlHttp.onreadystatechange = function () {\n                if (xmlHttp.readyState == 4 && xmlHttp.status == 200)\n                    callback(xmlHttp.responseText);\n            }\n            xmlHttp.open(\"GET\", theUrl, true); \/\/ true for asynchronous \n            xmlHttp.send(null);\n        };\n    function getTimeframe(interval){\n            let from = null;\n            let to = formatDate(new Date());\n            switch (interval) {\n                case \"1M\": from = formatDate(new Date(Date.now() - 31 * 24 * 60 * 60 * 1000)); break;\n                case \"3M\": from = formatDate(new Date(Date.now() - 93 * 24 * 60 * 60 * 1000)); break;\n                case \"6M\": from = formatDate(new Date(Date.now() - 186 * 24 * 60 * 60 * 1000)); break;\n                case \"1Y\": from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000)); break;\n                case \"3Y\": from = formatDate(new Date(Date.now() - 1116 * 24 * 60 * 60 * 1000)); break;\n                case \"5Y\": from = formatDate(new Date(Date.now() - 1860 * 24 * 60 * 60 * 1000)); break;\n                default:from = formatDate(new Date(Date.now() - 372 * 24 * 60 * 60 * 1000));<\/p>\n<p>                }\n            return {from:from, to:to}\n        };\n        function formatDate(date) {<\/p>\n<p>            var  month = \"\" + (date.getMonth()+1);\n            var   day = \"\" + date.getDate();\n            var   year = date.getFullYear();<\/p>\n<p>            if (month.length < 2) \n                month = \"0\" + month;\n            if (day.length < 2) \n                day = \"0\" + day;\n\n            return [year, month, day].join(\"-\");\n        };\n    <\/script><br \/>\n    <script id=\"main\"><\/p>\n<p>    var scriptTV = document.querySelector(\"#tvChartLoader\");\n    scriptTV.addEventListener(\"load\", function() {\n        var chartid = \"6a79e06ab57bc\";<\/p>\n<p>        var companyName = \"Elis SA\";\n        if(companyName.length <=0){\n        companyName = \"ELIS - PA\";\n        }\n        var code = \"ELIS\";\n        var exchange = \"PA\";\n        var currency =\"EUR\";\n        var kursData = null;\n        var kursDataDate = null;\n        var chartHeight = \"\";\n        var chartWidth = \"250\"\n        var hidetitle = \"false\"\n        var hidelegend = \"false\"\n        let apiToken = \"za1j116n2273ab1vxukuh6\"\n        chartWidth = document.querySelector(`[data-chartid=\"${chartid}\"]`).offsetWidth\n        var chartData = [];\n        var timeframe = getTimeframe(\"1Y\");\n        var filter = \"adjusted_close\";\n        \n        httpGetAsync(\"https:\/\/api.leeway.tech\/api\/v1\/public\/historicalquotes\/\"+encodeURIComponent(code+\".\"+exchange)+\"?apitoken=\"+apiToken+\"&#038;filter=\"+filter+\"&#038;from=\"+timeframe.from+\"&#038;to=\"+timeframe.to, function (res) {\t\n            let newData = null;\n             chartData = newData = JSON.parse(res)\n            \/\/ chartData =  chartData.map(el=>{return{value:el.value, time:el.time, timestamp:new Date(el.time.year, el.time.month-1, el.time.day).getTime()}})\n             kursData = chartData[chartData.length-1].value\n             let options = { weekday: \"short\", year: \"numeric\", month: \"numeric\", day: \"numeric\" };\n             kursDataDate = chartData[chartData.length-1].time\n             let kursDate = new Date(kursDataDate.split(\"-\")[0], Number(kursDataDate.split(\"-\")[1])-1, kursDataDate.split(\"-\")[2]).toLocaleDateString(\"de-DE\", options)<\/p>\n<p>             renderTV(kursData,chartData,companyName,currency, Number(chartHeight), Number(chartWidth), code, exchange, kursDate, hidetitle, hidelegend, chartid)\n        });\n    });\n<\/script><\/p>\n<h3>Prognose: Langfristige Aussichten bleiben vielversprechend<\/h3>\n<p>In den kommenden Jahren d\u00fcrfte sich die Wachstumsstory von Elis vermutlich kaum abschw\u00e4chen, denn Unternehmen aller Art lagern immer mehr Unterst\u00fctzungsprozesse an spezialisierte Dienstleister aus. Von dieser Entwicklung profitieren die Franzosen unmittelbar, weil sie genau das anbieten, was andere ungern erledigen: aufw\u00e4ndige, regulierte Routinen rund um Hygiene und Arbeitskleidung.<\/p>\n<p>In M\u00e4rkten wie Spanien, Italien oder Osteuropa ist der Outsourcing-Grad gegenw\u00e4rtig noch deutlich niedriger als in Frankreich oder Skandinavien, was Elis erhebliches Expansionspotenzial durch eine entsprechende geografische Ausrichtung er\u00f6ffnet.<\/p>\n<p>Zudem hat das Unternehmen sein Angebotsportfolio in j\u00fcngster Zeit gezielt um Bereiche wie beispielsweise Sch\u00e4dlingsbek\u00e4mpfung oder Reinraumkleidung f\u00fcr die Halbleiterindustrie erweitert, die h\u00f6here Margen versprechen und gleichzeitig die Abh\u00e4ngigkeit vom klassischen W\u00e4schegesch\u00e4ft sukzessive reduzieren sollen.<\/p>\n<p><span style=\"font-weight: 400;\">\t\t<\/p>\n<div data-elementor-type=\"section\" data-elementor-id=\"66258\" class=\"elementor elementor-66258\" data-elementor-post-type=\"elementor_library\">\n<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6a31268 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6a31268\" data-element_type=\"section\" data-e-type=\"section\">\n<div class=\"elementor-container elementor-column-gap-default\">\n<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d8de066\" data-id=\"d8de066\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-d76eb4c elementor-reverse-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d76eb4c\" data-element_type=\"section\" data-e-type=\"section\" data-settings='{\"background_background\":\"classic\"}'>\n<div class=\"elementor-container elementor-column-gap-default\">\n<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ca0c4b8\" data-id=\"ca0c4b8\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-e160fbf elementor-hidden-mobile elementor-widget elementor-widget-image\" data-id=\"e160fbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2000\" height=\"2000\"src=\"https:\/\/news.abusizz.ch\/wp-content\/uploads\/2026\/08\/Elis-Aktie-Waesche-und-andere-Services-im-Abo-\u2013-das-Geschaeft-hinter-den-Kulissen.png\" class=\"attachment-full size-full wp-image-78515\" alt=\"Smartbroker Dashboard \/ Quelle: Smartbroker Presse\" srcset=\"https:\/\/news.abusizz.ch\/wp-content\/uploads\/2026\/08\/Elis-Aktie-Waesche-und-andere-Services-im-Abo-\u2013-das-Geschaeft-hinter-den-Kulissen.png 2000w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-300x300.png 300w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-1024x1024.png 1024w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-150x150.png 150w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-768x768.png 768w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-1536x1536.png 1536w, https:\/\/www.ftd.de\/wp-content\/uploads\/Finanzen_Dashboard_Depot_Front-80x80.png 80w\" sizes=\"(max-width: 2000px) 100vw, 2000px\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-b89ab12\" data-id=\"b89ab12\" data-element_type=\"column\" data-e-type=\"column\">\n<div class=\"elementor-widget-wrap elementor-element-populated\">\n<div class=\"elementor-element elementor-element-a2c7edf elementor-absolute elementor-widget elementor-widget-text-editor\" data-id=\"a2c7edf\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings='{\"_position\":\"absolute\"}' data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p style=\"font-size: 12px; color: #999999; text-align: center;\">Anzeige<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-4f36c6a elementor-widget elementor-widget-heading\" data-id=\"4f36c6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<h5 class=\"elementor-heading-title elementor-size-default\">Bei anderen Depots investieren Sie in Ordergeb\u00fchren, bei Smartbroker+ in Ihren Verm\u00f6gensaufbau.<\/h5>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-e6be341 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"e6be341\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n<div class=\"elementor-widget-container\">\n<ul class=\"elementor-icon-list-items\">\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">kostenlose Depotf\u00fchrung<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Ordergeb\u00fchren ab 0\u20ac<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\"><br \/>\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-check\"><\/i>\t\t\t\t\t\t<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">kostenlose ETF-Sparpl\u00e4ne<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n<\/ul><\/div>\n<\/p><\/div>\n<div class=\"elementor-element elementor-element-90958e7 elementor-widget elementor-widget-html\" data-id=\"90958e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n<div class=\"elementor-widget-container\">\n<div class=\"button-container\">\n        <a class=\"box-affiliate\" href=\"https:\/\/www.ftd.de\/go\/smartbroker-depot\/\" target=\"_blank\">Zu Smartbroker*<\/a><\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section><\/div>\n<p>\t\t<\/span><\/p>\n<h3>Risiken f\u00fcr Investoren sind nicht wegzureden<\/h3>\n<p>So klar die St\u00e4rken von Elis sind, so offen sollte auch \u00fcber die Schwachstellen gesprochen werden. Die wohl gr\u00f6\u00dfte Herausforderung ist die derzeitige Situation in Mexiko. Nachdem die dortige Regierung das \u00f6ffentliche Gesundheitssystem umstrukturiert und alle Vertr\u00e4ge neu ausgeschrieben hat, verlor Elis rund die H\u00e4lfte seiner Auftr\u00e4ge in dem nordamerikanischen Land. Dieses Beispiel zeigt eindringlich, wie abh\u00e4ngig der Konzern von staatlichen Entscheidungen sein kann.<\/p>\n<p>Schwerer einzusch\u00e4tzen sind die juristischen Altlasten in Brasilien. Mehrere der dort in den vergangenen Jahren \u00fcbernommenen Unternehmen sind in beh\u00f6rdliche Untersuchungen wegen m\u00f6glicher Korruptionsvorf\u00e4lle aus der Zeit vor dem Erwerb verwickelt. Die Verfahren laufen seit Jahren, das maximale Haftungsrisiko liegt sch\u00e4tzungsweise bei umgerechnet rund 66 Millionen Euro.<\/p>\n<p>Zumindest nicht aus dem Blick verlieren sollten Investoren auch die Nettoverschuldung, die infolge des Aktienr\u00fcckkaufprogramms auf das 2,1-fache des Ebitda gestiegen ist. Das mag zwar ein vertretbares Verh\u00e4ltnis sein, l\u00e4sst andererseits aber nicht mehr die gro\u00dfen Spielr\u00e4ume f\u00fcr potenzielle Akquisitionen.<\/p>\n<h3>Elis Fazit: Etwas Geduld ist unabdingbar<\/h3>\n<p>Gewiss ist Elis keine Aktie, die von einem Quartal zum anderen spektakul\u00e4re Kursgewinne verspricht. Daf\u00fcr w\u00e4chst das Unternehmen aber moderat, erwirtschaftet Jahr f\u00fcr Jahr solide Cashflows und gibt einen Teil davon \u00fcber <a href=\"https:\/\/www.ftd.de\/boerse\/anlagestrategie\/worauf-es-bei-dividendenwerten-ankommt\/\">Dividenden<\/a> und R\u00fcckkaufprogramme wieder an seine Anteilseigner zur\u00fcck.<\/p>\n<p>Alles in allem pr\u00e4sentiert sich Elis als ein defensiv aufgestellter europ\u00e4ischer Titel mit einem schwer angreifbaren Gesch\u00e4ftsmodell, der f\u00fcr Investoren interessant sein kann, die einen mehrj\u00e4hrigen Anlagehorizont mitbringen und sich von eventuellen R\u00fccksetzern nicht abschrecken lassen.<\/p>\n<p>\u00a0<\/p>\n<p style=\"font-size: 12px;\">Disclaimer:<br \/>\nKeine Anlageberatung. Kein Aufruf zum Kauf oder Verkauf von Wertpapieren.<\/p>\n<p>Der Beitrag <a href=\"https:\/\/www.ftd.de\/boerse\/aktien\/trigano-aktie-europas-wohnmobilkoenig-camping-prognose-2\/\">Elis Aktie: W\u00e4sche und andere Services im Abo \u2013 das Gesch\u00e4ft hinter den Kulissen<\/a> erschien zuerst auf <a href=\"https:\/\/www.ftd.de\/\">ftd.de<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dank hoher Kundenbindung und langlaufenden Service-Vertr\u00e4gen profitiert die Elis-Aktie von stabilen Cashflows im textilen B2B-Gesch\u00e4ft. (Foto: Magnific.com, arinahabich) Tag f\u00fcr Tag liefert ein Unternehmen am Morgen frische \u00c4rztekittel in Dutzende Krankenh\u00e4user, reinigt die Bettw\u00e4sche in Hunderten von Hotels und sorgt daf\u00fcr, dass die Schutzkleidung in Automobilwerken am Flie\u00dfband h\u00e4ngt, bevor die erste Schicht beginnt. All [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":142544,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[22,1],"tags":[],"class_list":["post-142543","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ft","category-topstory"],"_links":{"self":[{"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/posts\/142543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/comments?post=142543"}],"version-history":[{"count":0,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/posts\/142543\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/media\/142544"}],"wp:attachment":[{"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/media?parent=142543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/categories?post=142543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.abusizz.ch\/it\/wp-json\/wp\/v2\/tags?post=142543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}