DjayChucko commited on
Commit
ee3d463
·
verified ·
1 Parent(s): 3b3d562

Manual changes saved

Browse files
Files changed (1) hide show
  1. scorecard.html +51 -107
scorecard.html CHANGED
@@ -99,12 +99,12 @@
99
  <img src="https://huggingface.co/spaces/DjayChucko/EnablingSales/resolve/main/images/MEDDICC%20Scorecard%20Logo.png" alt="MEDDICC Logo" class="w-18 h-12">
100
  </div>
101
  <h1 class="text-4xl font-bold mb-2 text-white">MEDDICC Scorecard</h1>
102
- <p class="text-purple-200 font-light text-lg">Select the customer's industry to begin qualification</p>
103
 
104
- <div class="mt-8 mb-6">
105
  <div class="relative">
106
  <select id="industry" class="w-full p-4 bg-white/20 border-2 border-purple-300 rounded-xl text-white placeholder-purple-200 focus:ring-2 focus:ring-white focus:outline-none transition-all appearance-none">
107
- <option value="" disabled selected>Select an industry</option>
108
  <option value="FSI">FSI (Financial Services)</option>
109
  <option value="Healthcare">Healthcare</option>
110
  <option value="Public Sector & Education">Public Sector & Education</option>
@@ -119,12 +119,16 @@
119
  <option value="Startups">Startups</option>
120
  </select>
121
  </div>
 
 
 
 
 
 
 
 
122
  </div>
123
 
124
- <div id="industry-description" class="bg-purple-800/50 p-4 rounded-lg mb-4 hidden min-h-[60px]">
125
- <p class="text-purple-100 text-sm"></p>
126
- </div>
127
-
128
  <button id="start-btn" disabled class="w-full py-4 bg-white text-purple-700 font-semibold rounded-xl shadow-lg hover:bg-gray-100 transform hover:scale-102 transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:transform-none mb-4 flex items-center justify-center space-x-2">
129
  <span>Start Qualification</span>
130
  <i data-feather="arrow-right" class="w-5 h-5"></i>
