DMA for SMEs

We'll guide you through the world of AI.

Assessment of the Level of Digitalization for EDIH Clients


Digital Maturity Assessment (DMA)
Target Audience: Companies
Phase: T0 (before the start of EDIH support)
MODULE 1: Customer Data

In this module, please provide general background information about the company that is interested in EDIH support. This data is needed to assess your company’s level of digitalization compared to other companies in your sector, size category (from micro to large enterprises), region, and/or country.

MODULE 2: Degree of Digitalization

The questions in this module are designed to measure your company’s level of digitalization. The information provided will help determine where your company currently stands in its digital transformation and identify areas where it might need support from the EDIH. They will also help evaluate the services that the EDIH will later provide to your company and optimize the EU’s measures and financial instruments in support of the EDIH. The following dimensions will be assessed (using the evaluation criteria explained on the last page):

Digital Strategy and Investments

Readiness for Digital Transformation

People-Centered Digitalization

Data Management

Automation and Artificial Intelligence

Green Digitalization



M2.1.  The Company's Digitalization Strategy

The questions in this section are designed to assess the overall status of your company’s digitalization strategy from an economic perspective. The questions address your company’s investments (both past and planned) in the digital transformation of individual business units, as well as the company’s willingness to undertake a digital transformation that may require organizational and economic resources that are not yet foreseeable.

M2.1.1. In which of the following business areas has your company already invested in digitalization, and in which areas does it plan to do so in the future? Please select all that apply:
M2.2. Readiness for Digital Transformation

The "readiness for digital transformation" dimension assesses the extent to which digital technologies (both common and more advanced) are already being used by both manufacturing and service companies.
M2.3. People-Centered Digitalization

This dimension examines how employees are trained, engaged, and empowered for and through digital technologies, and how their working conditions are improved to increase their productivity and well-being.
M2.4. Data Management and Security

This dimension assesses how data is stored digitally, organized within the company, made accessible via networked devices (computers, etc.), and used for business purposes, while ensuring adequate data protection through cybersecurity systems.
M2.5. Automation and Artificial Intelligence

This dimension examines the extent to which automation and knowledge acquisition—embedded in business processes—are enabled by digital means.
M2.6. Green Digitalization

