{"id":1052,"date":"2025-09-18T04:02:44","date_gmt":"2025-09-18T04:02:44","guid":{"rendered":"https:\/\/wiseexcellence.co.za\/Tertiary\/?p=1052"},"modified":"2026-01-31T06:29:24","modified_gmt":"2026-01-31T06:29:24","slug":"auditing-payroll","status":"publish","type":"post","link":"https:\/\/wiseexcellence.co.za\/Tertiary\/auditing-payroll\/","title":{"rendered":"Auditing Payroll"},"content":{"rendered":"\n\n\n{&#8220;title&#8221;:&#8221;&#8221;,&#8221;content&#8221;:&#8221;<!DOCTYPE html>\\r\\n<html lang=\\\"en\\\">\\r\\n<head>\\r\\n    <meta charset=\\\"UTF-8\\\">\\r\\n    <meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\">\\r\\n    <title>Mastering Auditing: Auditing Payroll<\/title>\\r\\n    <script src=\\\"https:\/\/cdn.tailwindcss.com\\\"><\/script>\\r\\n    <link href=\\\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\\\" rel=\\\"stylesheet\\\">\\r\\n    <style>\\r\\n        body {\\r\\n            font-family: 'Inter', sans-serif;\\r\\n            background-color: #f1f5f9; \/* slate-100 *\/\\r\\n            touch-action: pan-y;\\r\\n        }\\r\\n        .guide-container {\\r\\n            min-height: 480px;\\r\\n        }\\r\\n        .content-card {\\r\\n            opacity: 0;\\r\\n            transform: translateX(20px);\\r\\n            transition: opacity 0.4s ease-out, transform 0.4s ease-out;\\r\\n            will-change: opacity, transform;\\r\\n        }\\r\\n        .content-card.active {\\r\\n            opacity: 1;\\r\\n            transform: translateX(0);\\r\\n        }\\r\\n        .progress-bar-inner {\\r\\n            transition: width 0.3s ease-in-out;\\r\\n        }\\r\\n        .topic-button, .quiz-action-button {\\r\\n            transition: all 0.2s ease-in-out;\\r\\n        }\\r\\n        .topic-button:hover, .quiz-action-button:hover {\\r\\n            transform: translateY(-px);\\r\\n            box-shadow: 0 4px 20px rgba(16, 185, 129, 0.2);\\r\\n        }\\r\\n        ::selection {\\r\\n            background: #059669; \/* emerald-600 *\/\\r\\n            color: #ffffff;\\r\\n        }\\r\\n        .explanation-text {\\r\\n            background-color: #f8fafc; \/* slate-50 *\/\\r\\n            border-left: 4px solid #10b981; \/* emerald-500 *\/\\r\\n            padding: 8px 12px;\\r\\n            margin-top: 8px;\\r\\n            border-radius: 4px;\\r\\n        }\\r\\n    <\/style>\\r\\n<\/head>\\r\\n<body class=\\\"bg-slate-100 text-slate-800 flex items-center justify-center min-h-screen p-4\\\">\\r\\n\\r\\n    <div class=\\\"w-full max-w-4xl mx-auto\\\">\\r\\n        <main id=\\\"app-container\\\" class=\\\"bg-white rounded-xl shadow-lg shadow-emerald-500\/10 p-6 md:p-8 relative\\\">\\r\\n            <div class=\\\"absolute top-4 right-6 text-xs text-slate-400 font-semibold\\\">created by Wise Excellence<\/div>\\r\\n            \\r\\n            <!-- Main Menu View -->\\r\\n            <div id=\\\"main-menu\\\">\\r\\n                <h2 class=\\\"text-2xl font-semibold mb-6 text-center text-emerald-700\\\">Select a Topic to Begin<\/h2>\\r\\n                <div id=\\\"topic-grid\\\" class=\\\"grid grid-cols-1 md:grid-cols-2 gap-5\\\">\\r\\n                    <!-- Topic buttons will be inserted here by JavaScript -->\\r\\n                <\/div>\\r\\n            <\/div>\\r\\n\\r\\n            <!-- Study Guide View -->\\r\\n            <div id=\\\"study-guide\\\" class=\\\"hidden\\\">\\r\\n                <button id=\\\"back-to-menu\\\" class=\\\"mb-4 text-sm font-medium text-emerald-600 hover:text-emerald-500\\\">&larr; Back to Topics<\/button>\\r\\n                \\r\\n                <div id=\\\"guide-content-wrapper\\\" class=\\\"guide-container relative flex items-center justify-center\\\">\\r\\n                    <!-- Content will be dynamically inserted here -->\\r\\n                <\/div>\\r\\n\\r\\n                <!-- Navigation and Progress -->\\r\\n                <div class=\\\"mt-6\\\">\\r\\n                    <div class=\\\"flex justify-between items-center mb-2\\\">\\r\\n                        <span id=\\\"progress-text\\\" class=\\\"text-sm text-slate-500\\\"><\/span>\\r\\n                        <span id=\\\"topic-title\\\" class=\\\"text-sm font-semibold text-slate-600\\\"><\/span>\\r\\n                    <\/div>\\r\\n                    <div class=\\\"w-full bg-slate-200 rounded-full h-2.5\\\">\\r\\n                        <div id=\\\"progress-bar\\\" class=\\\"bg-emerald-500 h-2.5 rounded-full progress-bar-inner\\\"><\/div>\\r\\n                    <\/div>\\r\\n                    <div id=\\\"navigation-buttons\\\" class=\\\"flex justify-between items-center mt-4\\\">\\r\\n                        <!-- Navigation buttons will be injected here -->\\r\\n                    <\/div>\\r\\n                <\/div>\\r\\n            <\/div>\\r\\n        <\/main>\\r\\n        <footer class=\\\"text-center mt-6\\\">\\r\\n        <\/footer>\\r\\n    <\/div>\\r\\n    \\r\\n    <!-- Quiz Modal -->\\r\\n    <div id=\\\"quiz-modal\\\" class=\\\"fixed inset-0 bg-black bg-opacity-60 hidden items-center justify-center p-4 backdrop-blur-sm\\\">\\r\\n        <div id=\\\"quiz-content\\\" class=\\\"bg-white border border-emerald-500\/20 rounded-lg shadow-2xl p-6 w-full max-w-2xl max-h-[90vh] overflow-y-auto\\\">\\r\\n             <!-- Quiz content will be injected here -->\\r\\n        <\/div>\\r\\n    <\/div>\\r\\n\\r\\n\\r\\n    <script>\\r\\n        document.addEventListener('DOMContentLoaded', () => {\\r\\n            const studyData = [\\r\\n                {\\r\\n                    topic: \\\"Auditing Payroll\\\",\\r\\n                    content: [\\r\\n                        { title: \\\"The Main Risk: Overstatement\\\", text: \\\"The main risk for payroll is <b>overstatement<\/b>. This happens by paying 'ghost' employees who don't exist or by paying real employees for hours they didn't actually work. The goal of the audit is to ensure all recorded salary payments are legitimate.\\\" },\\r\\n                        { title: \\\"Key Assertion: Occurrence\\\", text: \\\"<b>Question:<\/b> Did the payroll expense actually occur? Are the employees and their hours real? <br><br><b>This is the most important objective for auditing payroll transactions.<\/b> The auditor needs to verify that recorded salary payments went to real employees for work they actually performed.\\\" },\\r\\n                        { title: \\\"Verifying Employees Exist (EFT)\\\", text: \\\"Since most pay is electronic (EFT), the auditor will select a sample of employees from the payroll and:<br>\u2022 Physically verify their existence at their workstation.<br>\u2022 Inspect their personnel file for an ID, contract, and other official hiring documents.\\\" },\\r\\n                        { title: \\\"Verifying Employees Exist (Cash Wages)\\\", text: \\\"For cash wages, the classic procedure is to attend a <b>surprise wage payout<\/b>. The auditor will agree the number of pay packets to the payroll records and inspect employee identification as they collect their wages. Any unclaimed wages must be investigated.\\\" },\\r\\n                        { title: \\\"Verifying Hours Worked\\\", text: \\\"To confirm that employees were paid for the correct number of hours, an auditor will:<br>\u2022 Observe the clocking-in and clocking-out functions to ensure they are properly supervised.<br>\u2022 For overtime hours, inspect clock cards or timesheets for a foreman's signature authorizing the extra work.\\\" },\\r\\n                        { title: \\\"Assertion: Accuracy & Classification\\\", text: \\\"<b>Question:<\/b> Are the calculations correct and recorded properly? <br><br><b>Audit Test:<\/b> For a sample of employees, the auditor will recalculate the gross pay, deductions (like PAYE and UIF), and net pay. They will also agree the pay rate to an authorized wage list or the employee's contract and trace the payroll summary to the general ledger.\\\" },\\r\\n                        { title: \\\"Using CAATs for Payroll Audits\\\", text: \\\"Computer-Assisted Audit Techniques (CAATs) are powerful tools for payroll. An auditor can use software to:<br>\u2022 Scrutinize the employee master file for <b>duplicate<\/b> ID numbers or bank accounts, which could indicate fraud.<br>\u2022 Identify records with missing data, like tax numbers.<br>\u2022 Extract a list of all new hires and terminations during the year to verify with supporting HR documents.\\\" }\\r\\n                    ],\\r\\n                    quiz: [\\r\\n                        { \\r\\n                            question: \\\"What is the primary audit risk associated with the payroll cycle?\\\", \\r\\n                            options: [\\\"Understatement of expenses\\\", \\\"Overstatement due to 'ghost' employees\\\", \\\"Incorrect classification of wages\\\", \\\"Failure to pay statutory deductions\\\"], \\r\\n                            answer: \\\"Overstatement due to 'ghost' employees\\\",\\r\\n                            explanation: \\\"The main risk in payroll is fraudulent overstatement, either by creating fake employees ('ghosts') or paying real employees for hours they did not work. This is a direct test of the 'Occurrence' assertion.\\\"\\r\\n                        },\\r\\n                        { \\r\\n                            question: \\\"Attending a 'surprise wage payout' is a classic audit procedure to test which assertion?\\\", \\r\\n                            options: [\\\"Accuracy\\\", \\\"Completeness\\\", \\\"Occurrence\\\", \\\"Valuation\\\"], \\r\\n                            answer: \\\"Occurrence\\\",\\r\\n                            explanation: \\\"A surprise payout directly tests if the employees being paid are real and are actually present to collect their wages. This verifies that the recorded payroll transactions 'occurred' for legitimate employees.\\\"\\r\\n                        },\\r\\n                        { \\r\\n                            question: \\\"An auditor inspects a timesheet to ensure a foreman's signature is present to authorize overtime. What is the primary purpose of this test?\\\", \\r\\n                            options: [\\\"To verify the mathematical accuracy of the overtime pay\\\", \\\"To ensure the employee exists\\\", \\\"To confirm the overtime hours were valid and approved\\\", \\\"To check if the overtime pay was recorded in the correct period\\\"], \\r\\n                            answer: \\\"To confirm the overtime hours were valid and approved\\\",\\r\\n                            explanation: \\\"The foreman's signature provides evidence that the overtime was necessary and officially authorized, which supports the validity (occurrence) of the overtime payment.\\\"\\r\\n                        },\\r\\n                        { \\r\\n                            question: \\\"Which of the following would a Computer-Assisted Audit Technique (CAAT) be most effective at detecting in a payroll audit?\\\", \\r\\n                            options: [\\\"An employee who is lazy at their workstation\\\", \\\"A manual calculation error on a single payslip\\\", \\\"Duplicate bank account numbers in the employee master file\\\", \\\"Incorrectly filed employment contracts\\\"], \\r\\n                            answer: \\\"Duplicate bank account numbers in the employee master file\\\",\\r\\n                            explanation: \\\"CAATs excel at scanning large datasets for anomalies. Identifying duplicate bank accounts is a classic test to uncover potential 'ghost' employee schemes where payments for multiple fake employees are directed to a single fraudulent account.\\\"\\r\\n                        },\\r\\n                        { \\r\\n                            question: \\\"An auditor recalculates the PAYE and UIF deductions for a sample of employees. This procedure primarily tests which assertion?\\\", \\r\\n                            options: [\\\"Occurrence\\\", \\\"Completeness\\\", \\\"Rights and Obligations\\\", \\\"Accuracy\\\"], \\r\\n                            answer: \\\"Accuracy\\\",\\r\\n                            explanation: \\\"Accuracy is concerned with whether amounts have been recorded correctly. Recalculating deductions and agreeing pay rates to official sources are key procedures to ensure the mathematical accuracy of the payroll.\\\"\\r\\n                        }\\r\\n                    ]\\r\\n                }\\r\\n            ];\\r\\n\\r\\n            const mainMenu = document.getElementById('main-menu');\\r\\n            const studyGuide = document.getElementById('study-guide');\\r\\n            const topicGrid = document.getElementById('topic-grid');\\r\\n            const guideContainer = document.getElementById('guide-content-wrapper');\\r\\n            const progressBar = document.getElementById('progress-bar');\\r\\n            const progressText = document.getElementById('progress-text');\\r\\n            const topicTitleEl = document.getElementById('topic-title');\\r\\n            const backToMenuBtn = document.getElementById('back-to-menu');\\r\\n            const quizModal = document.getElementById('quiz-modal');\\r\\n            const quizContent = document.getElementById('quiz-content');\\r\\n            const navigationButtons = document.getElementById('navigation-buttons');\\r\\n\\r\\n            let currentTopicIndex = 0;\\r\\n            let currentSectionIndex = 0;\\r\\n\\r\\n            function initializeMenu() {\\r\\n                topicGrid.innerHTML = '';\\r\\n                studyData.forEach((topicData, index) => {\\r\\n                    const button = document.createElement('button');\\r\\n                    button.className = `topic-button bg-white p-6 rounded-lg shadow-md text-left border border-emerald-500\/20 hover:bg-slate-50 ${studyData.length === 1 ? 'md:col-span-2' : ''}`;\\r\\n                    button.innerHTML = `\\r\\n                        <h3 class=\\\"text-xl font-semibold text-emerald-600\\\">${topicData.topic}<\/h3>\\r\\n                        <p class=\\\"text-slate-500 mt-1 text-sm\\\">${topicData.content.length} sections<\/p>\\r\\n                    `;\\r\\n                    button.onclick = () => startTopic(index);\\r\\n                    topicGrid.appendChild(button);\\r\\n                });\\r\\n            }\\r\\n\\r\\n            function startTopic(topicIndex) {\\r\\n                currentTopicIndex = topicIndex;\\r\\n                currentSectionIndex = 0;\\r\\n                mainMenu.classList.add('hidden');\\r\\n                studyGuide.classList.remove('hidden');\\r\\n                renderSection();\\r\\n            }\\r\\n\\r\\n            function backToMenu() {\\r\\n                mainMenu.classList.remove('hidden');\\r\\n                studyGuide.classList.add('hidden');\\r\\n            }\\r\\n\\r\\n            function renderSection() {\\r\\n                const section = studyData[currentTopicIndex].content[currentSectionIndex];\\r\\n                guideContainer.innerHTML = `\\r\\n                    <div class=\\\"content-card text-center p-4 w-full\\\">\\r\\n                        <h2 class=\\\"text-2xl font-bold mb-4 text-emerald-600\\\">${section.title}<\/h2>\\r\\n                        <div class=\\\"text-slate-700 leading-relaxed min-h-[250px] text-left\\\">${section.text}<\/div>\\r\\n                    <\/div>\\r\\n                `;\\r\\n                \\r\\n                setTimeout(() => {\\r\\n                    guideContainer.querySelector('.content-card')?.classList.add('active');\\r\\n                }, 50);\\r\\n\\r\\n                updateNavigation();\\r\\n            }\\r\\n            \\r\\n            function handleQuiz() {\\r\\n                quizModal.style.display = 'flex';\\r\\n                const quizData = studyData[currentTopicIndex].quiz;\\r\\n                if (quizData && quizData.length > 0) {\\r\\n                    renderQuiz(quizData);\\r\\n                } else {\\r\\n                     quizContent.innerHTML = `<p class=\\\"text-yellow-500 text-center\\\">No quiz available for this topic.<\/p> <button onclick=\\\"document.getElementById('quiz-modal').style.display='none'\\\" class=\\\"mt-4 bg-slate-200 py-2 px-4 rounded\\\">Close<\/button>`;\\r\\n                }\\r\\n            }\\r\\n\\r\\n            function renderQuiz(quizData) {\\r\\n                let quizHTML = `<h2 class=\\\"text-2xl font-bold mb-6 text-center text-emerald-600\\\">Quiz on ${studyData[currentTopicIndex].topic}<\/h2>`;\\r\\n                quizData.forEach((q, index) => {\\r\\n                    quizHTML += `<div class=\\\"mb-6\\\" data-answer=\\\"${q.answer.replace(\/\\\"\/g, '&quot;')}\\\" data-explanation=\\\"${q.explanation.replace(\/\\\"\/g, '&quot;')}\\\">\\r\\n                        <p class=\\\"font-semibold mb-3 text-slate-800\\\">${index + 1}. ${q.question}<\/p>\\r\\n                        <div class=\\\"space-y-2 text-slate-700\\\">`;\\r\\n                    q.options.forEach(opt => {\\r\\n                        quizHTML += `<label class=\\\"flex items-center p-3 rounded-lg border border-slate-200 cursor-pointer hover:bg-slate-100 has-[:checked]:bg-emerald-100 has-[:checked]:border-emerald-400\\\">\\r\\n                            <input type=\\\"radio\\\" name=\\\"q${index}\\\" value=\\\"${opt.replace(\/\\\"\/g, '&quot;')}\\\" class=\\\"mr-3 w-4 h-4 text-emerald-600 bg-slate-100 border-slate-300 focus:ring-emerald-500 focus:ring-2\\\">\\r\\n                            <span>${opt}<\/span>\\r\\n                        <\/label>`;\\r\\n                    });\\r\\n                    quizHTML += `<\/div>\\r\\n                                 <p class=\\\"result-text mt-2 text-sm font-medium hidden\\\"><\/p>\\r\\n                                 <p class=\\\"explanation-text text-slate-600 text-sm hidden\\\"><\/p>\\r\\n                               <\/div>`;\\r\\n                });\\r\\n                quizHTML += `<div class=\\\"flex justify-between items-center mt-6\\\">\\r\\n                    <button id=\\\"close-quiz-btn\\\" class=\\\"bg-slate-500 hover:bg-slate-600 text-white font-bold py-2 px-4 rounded-lg\\\">Close<\/button>\\r\\n                    <button id=\\\"submit-quiz-btn\\\" class=\\\"bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-2 px-4 rounded-lg\\\">Check Answers<\/button>\\r\\n                <\/div>`;\\r\\n                quizContent.innerHTML = quizHTML;\\r\\n                document.getElementById('submit-quiz-btn').addEventListener('click', () => {\\r\\n                    quizData.forEach((q, index) => {\\r\\n                        const container = quizContent.querySelectorAll('div[data-answer]')[index];\\r\\n                        const selected = container.querySelector(`input[name=\\\"q${index}\\\"]:checked`);\\r\\n                        const resultText = container.querySelector('.result-text');\\r\\n                        const explanationText = container.querySelector('.explanation-text');\\r\\n                        \\r\\n                        resultText.classList.remove('hidden');\\r\\n                        explanationText.classList.remove('hidden');\\r\\n                        explanationText.textContent = `Explanation: ${container.dataset.explanation}`;\\r\\n\\r\\n                        if (selected) {\\r\\n                            if (selected.value === q.answer) {\\r\\n                                resultText.textContent = 'Correct!';\\r\\n                                resultText.className = 'result-text mt-2 text-sm font-medium text-green-600';\\r\\n                            } else {\\r\\n                                resultText.textContent = `Incorrect. The correct answer is: ${q.answer}`;\\r\\n                                resultText.className = 'result-text mt-2 text-sm font-medium text-red-600';\\r\\n                            }\\r\\n                        } else {\\r\\n                            resultText.textContent = 'No answer selected.';\\r\\n                            resultText.className = 'result-text mt-2 text-sm font-medium text-yellow-600';\\r\\n                            explanationText.classList.add('hidden');\\r\\n                        }\\r\\n                    });\\r\\n                    document.getElementById('submit-quiz-btn').disabled = true;\\r\\n                    document.getElementById('submit-quiz-btn').textContent = 'Answers Checked';\\r\\n                });\\r\\n                document.getElementById('close-quiz-btn').addEventListener('click', () => quizModal.style.display = 'none');\\r\\n            }\\r\\n\\r\\n            function updateNavigation() {\\r\\n                navigationButtons.innerHTML = '';\\r\\n                const topic = studyData[currentTopicIndex];\\r\\n                const totalSections = topic.content.length;\\r\\n                const progressPercentage = ((currentSectionIndex + 1) \/ totalSections) * 100;\\r\\n                progressBar.style.width = `${progressPercentage}%`;\\r\\n                progressText.textContent = `Section ${currentSectionIndex + 1} of ${totalSections}`;\\r\\n                topicTitleEl.textContent = topic.topic;\\r\\n\\r\\n                const prevButton = document.createElement('button');\\r\\n                prevButton.id = 'prev-btn';\\r\\n                prevButton.className = 'bg-slate-200 hover:bg-slate-300 text-slate-700 font-bold py-2 px-6 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed';\\r\\n                prevButton.textContent = 'Previous';\\r\\n                prevButton.onclick = navigatePrev;\\r\\n                prevButton.disabled = currentSectionIndex === 0;\\r\\n                \\r\\n                const nextButton = document.createElement('button');\\r\\n                nextButton.id = 'next-btn';\\r\\n                \\r\\n                if (currentSectionIndex === totalSections - 1) {\\r\\n                    nextButton.className = 'quiz-action-button bg-green-600 hover:bg-green-700 text-white font-bold py-2 px-6 rounded-lg transition-colors';\\r\\n                    nextButton.textContent = 'Finish Topic';\\r\\n                    nextButton.onclick = backToMenu;\\r\\n                    const quizButton = document.createElement('button');\\r\\n                    quizButton.id = 'quiz-btn';\\r\\n                    quizButton.className = 'quiz-action-button bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-2 px-6 rounded-lg';\\r\\n                    quizButton.textContent = '\u270d\ufe0f Take Quiz';\\r\\n                    quizButton.onclick = handleQuiz;\\r\\n                    navigationButtons.appendChild(prevButton);\\r\\n                    navigationButtons.appendChild(quizButton);\\r\\n                    navigationButtons.appendChild(nextButton);\\r\\n                } else {\\r\\n                    nextButton.className = 'bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-2 px-6 rounded-lg transition-colors';\\r\\n                    nextButton.textContent = 'Next';\\r\\n                    nextButton.onclick = navigateNext;\\r\\n                    navigationButtons.appendChild(prevButton);\\r\\n                    navigationButtons.appendChild(nextButton);\\r\\n                }\\r\\n            }\\r\\n            \\r\\n            function navigateNext() {\\r\\n                if (currentSectionIndex < studyData[currentTopicIndex].content.length - 1) {\\r\\n                    currentSectionIndex++;\\r\\n                    renderSection();\\r\\n                }\\r\\n            }\\r\\n\\r\\n            function navigatePrev() {\\r\\n                if (currentSectionIndex > 0) {\\r\\n                    currentSectionIndex--;\\r\\n                    renderSection();\\r\\n                }\\r\\n            }\\r\\n\\r\\n            let touchstartX = 0;\\r\\n            guideContainer.addEventListener('touchstart', e => { touchstartX = e.changedTouches[0].screenX; }, { passive: true });\\r\\n            guideContainer.addEventListener('touchend', e => {\\r\\n                let touchendX = e.changedTouches[0].screenX;\\r\\n                if (touchendX < touchstartX - 50) { \/\/ Swipe Left\\r\\n                    const nextBtn = document.getElementById('next-btn') || document.querySelector('.quiz-action-button[onclick=\\\"backToMenu()\\\"]');\\r\\n                    if(nextBtn) nextBtn.click();\\r\\n                }\\r\\n                if (touchendX > touchstartX + 50) { \/\/ Swipe Right\\r\\n                    document.getElementById('prev-btn')?.click();\\r\\n                }\\r\\n            }, { passive: true });\\r\\n            \\r\\n            backToMenuBtn.addEventListener('click', backToMenu);\\r\\n            document.addEventListener('keydown', (e) => {\\r\\n                if(studyGuide.classList.contains('hidden') || quizModal.style.display === 'flex') return;\\r\\n                if (e.key === 'ArrowRight') {\\r\\n                     const nextBtn = document.getElementById('next-btn') || document.querySelector('.quiz-action-button[onclick=\\\"backToMenu()\\\"]');\\r\\n                    if(nextBtn) nextBtn.click();\\r\\n                }\\r\\n                if (e.key === 'ArrowLeft') document.getElementById('prev-btn')?.click();\\r\\n            });\\r\\n\\r\\n            \/\/ If there's only one topic, start it automatically\\r\\n            if (studyData.length === 1) {\\r\\n                startTopic(0);\\r\\n            } else {\\r\\n                initializeMenu();\\r\\n            }\\r\\n        });\\r\\n    <\/script>\\r\\n<\/body>\\r\\n<\/html>&#8220;}\n\n\n\n\n\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[42],"tags":[],"class_list":["post-1052","post","type-post","status-publish","format-standard","hentry","category-auditing"],"_links":{"self":[{"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/posts\/1052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/comments?post=1052"}],"version-history":[{"count":5,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/posts\/1052\/revisions"}],"predecessor-version":[{"id":1204,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/posts\/1052\/revisions\/1204"}],"wp:attachment":[{"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/media?parent=1052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/categories?post=1052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/Tertiary\/wp-json\/wp\/v2\/tags?post=1052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}