@@ -207,7 +211,7 @@ document.addEventListener('DOMContentLoaded', function() {
207
  themeToggle.addEventListener('click', () => {
208
  html.classList.toggle('dark');
209
  localStorage.theme = html.classList.contains('dark') ? 'dark' : 'light';
210
- feather.replace(); // Re-render icons for color change
211
  });
212
  if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
213
  html.classList.add('dark');
@@ -240,55 +244,21 @@ document.addEventListener('DOMContentLoaded', function() {
240
  ];
241
 
242
  const industryInsights = {
243
- 'FSI': 'Financial Services buyers prioritize regulatory compliance, data security, and ultra-low latency for real-time transactions and fraud detection.',
244
- 'Healthcare': 'Healthcare organizations focus on HIPAA/GDPR compliance, interoperability with EHR/EMR systems, and AI-driven patient data privacy.',
245
- 'Public Sector & Education': 'Public Sector & Education buyers value cost efficiency, scalability for public demand, and strict adherence to government/educational data policies.',
246
- 'Retail and Ecommerce': 'Retail and Ecommerce companies need seamless omnichannel integration, AI-powered personalization, and real-time inventory/analytics.',
247
- 'Tech (SaaS)': 'Tech (SaaS) companies look for developer-friendly APIs, scalability for user growth, and AI/ML tools for product innovation.',
248
- 'Cyber': 'Cyber security teams require advanced threat detection, zero-trust architecture, and AI-driven automation for rapid incident response.',
249
- 'Media and Entertainment': 'Media and Entertainment firms need high-performance content delivery, AI for recommendation engines, and scalable storage for large media files.',
250
- 'Manufacturing': 'Manufacturing companies value predictive maintenance, IoT integration, and AI for supply chain optimization and defect detection.',
251
- 'Energy': 'Energy sector focuses on AI for predictive analytics in asset management, compliance with energy regulations, and operational resilience.',
252
- 'Logistics': 'Logistics companies prioritize real-time tracking, AI for route optimization, and integration with global supply chain platforms.',
253
- 'Transport': 'Transportation firms need AI for fleet management, real-time analytics for safety/compliance, and scalable IoT integration.',
254
- 'Startups': 'Startups typically look for pay-as-you-go pricing, rapid deployment, and AI tools that accelerate MVP development and scaling.'
255
  };
256
 
257
  const industrySpecificAdvice = {
258
- 'FSI': {
259
- 'IDENTIFIED PAIN': 'Frame the pain in terms of regulatory compliance, risk mitigation, or fraud detection. FSI buyers are heavily motivated by these pressures.',
260
- 'METRICS & MOTIVES': 'Focus on metrics like ROI, reduction in compliance penalties, and cost of capital. The Economic Buyer will need a business case built on these specific KPIs.',
261
- 'PAPER PROCESS': 'The legal and compliance review in FSI is rigorous. Proactively provide security documentation and compliance certificates to accelerate this stage.'
262
- },
263
- 'Healthcare': {
264
- 'IDENTIFIED PAIN': 'Pain in Healthcare is often tied to patient data privacy (HIPAA), interoperability with EHR/EMR systems, or improving patient outcomes. Your solution must align with these critical areas.',
265
- 'CHAMPIONS': 'A strong champion in Healthcare is often a clinical leader who feels the pain directly, not just an IT manager. Find someone whose goals are tied to patient care or operational efficiency.',
266
- 'DECISION CRITERIA': 'Criteria will heavily weigh on data security and HIPAA compliance. Ensure you are positioned as the most secure and compliant option against competitors.'
267
- },
268
- 'Tech (SaaS)': {
269
- 'COMPETITION': 'The SaaS market is crowded. Your competitive advantage must be crystal clear—is it developer-friendly APIs, better integration capabilities, or a superior UX? Hammer this point with your champion.',
270
- 'ECONOMIC BUYER': 'Confirm the budget source. Is it coming from an operational budget, or does it require a new capital expenditure request? This dramatically impacts the timeline in fast-moving tech companies.',
271
- 'GO LIVE PLAN': 'Offer a "quick start" or phased implementation plan. SaaS buyers value rapid time-to-value and want to see an impact quickly.'
272
- }
273
  };
274
 
275
  const summarySnippets = {
276
- 'IDENTIFIED PAIN': 'Clarify and quantify the business pain with the Economic Buyer.',
277
- 'CHAMPIONS': 'Develop a stronger relationship with your champion or find a new one closer to the EB.',
278
- 'GO LIVE PLAN': 'Formalize the implementation plan and get stakeholder buy-in.',
279
- 'METRICS & MOTIVES': 'Agree on measurable success metrics (QBC) that align with business goals.',
280
- 'DECISION CRITERIA': 'Influence the decision criteria to favor your unique strengths.',
281
- 'DECISION PROCESS': 'Establish a compelling event to create urgency.',
282
- 'COMPETITION': 'Set competitive traps and clearly articulate your unique differentiators.',
283
- 'BLOCKERS?': 'Identify all potential blockers and create a mitigation plan.',
284
- 'ECONOMIC BUYER': 'Secure access to the Economic Buyer and confirm budget.',
285
- 'PAPER PROCESS': 'De-risk the procurement stage by engaging with legal and security early.'
286
  };
287
 
288
  // DOM elements
289
  const industryScreen = document.getElementById('industry-screen');
290
  const industrySelect = document.getElementById('industry');
291
- const industryDescription = document.getElementById('industry-description');
292
  const startBtn = document.getElementById('start-btn');
293
  const questionScreens = document.getElementById('question-screens');
294
  const progressBar = document.getElementById('progress-bar');
@@ -303,22 +273,16 @@ document.addEventListener('DOMContentLoaded', function() {
303
  // App state
304
  let currentQuestion = 0;
305
  let selectedIndustry = '';
 
306
  let userAnswers = [];
307
  const maxPossibleScore = questions.length * 9;
308
 
309
  // --- EVENT LISTENERS ---
310
- industrySelect.addEventListener('change', function() {
311
- selectedIndustry = this.value;
312
- const description = industryInsights[selectedIndustry];
313
- if (description) {
314
- industryDescription.querySelector('p').textContent = description;
315
- industryDescription.classList.remove('hidden');
316
- startBtn.disabled = false;
317
- } else {
318
- industryDescription.classList.add('hidden');
319
- startBtn.disabled = true;
320
- }
321
- });
322
 
323
  startBtn.addEventListener('click', function() {
324
  industryScreen.classList.add('hidden');
@@ -332,9 +296,10 @@ document.addEventListener('DOMContentLoaded', function() {
332
  function resetQuiz() {
333
  currentQuestion = 0;
334
  selectedIndustry = '';
 
335
  userAnswers = [];
336
  industrySelect.value = "";
337
- industryDescription.classList.add('hidden');
338
  startBtn.disabled = true;
339
  resultsScreen.classList.add('hidden');
340
  industryScreen.classList.remove('hidden');
@@ -353,7 +318,6 @@ document.addEventListener('DOMContentLoaded', function() {
353
 
354
  const questionScreen = document.createElement('div');
355
  questionScreen.className = `question-screen flex flex-col pt-16 p-6 bg-gray-100 dark:bg-gray-900 fade-in`;
356
- questionScreen.id = `question-${index}`;
357
 
358
  const backButtonHTML = `<button id="back-btn-${index}" class="w-1/3 py-3 bg-gray-300 dark:bg-gray-700 text-gray-800 dark:text-gray-200 font-semibold rounded-lg shadow-md hover:bg-gray-400 dark:hover:bg-gray-600 transition">Back</button>`;
359
 
@@ -434,62 +398,45 @@ document.addEventListener('DOMContentLoaded', function() {
434
  scoreBreakdown.innerHTML = '';
435
  userAnswers.forEach(answer => {
436
  const scoreRatio = (answer.score + 5) / 14;
437
- let scoreColor = 'text-red-600 dark:text-red-400';
438
- let recommendationHTML = '';
439
 
440
  if (scoreRatio >= 0.7) scoreColor = 'text-green-600 dark:text-green-400';
441
  else if (scoreRatio >= 0.4) scoreColor = 'text-yellow-600 dark:text-yellow-400';
442
 
443
  if (answer.score < 5) {
444
  let advice = 'No specific recommendation available. Focus on improving this area.';
445
- const genericAdvice = {
446
- 'IDENTIFIED PAIN': 'Work with the customer to better define their business pain and how your solution addresses it.',
447
- 'CHAMPIONS': 'Identify and engage with champions who can influence the economic buyer.',
448
- 'GO LIVE PLAN': 'Develop a clear implementation plan with agreed timelines and milestones.',
449
- 'METRICS & MOTIVES': 'Establish clear metrics for success that are agreed by all stakeholders.',
450
- 'DECISION CRITERIA': 'Ensure your solution meets the customer\'s decision criteria or work to influence those criteria.',
451
- 'DECISION PROCESS': 'Identify and document the compelling reason for the customer to act now.',
452
- 'COMPETITION': 'Differentiate your solution and establish why you\'re the preferred choice.',
453
- 'BLOCKERS?': 'Proactively identify and address any potential blockers to the deal progressing.',
454
- 'ECONOMIC BUYER': 'Confirm budget availability and secure commitment from the economic buyer.',
455
- 'PAPER PROCESS': 'Advance discussions on pricing and contractual terms to avoid last-minute hurdles.'
456
- };
457
 
458
  if (industrySpecificAdvice[selectedIndustry] && industrySpecificAdvice[selectedIndustry][answer.section]) {
459
  advice = industrySpecificAdvice[selectedIndustry][answer.section];
460
  } else if (genericAdvice[answer.section]) {
461
  advice = genericAdvice[answer.section];
462
  }
463
-
464
- recommendationHTML = `
465
- <div class="mt-3 pt-3 border-t border-red-200 dark:border-gray-700 bg-red-50 dark:bg-red-900/20 p-3 rounded-b-lg -m-4 mt-4">
466
- <p class="text-sm font-medium text-red-800 dark:text-red-200"><strong>Recommendation:</strong> ${advice}</p>
467
- </div>
468
- `;
469
  }
470
-
471
- const sectionScore = `
472
- <div class="bg-white dark:bg-gray-800 p-4 rounded-lg shadow-sm">
473
- <div class="flex justify-between items-start mb-2">
474
- <h4 class="font-medium">${answer.section}</h4>
475
- <span class="font-bold ${scoreColor}">${answer.score}/9</span>
476
- </div>
477
- <p class="text-sm text-gray-600 dark:text-gray-400">${answer.answer}</p>
478
- ${recommendationHTML}
479
- </div>`;
480
  scoreBreakdown.insertAdjacentHTML('beforeend', sectionScore);
481
  });
482
 
483
- generateExecutiveSummary(userAnswers, percentage);
484
 
485
  feather.replace();
486
  }
487
 
488
- function generateExecutiveSummary(answers, overallScore) {
 
 
489
  const sortedAnswers = [...answers].sort((a, b) => a.score - b.score);
490
- const weaknesses = sortedAnswers.slice(0, 2);
 
 
 
 
 
 
 
 
491
  const strength = sortedAnswers[sortedAnswers.length - 1];
492
-
493
  let summaryHTML = '<ul class="space-y-3 text-gray-700 dark:text-gray-300">';
494
 
495
  if (overallScore >= 60 && strength.score >= 7) {
@@ -500,29 +447,26 @@ document.addEventListener('DOMContentLoaded', function() {
500
  const snippet = summarySnippets[weakness.section] || 'This area needs to be addressed.';
501
  summaryHTML += `<li class="flex items-start"><span class="mr-2 text-red-500">🔴</span><span><strong>Urgent Focus: ${weakness.section}</strong>. ${snippet}</span></li>`;
502
  });
503
-
504
  summaryHTML += '</ul>';
505
 
506
- // --- MODIFICATION START: Add strategic summary message ---
507
  let strategicMessage = '';
508
  if (overallScore <= 19) {
509
- strategicMessage = "Not an opportunity yet, no business case, more mapping and qualification required. What's the buyer trying to acheive?";
510
  } else if (overallScore <= 39) {
511
- strategicMessage = "We have an opportunity but we need to attach our offer to a mutually agreed business outcome important enough to warrant a proof of concept. Why now? Why us?";
 
 
512
  } else if (overallScore <= 59) {
513
- strategicMessage = "Clearly a project but what are the blockers? Timeline? Budget assigned? Can the champion access the Economic Buyer/Buying Committee? Are we dealing with a champion or a coach?";
 
 
514
  } else if (overallScore <= 79) {
515
- strategicMessage = "Start preparing the eval success metrics and crafting a proposal, most importantly beware buyer ghosting us.";
516
  } else {
517
- strategicMessage = "Finish line is in sight, start verbally discussing pricing/contract/legal options with champion or economic buyers, expect negotiations.";
518
  }
519
 
520
- summaryHTML += `
521
- <div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-700">
522
- <p class="text-sm italic text-gray-600 dark:text-gray-400">${strategicMessage}</p>
523
- </div>
524
- `;
525
- // --- MODIFICATION END ---
526
 
527
  executiveSummary.innerHTML = summaryHTML;
528
  }
 
99
  <img src="https://huggingface.co/spaces/DjayChucko/EnablingSales/resolve/main/images/MEDDICC%20Scorecard%20Logo.png" alt="MEDDICC Logo" class="w-18 h-12">
100
  </div>
101
  <h1 class="text-4xl font-bold mb-2 text-white">MEDDICC Scorecard</h1>
102
+ <p class="text-purple-200 font-light text-lg">Select the customer's industry and current deal stage</p>
103
 
104
+ <div class="mt-8 mb-6 grid sm:grid-cols-2 gap-4">
105
  <div class="relative">
106
  <select id="industry" class="w-full p-4 bg-white/20 border-2 border-purple-300 rounded-xl text-white placeholder-purple-200 focus:ring-2 focus:ring-white focus:outline-none transition-all appearance-none">
107
+ <option value="" disabled selected>Select an Industry</option>
108
  <option value="FSI">FSI (Financial Services)</option>
109
  <option value="Healthcare">Healthcare</option>
110
  <option value="Public Sector & Education">Public Sector & Education</option>
 
119
  <option value="Startups">Startups</option>
120
  </select>
121
  </div>
122
+ <div class="relative">
123
+ <select id="sales-stage" class="w-full p-4 bg-white/20 border-2 border-purple-300 rounded-xl text-white placeholder-purple-200 focus:ring-2 focus:ring-white focus:outline-none transition-all appearance-none">
124
+ <option value="" disabled selected>Select Sales Stage</option>
125
+ <option value="Early Stage">Early Stage</option>
126
+ <option value="Evaluation / PoC">Evaluation / PoC</option>
127
+ <option value="Closing">Closing</option>
128
+ </select>
129
+ </div>
130
  </div>
131
 
 
 
 
 
132
  <button id="start-btn" disabled class="w-full py-4 bg-white text-purple-700 font-semibold rounded-xl shadow-lg hover:bg-gray-100 transform hover:scale-102 transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:transform-none mb-4 flex items-center justify-center space-x-2">
133
  <span>Start Qualification</span>
134
  <i data-feather="arrow-right" class="w-5 h-5"></i>
 
211
  themeToggle.addEventListener('click', () => {
212
  html.classList.toggle('dark');
213
  localStorage.theme = html.classList.contains('dark') ? 'dark' : 'light';
214
+ feather.replace();
215
  });
216
  if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
217
  html.classList.add('dark');
 
244
  ];
245
 
246
  const industryInsights = {
247
+ 'FSI': 'Financial Services buyers prioritize regulatory compliance, data security, and ultra-low latency for real-time transactions and fraud detection.', 'Healthcare': 'Healthcare organizations focus on HIPAA/GDPR compliance, interoperability with EHR/EMR systems, and AI-driven patient data privacy.', 'Public Sector & Education': 'Public Sector & Education buyers value cost efficiency, scalability for public demand, and strict adherence to government/educational data policies.', 'Retail and Ecommerce': 'Retail and Ecommerce companies need seamless omnichannel integration, AI-powered personalization, and real-time inventory/analytics.', 'Tech (SaaS)': 'Tech (SaaS) companies look for developer-friendly APIs, scalability for user growth, and AI/ML tools for product innovation.', 'Cyber': 'Cyber security teams require advanced threat detection, zero-trust architecture, and AI-driven automation for rapid incident response.', 'Media and Entertainment': 'Media and Entertainment firms need high-performance content delivery, AI for recommendation engines, and scalable storage for large media files.', 'Manufacturing': 'Manufacturing companies value predictive maintenance, IoT integration, and AI for supply chain optimization and defect detection.', 'Energy': 'Energy sector focuses on AI for predictive analytics in asset management, compliance with energy regulations, and operational resilience.', 'Logistics': 'Logistics companies prioritize real-time tracking, AI for route optimization, and integration with global supply chain platforms.', 'Transport': 'Transportation firms need AI for fleet management, real-time analytics for safety/compliance, and scalable IoT integration.', 'Startups': 'Startups typically look for pay-as-you-go pricing, rapid deployment, and AI tools that accelerate MVP development and scaling.'
 
 
 
 
 
 
 
 
 
 
 
248
  };
249
 
250
  const industrySpecificAdvice = {
251
+ 'FSI': { 'IDENTIFIED PAIN': 'Frame the pain in terms of regulatory compliance, risk mitigation, or fraud detection. FSI buyers are heavily motivated by these pressures.', 'METRICS & MOTIVES': 'Focus on metrics like ROI, reduction in compliance penalties, and cost of capital. The Economic Buyer will need a business case built on these specific KPIs.', 'PAPER PROCESS': 'The legal and compliance review in FSI is rigorous. Proactively provide security documentation and compliance certificates to accelerate this stage.' }, 'Healthcare': { 'IDENTIFIED PAIN': 'Pain in Healthcare is often tied to patient data privacy (HIPAA), interoperability with EHR/EMR systems, or improving patient outcomes. Your solution must align with these critical areas.', 'CHAMPIONS': 'A strong champion in Healthcare is often a clinical leader who feels the pain directly, not just an IT manager. Find someone whose goals are tied to patient care or operational efficiency.', 'DECISION CRITERIA': 'Criteria will heavily weigh on data security and HIPAA compliance. Ensure you are positioned as the most secure and compliant option against competitors.' }, 'Tech (SaaS)': { 'COMPETITION': 'The SaaS market is crowded. Your competitive advantage must be crystal clear—is it developer-friendly APIs, better integration capabilities, or a superior UX? Hammer this point with your champion.', 'ECONOMIC BUYER': 'Confirm the budget source. Is it coming from an operational budget, or does it require a new capital expenditure request? This dramatically impacts the timeline in fast-moving tech companies.', 'GO LIVE PLAN': 'Offer a "quick start" or phased implementation plan. SaaS buyers value rapid time-to-value and want to see an impact quickly.' }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  };
253
 
254
  const summarySnippets = {
255
+ 'IDENTIFIED PAIN': 'Clarify and quantify the business pain with the Economic Buyer.', 'CHAMPIONS': 'Develop a stronger relationship with your champion or find a new one closer to the EB.', 'GO LIVE PLAN': 'Formalize the implementation plan and get stakeholder buy-in.', 'METRICS & MOTIVES': 'Agree on measurable success metrics (QBC) that align with business goals.', 'DECISION CRITERIA': 'Influence the decision criteria to favor your unique strengths.', 'DECISION PROCESS': 'Establish a compelling event to create urgency.', 'COMPETITION': 'Set competitive traps and clearly articulate your unique differentiators.', 'BLOCKERS?': 'Identify all potential blockers and create a mitigation plan.', 'ECONOMIC BUYER': 'Secure access to the Economic Buyer and confirm budget.', 'PAPER PROCESS': 'De-risk the procurement stage by engaging with legal and security early.'
 
 
 
 
 
 
 
 
 
256
  };
257
 
258
  // DOM elements
259
  const industryScreen = document.getElementById('industry-screen');
260
  const industrySelect = document.getElementById('industry');
261
+ const salesStageSelect = document.getElementById('sales-stage');
262
  const startBtn = document.getElementById('start-btn');
263
  const questionScreens = document.getElementById('question-screens');
264
  const progressBar = document.getElementById('progress-bar');
 
273
  // App state
274
  let currentQuestion = 0;
275
  let selectedIndustry = '';
276
+ let selectedSalesStage = '';
277
  let userAnswers = [];
278
  const maxPossibleScore = questions.length * 9;
279
 
280
  // --- EVENT LISTENERS ---
281
+ function checkSelections() {
282
+ startBtn.disabled = !(selectedIndustry && selectedSalesStage);
283
+ }
284
+ industrySelect.addEventListener('change', (e) => { selectedIndustry = e.target.value; checkSelections(); });
285
+ salesStageSelect.addEventListener('change', (e) => { selectedSalesStage = e.target.value; checkSelections(); });
 
 
 
 
 
 
 
286
 
287
  startBtn.addEventListener('click', function() {
288
  industryScreen.classList.add('hidden');
 
296
  function resetQuiz() {
297
  currentQuestion = 0;
298
  selectedIndustry = '';
299
+ selectedSalesStage = '';
300
  userAnswers = [];
301
  industrySelect.value = "";
302
+ salesStageSelect.value = "";
303
  startBtn.disabled = true;
304
  resultsScreen.classList.add('hidden');
305
  industryScreen.classList.remove('hidden');
 
318
 
319
  const questionScreen = document.createElement('div');
320
  questionScreen.className = `question-screen flex flex-col pt-16 p-6 bg-gray-100 dark:bg-gray-900 fade-in`;
 
321
 
322
  const backButtonHTML = `<button id="back-btn-${index}" class="w-1/3 py-3 bg-gray-300 dark:bg-gray-700 text-gray-800 dark:text-gray-200 font-semibold rounded-lg shadow-md hover:bg-gray-400 dark:hover:bg-gray-600 transition">Back</button>`;
323
 
 
398
  scoreBreakdown.innerHTML = '';
399
  userAnswers.forEach(answer => {
400
  const scoreRatio = (answer.score + 5) / 14;
401
+ let scoreColor = 'text-red-600 dark:text-red-400', recommendationHTML = '';
 
402
 
403
  if (scoreRatio >= 0.7) scoreColor = 'text-green-600 dark:text-green-400';
404
  else if (scoreRatio >= 0.4) scoreColor = 'text-yellow-600 dark:text-yellow-400';
405
 
406
  if (answer.score < 5) {
407
  let advice = 'No specific recommendation available. Focus on improving this area.';
408
+ const genericAdvice = { 'IDENTIFIED PAIN': 'Work with the customer to better define their business pain and how your solution addresses it.', 'CHAMPIONS': 'Identify and engage with champions who can influence the economic buyer.', 'GO LIVE PLAN': 'Develop a clear implementation plan with agreed timelines and milestones.', 'METRICS & MOTIVES': 'Establish clear metrics for success that are agreed by all stakeholders.', 'DECISION CRITERIA': 'Ensure your solution meets the customer\'s decision criteria or work to influence those criteria.', 'DECISION PROCESS': 'Identify and document the compelling reason for the customer to act now.', 'COMPETITION': 'Differentiate your solution and establish why you\'re the preferred choice.', 'BLOCKERS?': 'Proactively identify and address any potential blockers to the deal progressing.', 'ECONOMIC BUYER': 'Confirm budget availability and secure commitment from the economic buyer.', 'PAPER PROCESS': 'Advance discussions on pricing and contractual terms to avoid last-minute hurdles.' };
 
 
 
 
 
 
 
 
 
 
 
409
 
410
  if (industrySpecificAdvice[selectedIndustry] && industrySpecificAdvice[selectedIndustry][answer.section]) {
411
  advice = industrySpecificAdvice[selectedIndustry][answer.section];
412
  } else if (genericAdvice[answer.section]) {
413
  advice = genericAdvice[answer.section];
414
  }
415
+ recommendationHTML = `<div class="mt-3 pt-3 border-t border-red-200 dark:border-gray-700 bg-red-50 dark:bg-red-900/20 p-3 rounded-b-lg -m-4 mt-4"><p class="text-sm font-medium text-red-800 dark:text-red-200"><strong>Recommendation:</strong> ${advice}</p></div>`;
 
 
 
 
 
416
  }
417
+ const sectionScore = `<div class="bg-white dark:bg-gray-800 p-4 rounded-lg shadow-sm"><div class="flex justify-between items-start mb-2"><h4 class="font-medium">${answer.section}</h4><span class="font-bold ${scoreColor}">${answer.score}/9</span></div><p class="text-sm text-gray-600 dark:text-gray-400">${answer.answer}</p>${recommendationHTML}</div>`;
 
 
 
 
 
 
 
 
 
418
  scoreBreakdown.insertAdjacentHTML('beforeend', sectionScore);
419
  });
420
 
421
+ generateExecutiveSummary(userAnswers, percentage, selectedSalesStage);
422
 
423
  feather.replace();
424
  }
425
 
426
+ function generateExecutiveSummary(answers, overallScore, salesStage) {
427
+ let weaknesses = [];
428
+ const metricsMotiveAnswer = answers.find(a => a.section === 'METRICS & MOTIVES');
429
  const sortedAnswers = [...answers].sort((a, b) => a.score - b.score);
430
+
431
+ if (metricsMotiveAnswer && metricsMotiveAnswer.score < 5) {
432
+ weaknesses.push(metricsMotiveAnswer);
433
+ const nextWeakest = sortedAnswers.find(a => a.section !== 'METRICS & MOTIVES');
434
+ if (nextWeakest) weaknesses.push(nextWeakest);
435
+ } else {
436
+ weaknesses = sortedAnswers.slice(0, 2);
437
+ }
438
+
439
  const strength = sortedAnswers[sortedAnswers.length - 1];
 
440
  let summaryHTML = '<ul class="space-y-3 text-gray-700 dark:text-gray-300">';
441
 
442
  if (overallScore >= 60 && strength.score >= 7) {
 
447
  const snippet = summarySnippets[weakness.section] || 'This area needs to be addressed.';
448
  summaryHTML += `<li class="flex items-start"><span class="mr-2 text-red-500">🔴</span><span><strong>Urgent Focus: ${weakness.section}</strong>. ${snippet}</span></li>`;
449
  });
 
450
  summaryHTML += '</ul>';
451
 
 
452
  let strategicMessage = '';
453
  if (overallScore <= 19) {
454
+ strategicMessage = salesStage === 'Early Stage' ? "Okay if early, but more qualification is required. What's the buyer trying to achieve?" : "Dangerous if considering an Eval/PoC with this score. Re-qualify immediately.";
455
  } else if (overallScore <= 39) {
456
+ if (salesStage === 'Early Stage') strategicMessage = "Good news for an early stage deal. Now attach our offer to a mutually agreed business outcome.";
457
+ else if (salesStage === 'Evaluation / PoC') strategicMessage = "Be cautious. The business outcome for this PoC is not strong enough. Why now? Why us?";
458
+ else strategicMessage = "Be worried. A deal this weak should not be in the closing stage.";
459
  } else if (overallScore <= 59) {
460
+ if (salesStage === 'Early Stage') strategicMessage = "Very good news for an early stage deal. Solid foundation to build upon.";
461
+ else if (salesStage === 'Evaluation / PoC') strategicMessage = "This looks good. Identify potential blockers and confirm the timeline and budget.";
462
+ else strategicMessage = "Look for blockers. Can the champion access the Economic Buyer? Is this a real champion or just a coach?";
463
  } else if (overallScore <= 79) {
464
+ strategicMessage = salesStage === 'Evaluation / PoC' ? "This is very strong for a PoC. Start preparing the proposal and success metrics." : "Focus on differentiation and beware of buyer ghosting as you move to close.";
465
  } else {
466
+ strategicMessage = "The finish line is in sight, but it's not over until it's signed. Verbally discuss pricing, contracts, and legal with champions and expect negotiations.";
467
  }
468
 
469
+ summaryHTML += `<div class="mt-4 pt-4 border-t border-gray-200 dark:border-gray-700"><p class="text-sm italic text-gray-600 dark:text-gray-400">${strategicMessage}</p></div>`;
 
 
 
 
 
470
 
471
  executiveSummary.innerHTML = summaryHTML;
472
  }