This dimension measures a company’s ability to implement digitalization as part of a long-term strategy that embraces responsibility for sustainability and the protection of natural resources and the environment (which ultimately creates a competitive advantage).
/** * DMA (Digital Maturity Assessment) Calculator * ------------------------------------------- * Dieses Skript berechnet die Reifegrade für die KMU- und ÖD-Versionen des DMA-Formulars in Elementor Pro. * Es synchronisiert benutzerdefinierte HTML-Matrix-Tabellen mit versteckten Elementor-Feldern, * führt die Reifegradberechnungen durch und befüllt das visuelle Dashboard am Ende des Formulars. */ (function() { let initialized = false; function tryInit() { if (initialized) return; // Versuche festzustellen, welches Formular auf der Seite aktiv ist const isKMUForm = document.querySelector('[name*="kmu_"]') || document.querySelector('[class*="kmu_"]') || document.getElementById('form-field-kmu_score_overall') !== null; const isODForm = document.querySelector('[name*="od_"]') || document.querySelector('[class*="od_"]') || document.getElementById('form-field-od_score_overall') !== null; if (isKMUForm) { console.log("DMA Calculator: KMU Formular erkannt, initialisiere..."); setupKMUMatrixTable(); setupCheckboxResets('kmu_m21_q2'); setupKMUQ1Resets(); setupCheckboxResets('kmu_m22_q3'); setupCheckboxResets('kmu_m23_q5'); setupCheckboxResets('kmu_m23_q6'); setupCheckboxResets('kmu_m24_q7'); setupCheckboxResets('kmu_m24_q8'); setupCheckboxResets('kmu_m26_q10'); // Event Listener auf alle relevanten Formularfelder legen document.addEventListener('change', function(e) { if (e.target.name && e.target.name.includes('kmu_')) { calculateKMUScores(); } }); // Event-Listener für Elementor-Schritt-Navigation if (window.jQuery) { jQuery(document).on('elementor/forms/navigation', function() { setTimeout(calculateKMUScores, 100); }); jQuery(document).on('submit_success', function() { showSuccessPopup(); }); } // Fallback für Klicks auf Navigations-Buttons document.addEventListener('click', function(e) { if (e.target.closest('.elementor-button') || e.target.closest('[class*="step"]')) { setTimeout(calculateKMUScores, 200); } }); calculateKMUScores(); initialized = true; } else if (isODForm) { console.log("DMA Calculator: ÖD Formular erkannt, initialisiere..."); setupCheckboxResets('od_m21_q1'); setupCheckboxResets('od_m22_q3'); setupCheckboxResets('od_m23_q5'); setupCheckboxResets('od_m23_q6'); setupCheckboxResets('od_m24_q7'); setupCheckboxResets('od_m24_q8'); setupCheckboxResets('od_m26_q10'); document.addEventListener('change', function(e) { if (e.target.name && e.target.name.includes('od_')) { calculateODScores(); } }); if (window.jQuery) { jQuery(document).on('elementor/forms/navigation', function() { setTimeout(calculateODScores, 100); }); jQuery(document).on('submit_success', function() { showSuccessPopup(); }); } document.addEventListener('click', function(e) { if (e.target.closest('.elementor-button') || e.target.closest('[class*="step"]')) { setTimeout(calculateODScores, 200); } }); calculateODScores(); initialized = true; } } // Starte Initialisierungsversuche zu verschiedenen Zeitpunkten if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', tryInit); } else { tryInit(); } window.addEventListener('load', tryInit); // Polling-Fallback für dynamisch geladene Formulare const initInterval = setInterval(function() { if (initialized) { clearInterval(initInterval); } else { tryInit(); } }, 500); // Nach 15 Sekunden Suche einstellen setTimeout(function() { clearInterval(initInterval); }, 15000); /** * Setzt die Checkboxen zurück, wenn "Keine der Optionen" (oder das Äquivalent) ausgewählt wird, * und hebt die Auswahl von "Keine der Optionen" auf, wenn eine andere Checkbox gewählt wird. */ function setupCheckboxResets(fieldId) { const selector = `[name^="form_fields[${fieldId}]"]`; const checkboxes = document.querySelectorAll(selector); if (checkboxes.length === 0) return; checkboxes.forEach(cb => { cb.addEventListener('change', function(e) { const currentVal = e.target.value.trim(); const isNoneOption = currentVal === '0' || e.target.nextElementSibling?.textContent.toLowerCase().includes('keine') || e.target.nextElementSibling?.textContent.toLowerCase().includes('keiner'); if (e.target.checked) { if (isNoneOption) { // Wenn "Keine" gecheckt wird, alle anderen entchecken checkboxes.forEach(otherCb => { if (otherCb !== e.target) otherCb.checked = false; }); } else { // Wenn etwas anderes gecheckt wird, das "Keine"-Feld entchecken checkboxes.forEach(otherCb => { const otherVal = otherCb.value.trim(); const otherIsNone = otherVal === '0' || otherCb.nextElementSibling?.textContent.toLowerCase().includes('keine') || otherCb.nextElementSibling?.textContent.toLowerCase().includes('keiner'); if (otherIsNone) otherCb.checked = false; }); } } }); }); } /** * KMU M2.1 Q1 Matrix-Tabelle Funktionalität: * Synchronisiert die Checkboxen der HTML-Tabelle mit dem Hidden Feld in Elementor. */ function setupKMUMatrixTable() { const matrixContainer = document.querySelector('.dma-matrix-container'); const hiddenField = document.getElementById('form-field-kmu_m21_q1_data') || document.querySelector('[name="form_fields[kmu_m21_q1_data]"]'); const noneCheckbox = document.getElementById('kmu_m21_q1_none'); if (!matrixContainer || !hiddenField) return; const tableCheckboxes = matrixContainer.querySelectorAll('.dma-matrix-cb'); tableCheckboxes.forEach(cb => { cb.addEventListener('change', function() { if (this.checked && noneCheckbox) { noneCheckbox.checked = false; // "Keine" entchecken } updateKMUMatrixHiddenData(hiddenField, tableCheckboxes, noneCheckbox); calculateKMUScores(); }); }); if (noneCheckbox) { noneCheckbox.addEventListener('change', function() { if (this.checked) { // Alle anderen Checkboxen in der Tabelle deaktivieren tableCheckboxes.forEach(cb => cb.checked = false); } updateKMUMatrixHiddenData(hiddenField, tableCheckboxes, noneCheckbox); calculateKMUScores(); }); } } function updateKMUMatrixHiddenData(hiddenField, checkboxes, noneCheckbox) { const data = { getaetigt: [], geplant: [] }; if (!noneCheckbox || !noneCheckbox.checked) { checkboxes.forEach(cb => { if (cb.checked) { const idx = parseInt(cb.getAttribute('data-index')); if (cb.classList.contains('getaetigt')) { data.getaetigt.push(idx); } else if (cb.classList.contains('geplant')) { data.geplant.push(idx); } } }); } // Als JSON im Hidden Field abspeichern, damit Elementor es mitsendet hiddenField.value = JSON.stringify(data); } /** * Hilfsfunktion zum Summieren von ausgewählten Checkbox-Werten in Elementor */ function sumCheckedValues(fieldId) { let sum = 0; const checked = document.querySelectorAll(`[name^="form_fields[${fieldId}]"]:checked`); checked.forEach(cb => { const val = parseFloat(cb.value); if (!isNaN(val)) sum += val; }); return sum; } /** * Hilfsfunktion zum Zählen der ausgewählten Checkboxen (z. B. wenn alle je 1 Punkt wert sind) */ function countCheckedOptions(fieldId) { const checked = document.querySelectorAll(`[name^="form_fields[${fieldId}]"]:checked`); let count = 0; checked.forEach(cb => { // "Keine" Option (Wert 0 oder Text enthält 'keine') nicht mitzählen const labelText = cb.nextElementSibling?.textContent.toLowerCase() || ""; const isNone = cb.value.trim() === '0' || labelText.includes('keine') || labelText.includes('keiner'); if (!isNone) count++; }); return count; } /** * Hilfsfunktion zum Auslesen eines Radio-Buttons */ function getRadioValue(fieldId) { const checked = document.querySelector(`[name="form_fields[${fieldId}]"]:checked`); return checked ? parseFloat(checked.value) : 0; } function updateHiddenScoreField(fieldId, val) { const fld = document.getElementById(`form-field-${fieldId}`) || document.querySelector(`[name="form_fields[${fieldId}]"]`) || document.querySelector(`[name*="${fieldId}"]`); if (fld) fld.value = val; } /** * BERECHNUNG FÜR KMU (UNTERNEHMEN) */ function calculateKMUScores() { console.log("Berechne KMU Scores..."); // --- Dimension 1: Strategie (M2.1) --- let q1_getaetigt_count = 0; let q1_geplant_count = 0; const matrixContainer = document.querySelector('.dma-matrix-container'); const noneCheckbox = document.getElementById('kmu_m21_q1_none'); if (matrixContainer && (!noneCheckbox || !noneCheckbox.checked)) { q1_getaetigt_count = matrixContainer.querySelectorAll('.dma-matrix-cb.getaetigt:checked').length; q1_geplant_count = matrixContainer.querySelectorAll('.dma-matrix-cb.geplant:checked').length; } else { // Fallback für Standard-Elementor-Radios (falls keine Matrix-Tabelle im DOM ist) for (let i = 1; i Max 30 Punkte summiert * 3.333 = 100 const d1 = Math.min(100, Math.round((q1_getaetigt_count + q1_geplant_count + q2_count) * (100 / 30))); // --- Dimension 2: Bereitschaft (M2.2) --- const q3_count = countCheckedOptions('kmu_m22_q3'); // Max 10 let q4_sum = 0; for (let i = 1; i <= 7; i++) { q4_sum += getRadioValue(`kmu_m22_q4_${i}`); } const q4_scaled = (q4_sum / 7); // Skaliert auf 10 Punkte (da Q4-Werte nun 0 bis 10 sind) const d2 = Math.min(100, Math.round((q3_count + q4_scaled) * 5)); // D2 = (Q3 + Q4) * 5 // --- Dimension 3: Menschzentriert (M2.3) --- const q5_sum = sumCheckedValues('kmu_m23_q5'); // Max 9 Punkte in Gewichten const q5_scaled = (q5_sum * 10 / 9); // Skaliert auf 10 const q6_sum = sumCheckedValues('kmu_m23_q6'); // Max 10 Punkte in Gewichten const d3 = Math.min(100, Math.round((q5_scaled + q6_sum) * 5)); // D3 = (Q5 + Q6) * 5 // --- Dimension 4: Daten & Sicherheit (M2.4) --- const q7_count = countCheckedOptions('kmu_m24_q7'); // Max 7 positive Optionen const q7_scaled = (q7_count * 10 / 7); const q8_count = countCheckedOptions('kmu_m24_q8'); // Max 6 positive Optionen const q8_scaled = (q8_count * 10 / 6); const d4 = Math.min(100, Math.round((q7_scaled + q8_scaled) * 5)); // D4 = (Q7 + Q8) * 5 // --- Dimension 5: Automatisierung & KI (M2.5) --- let q9_sum = 0; for (let i = 1; i <= 5; i++) { q9_sum += getRadioValue(`kmu_m25_q9_${i}`); } const q9_scaled = (q9_sum / 5); // Skaliert auf 10 (da Q9-Werte nun 0 bis 10 sind) const d5 = Math.min(100, Math.round(q9_scaled * 10)); // D5 = Q9 * 10 // --- Dimension 6: Grüne Digitalisierung (M2.6) --- const q10_count = countCheckedOptions('kmu_m26_q10'); // Max 10 let q11_sum = 0; for (let i = 1; i <= 5; i++) { q11_sum += getRadioValue(`kmu_m26_q11_${i}`); // Werte 0, 10, 20. Max 100 } const q11_scaled = q11_sum / 10; // Skaliert auf max 10 Punkte const d6 = Math.min(100, Math.round((q10_count + q11_scaled) * 5)); // D6 = (Q10 + Q11) * 5 // --- Gesamtergebnis --- const overall = Math.round((d1 + d2 + d3 + d4 + d5 + d6) / 6); // Versteckte Felder befüllen (für die Übermittlung) updateHiddenScoreField('kmu_score_d1', d1); updateHiddenScoreField('kmu_score_d2', d2); updateHiddenScoreField('kmu_score_d3', d3); updateHiddenScoreField('kmu_score_d4', d4); updateHiddenScoreField('kmu_score_d5', d5); updateHiddenScoreField('kmu_score_d6', d6); updateHiddenScoreField('kmu_score_overall', overall); // Dashboard rendern renderDashboard('kmu_dma_dashboard_html', { d1, d2, d3, d4, d5, d6 }, overall); } /** * BERECHNUNG FÜR ÖFFENTLICHEN SEKTOR (ÖD) */ function calculateODScores() { console.log("Berechne ÖD Scores..."); // --- Dimension 1: Strategie & Investition (M2.1) --- const q1_count = countCheckedOptions('od_m21_q1'); // Max 10 let q2_sum = 0; for (let i = 1; i <= 8; i++) { q2_sum += getRadioValue(`od_m21_q2_${i}`); // Werte: 0, 0.5, 1. Max 8 } const q2_scaled = (q2_sum * 10 / 8); const d1 = Math.min(100, Math.round((q1_count + q2_scaled) * 5)); // --- Dimension 2: Bereitschaft (M2.2) --- const q3_count = countCheckedOptions('od_m22_q3'); // Max 9 const q3_scaled = (q3_count * 10 / 9); let q4_sum = 0; for (let i = 1; i <= 8; i++) { q4_sum += getRadioValue(`od_m22_q4_${i}`); // Skala 0 bis 1. Max 8 } const q4_scaled = (q4_sum * 10 / 8); const d2 = Math.min(100, Math.round((q3_scaled + q4_scaled) * 5)); // --- Dimension 3: Menschzentriert (M2.3) --- const q5_count = countCheckedOptions('od_m23_q5'); // Max 7 const q5_scaled = (q5_count * 10 / 7); const q6_count = countCheckedOptions('od_m23_q6'); // Max 10 const d3 = Math.min(100, Math.round((q5_scaled + q6_count) * 5)); // --- Dimension 4: Daten & Sicherheit (M2.4) --- const q7_count = countCheckedOptions('od_m24_q7'); // Max 9 const q7_scaled = (q7_count * 10 / 9); const q8_count = countCheckedOptions('od_m24_q8'); // Max 6 const q8_scaled = (q8_count * 10 / 6); const d4 = Math.min(100, Math.round((q7_scaled + q8_scaled) * 5)); // --- Dimension 5: Interoperabilität (M2.5) --- let q9_sum = 0; for (let i = 1; i <= 16; i++) { q9_sum += getRadioValue(`od_m25_q9_${i}`); // Werte: 0, 0.5, 1. Max 16 } const q9_scaled = (q9_sum * 10 / 16); const d5 = Math.min(100, Math.round(q9_scaled * 10)); // --- Dimension 6: Grüne Digitalisierung (M2.6) --- const q10_count = countCheckedOptions('od_m26_q10'); // Max 9 const q10_scaled = (q10_count * 10 / 9); let q11_sum = 0; for (let i = 1; i <= 5; i++) { q11_sum += getRadioValue(`od_m26_q11_${i}`); // Werte: 0, 0.5, 1. Max 5 } const q11_scaled = (q11_sum * 10 / 5); const d6 = Math.min(100, Math.round((q10_scaled + q11_scaled) * 5)); // --- Gesamtergebnis --- const overall = Math.round((d1 + d2 + d3 + d4 + d5 + d6) / 6); // Versteckte Felder befüllen updateHiddenScoreField('od_score_d1', d1); updateHiddenScoreField('od_score_d2', d2); updateHiddenScoreField('od_score_d3', d3); updateHiddenScoreField('od_score_d4', d4); updateHiddenScoreField('od_score_d5', d5); updateHiddenScoreField('od_score_d6', d6); updateHiddenScoreField('od_score_overall', overall); // Dashboard rendern renderDashboard('od_dma_dashboard_html', { d1, d2, d3, d4, d5, d6 }, overall); } /** * Rendert die visuell ansprechende Dashboard-Auswertung im HTML-Bereich am Ende. */ function renderDashboard(containerId, dimensionScores, overallScore) { let container = document.getElementById('dma-dashboard-container') || document.querySelector(`#form-field-${containerId} #dma-dashboard-container`) || document.querySelector('#dma-dashboard-container'); if (!container) { // Dynamisches Fallback: Falls der Container nicht im HTML-Feld existiert, erzeuge ihn im Elementor-Feld-Wrapper const wrapper = document.querySelector(`.elementor-field-group-${containerId}`) || document.querySelector(`[class*="${containerId}"]`); if (wrapper) { console.log(`DMA Calculator: Erzeuge Dashboard-Container dynamisch in Wrapper für ${containerId}`); container = document.createElement('div'); container.id = 'dma-dashboard-container'; wrapper.appendChild(container); } } if (!container) { console.log("DMA Calculator: Dashboard-Container nicht gefunden und konnte nicht erzeugt werden."); return; } // Reifegrad-Klasse bestimmen let levelTitle = ""; let levelDesc = ""; let levelColor = ""; if (overallScore = 20 && overallScore = 50 && overallScore { const val = dimensionScores[key]; let barColor = "#3b82f6"; // default blau if (val < 20) barColor = "#ef4444"; else if (val < 50) barColor = "#f59e0b"; else if (val < 80) barColor = "#10b981"; dimensionsHtml += `
D${index+1}: ${dimNames[key]} ${val} / 100
`; }); container.innerHTML = `
${overallScore} Index

Ihr digitaler Reifegrad

${levelTitle}

${levelDesc}


Ergebnis nach Dimensionen:

${dimensionsHtml}
`; } /** * KMU M2.1 Q1 Reset-Funktionalität: * Setzt alle Radio-Buttons zurück, wenn "Keine der Optionen" gewählt wird. */ function setupKMUQ1Resets() { const noneCheckbox = document.getElementById('form-field-kmu_m21_q1_none') || document.querySelector('[name="form_fields[kmu_m21_q1_none]"]') || document.querySelector('[name*="kmu_m21_q1_none"]') || document.getElementById('kmu_m21_q1_none'); if (!noneCheckbox) return; noneCheckbox.addEventListener('change', function() { if (this.checked) { for (let i = 1; i r.checked = false); } calculateKMUScores(); } }); for (let i = 1; i { r.addEventListener('change', function() { if (this.checked && noneCheckbox.checked) { noneCheckbox.checked = false; calculateKMUScores(); } }); }); } } /** * Erzeugt und zeigt das Erfolgs-Popup nach Absenden des Formulars an. */ function showSuccessPopup() { let overlay = document.getElementById('dmaSuccessOverlay'); if (!overlay) { overlay = document.createElement('div'); overlay.id = 'dmaSuccessOverlay'; overlay.className = 'dma-success-overlay'; overlay.innerHTML = `

Vielen Dank!

Ihr Formular wurde erfolgreich übermittelt. Das EDIH-Team wird sich umgehend mit Ihnen in Verbindung setzen.

`; document.body.appendChild(overlay); document.getElementById('dmaCloseSuccessBtn').addEventListener('click', function() { overlay.classList.remove('dma-show'); window.scrollTo({ top: 0, behavior: 'smooth' }); }); } setTimeout(function() { overlay.classList.add('dma-show'); }, 100); } })();