{"id":733,"date":"2025-09-12T01:47:33","date_gmt":"2025-09-12T01:47:33","guid":{"rendered":"https:\/\/wiseexcellence.co.za\/high-school\/?page_id=733"},"modified":"2026-02-01T15:34:13","modified_gmt":"2026-02-01T15:34:13","slug":"budgeting","status":"publish","type":"page","link":"https:\/\/wiseexcellence.co.za\/high-school\/budgeting\/","title":{"rendered":"Budgeting"},"content":{"rendered":"\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Matric Accounting Study Guide: Budgeting<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #f1f5f9; \/* slate-100 *\/\n            touch-action: pan-y;\n        }\n        .guide-container {\n            min-height: 480px;\n        }\n        .content-card {\n            opacity: 0;\n            transform: translateX(20px);\n            transition: opacity 0.4s ease-out, transform 0.4s ease-out;\n            will-change: opacity, transform;\n        }\n        .content-card.active {\n            opacity: 1;\n            transform: translateX(0);\n        }\n        .progress-bar-inner {\n            transition: width 0.3s ease-in-out;\n        }\n        .topic-button, .quiz-action-button {\n            transition: all 0.2s ease-in-out;\n        }\n        .topic-button:hover, .quiz-action-button:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 4px 20px rgba(16, 185, 129, 0.2);\n        }\n        ::selection {\n            background: #059669; \/* emerald-600 *\/\n            color: #ffffff;\n        }\n    <\/style>\n<\/head>\n<body class=\"bg-slate-100 text-slate-800 flex items-center justify-center min-h-screen p-4\">\n\n    <div class=\"w-full max-w-4xl mx-auto\">\n        <header class=\"text-center mb-6\">\n            <h1 class=\"text-3xl md:text-4xl font-bold text-emerald-600\">Matric Accounting Study Guide<\/h1>\n            <p class=\"text-slate-500 mt-2\">Your interactive guide to mastering the final exams.<\/p>\n        <\/header>\n\n        <main id=\"app-container\" class=\"bg-white rounded-xl shadow-lg shadow-emerald-500\/10 p-6 md:p-8 relative\">\n            <div class=\"absolute top-4 right-6 text-xs text-slate-400 font-semibold\">created by Wise Excellence<\/div>\n            \n            <!-- Main Menu View -->\n            <div id=\"main-menu\">\n                <h2 class=\"text-2xl font-semibold mb-6 text-center text-emerald-700\">Select a Topic to Begin<\/h2>\n                <div id=\"topic-grid\" class=\"grid grid-cols-1 md:grid-cols-2 gap-5\">\n                    <!-- Topic buttons will be inserted here by JavaScript -->\n                <\/div>\n            <\/div>\n\n            <!-- Study Guide View -->\n            <div id=\"study-guide\" class=\"hidden\">\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>\n                \n                <div id=\"guide-content-wrapper\" class=\"guide-container relative flex items-center justify-center\">\n                    <!-- Content will be dynamically inserted here -->\n                <\/div>\n\n                <!-- Navigation and Progress -->\n                <div class=\"mt-6\">\n                    <div class=\"flex justify-between items-center mb-2\">\n                        <span id=\"progress-text\" class=\"text-sm text-slate-500\"><\/span>\n                        <span id=\"topic-title\" class=\"text-sm font-semibold text-slate-600\"><\/span>\n                    <\/div>\n                    <div class=\"w-full bg-slate-200 rounded-full h-2.5\">\n                        <div id=\"progress-bar\" class=\"bg-emerald-500 h-2.5 rounded-full progress-bar-inner\"><\/div>\n                    <\/div>\n                    <div id=\"navigation-buttons\" class=\"flex justify-between items-center mt-4\">\n                        <!-- Navigation buttons will be injected here -->\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/main>\n        <footer class=\"text-center mt-6\">\n            <p class=\"text-xs text-slate-400\">Based on the South African CAPS curriculum guidelines.<\/p>\n        <\/footer>\n    <\/div>\n    \n    <!-- Quiz Modal -->\n    <div id=\"quiz-modal\" class=\"fixed inset-0 bg-black bg-opacity-60 hidden items-center justify-center p-4 backdrop-blur-sm\">\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\">\n             <!-- Quiz content will be injected here -->\n        <\/div>\n    <\/div>\n\n\n    <script>\n        document.addEventListener('DOMContentLoaded', () => {\n            const studyData = [\n                {\n                    topic: \"Budgeting\",\n                    content: [\n                        { title: \"What is Budgeting?\", text: \"This section tests your ability to prepare various budgets and analyze the financial implications of management decisions. You'll work with Cash Budgets, Debtors' Collection Schedules, and analyze budgeted versus actual figures.\" },\n                        { title: \"Key Task: Debtors' Collection Schedule\", text: \"A major task is preparing the Debtors' Collection Schedule. This involves calculating the cash expected to be collected from credit sales over several months, taking into account the business's discount policies and the historical payment trends of debtors.\" },\n                        { title: \"Key Task: The Cash Budget\", text: \"You'll often need to complete sections of the Cash Budget. This means filling in missing figures for cash receipts (like cash sales and debtor collections) and cash payments (like stock purchases, salaries, and loan repayments).\" },\n                        { title: \"Cash Flow vs. Profitability\", text: \"A crucial concept to remember is that the Cash Budget focuses ONLY on cash movements. Non-cash items from the Income Statement, like Depreciation and Bad Debts Written Off, are excluded from the Cash Budget because no actual cash is involved.\" },\n                        { title: \"Analyzing Variances\", text: \"You will need to compare planned (budgeted) performance with actual results. This is called variance analysis. Your job is to identify significant differences and provide plausible reasons for why they occurred (e.g., 'Sales were higher than budget because of a successful advertising campaign').\" },\n                        { title: \"Interpreting Decisions\", text: \"Budgeting questions require you to explain the impact of management decisions. For example, how does a change in the selling price or mark-up affect sales volume, cash flow, and overall profitability? You'll need to use the figures provided to support your analysis.\" },\n                        { title: \"Tips for Success\", text: \"Master the Debtors' Collection Schedule as it is a recurring, detailed calculation. Always remember to exclude non-cash items from the Cash Budget. Read all additional notes carefully, as small details can significantly impact your calculations, and always show your workings.\" }\n                    ],\n                    quiz: [\n                        { question: \"Which of the following items would NOT appear in a Cash Budget?\", options: [\"Depreciation on equipment\", \"Cash sales\", \"Payment to creditors\", \"Rent expense paid\"], answer: \"Depreciation on equipment\" },\n                        { question: \"The primary purpose of a Debtors' Collection Schedule is to forecast...\", options: [\"Total credit sales\", \"Cash inflow from credit customers\", \"The total amount of bad debts\", \"The company's net profit\"], answer: \"Cash inflow from credit customers\" },\n                        { question: \"If actual sales are significantly higher than budgeted sales, a plausible reason could be:\", options: [\"An economic recession\", \"A new competitor entered the market\", \"An effective advertising campaign\", \"The selling price was increased too much\"], answer: \"An effective advertising campaign\" },\n                        { question: \"A business offers a 5% discount to debtors who pay in the month of sale. If credit sales are R10,000 and 40% of debtors pay in that month, how much cash is collected from them?\", options: [\"R4,000\", \"R3,800\", \"R2,000\", \"R4,200\"], answer: \"R3,800\" },\n                        { question: \"Analyzing the financial implications of management decisions, such as changing a mark-up policy, is a key part of...\", options: [\"Preparing the Balance Sheet\", \"Budgeting and variance analysis\", \"Calculating depreciation\", \"Bank reconciliation\"], answer: \"Budgeting and variance analysis\" }\n                    ]\n                }\n            ];\n\n            const mainMenu = document.getElementById('main-menu');\n            const studyGuide = document.getElementById('study-guide');\n            const topicGrid = document.getElementById('topic-grid');\n            const guideContainer = document.getElementById('guide-content-wrapper');\n            const progressBar = document.getElementById('progress-bar');\n            const progressText = document.getElementById('progress-text');\n            const topicTitleEl = document.getElementById('topic-title');\n            const backToMenuBtn = document.getElementById('back-to-menu');\n            const quizModal = document.getElementById('quiz-modal');\n            const quizContent = document.getElementById('quiz-content');\n            const navigationButtons = document.getElementById('navigation-buttons');\n\n            let currentTopicIndex = 0;\n            let currentSectionIndex = 0;\n\n            function initializeMenu() {\n                topicGrid.innerHTML = '';\n                studyData.forEach((topicData, index) => {\n                    const button = document.createElement('button');\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' : ''}`;\n                    button.innerHTML = `\n                        <h3 class=\"text-xl font-semibold text-emerald-600\">${topicData.topic}<\/h3>\n                        <p class=\"text-slate-500 mt-1 text-sm\">${topicData.content.length} sections<\/p>\n                    `;\n                    button.onclick = () => startTopic(index);\n                    topicGrid.appendChild(button);\n                });\n            }\n\n            function startTopic(topicIndex) {\n                currentTopicIndex = topicIndex;\n                currentSectionIndex = 0;\n                mainMenu.classList.add('hidden');\n                studyGuide.classList.remove('hidden');\n                renderSection();\n            }\n\n            function backToMenu() {\n                mainMenu.classList.remove('hidden');\n                studyGuide.classList.add('hidden');\n            }\n\n            function renderSection() {\n                const section = studyData[currentTopicIndex].content[currentSectionIndex];\n                guideContainer.innerHTML = `\n                    <div class=\"content-card text-center p-4 w-full\">\n                        <h2 class=\"text-2xl font-bold mb-4 text-emerald-600\">${section.title}<\/h2>\n                        <div class=\"text-slate-700 leading-relaxed min-h-[250px] text-left\">${section.text}<\/div>\n                    <\/div>\n                `;\n                \n                setTimeout(() => {\n                    guideContainer.querySelector('.content-card')?.classList.add('active');\n                }, 50);\n\n                updateNavigation();\n            }\n            \n            function handleQuiz() {\n                quizModal.style.display = 'flex';\n                const quizData = studyData[currentTopicIndex].quiz;\n                if (quizData && quizData.length > 0) {\n                    renderQuiz(quizData);\n                } else {\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>`;\n                }\n            }\n\n            function renderQuiz(quizData) {\n                let quizHTML = `<h2 class=\"text-2xl font-bold mb-6 text-center text-emerald-600\">Quiz on ${studyData[currentTopicIndex].topic}<\/h2>`;\n                quizData.forEach((q, index) => {\n                    quizHTML += `<div class=\"mb-6\" data-answer=\"${q.answer.replace(\/\"\/g, '&quot;')}\">\n                        <p class=\"font-semibold mb-3 text-slate-800\">${index + 1}. ${q.question}<\/p>\n                        <div class=\"space-y-2 text-slate-700\">`;\n                    q.options.forEach(opt => {\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\">\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\">\n                            <span>${opt}<\/span>\n                        <\/label>`;\n                    });\n                    quizHTML += `<\/div><p class=\"result-text mt-2 text-sm font-medium hidden\"><\/p><\/div>`;\n                });\n                quizHTML += `<div class=\"flex justify-between items-center mt-6\">\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>\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>\n                <\/div>`;\n                quizContent.innerHTML = quizHTML;\n                document.getElementById('submit-quiz-btn').addEventListener('click', () => {\n                    quizData.forEach((q, index) => {\n                        const container = quizContent.querySelectorAll('div[data-answer]')[index];\n                        const selected = container.querySelector(`input[name=\"q${index}\"]:checked`);\n                        const resultText = container.querySelector('.result-text');\n                        resultText.classList.remove('hidden');\n                        if (selected) {\n                            if (selected.value === q.answer) {\n                                resultText.textContent = 'Correct!';\n                                resultText.className = 'result-text mt-2 text-sm font-medium text-green-600';\n                            } else {\n                                resultText.textContent = `Incorrect. The correct answer is: ${q.answer}`;\n                                resultText.className = 'result-text mt-2 text-sm font-medium text-red-600';\n                            }\n                        } else {\n                            resultText.textContent = 'No answer selected.';\n                            resultText.className = 'result-text mt-2 text-sm font-medium text-yellow-600';\n                        }\n                    });\n                    document.getElementById('submit-quiz-btn').disabled = true;\n                });\n                document.getElementById('close-quiz-btn').addEventListener('click', () => quizModal.style.display = 'none');\n            }\n\n            function updateNavigation() {\n                navigationButtons.innerHTML = '';\n                const topic = studyData[currentTopicIndex];\n                const totalSections = topic.content.length;\n                const progressPercentage = ((currentSectionIndex + 1) \/ totalSections) * 100;\n                progressBar.style.width = `${progressPercentage}%`;\n                progressText.textContent = `Section ${currentSectionIndex + 1} of ${totalSections}`;\n                topicTitleEl.textContent = topic.topic;\n\n                const prevButton = document.createElement('button');\n                prevButton.id = 'prev-btn';\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';\n                prevButton.textContent = 'Previous';\n                prevButton.onclick = navigatePrev;\n                prevButton.disabled = currentSectionIndex === 0;\n                \n                const nextButton = document.createElement('button');\n                nextButton.id = 'next-btn';\n                \n                if (currentSectionIndex === totalSections - 1) {\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';\n                    nextButton.textContent = 'Finish Topic';\n                    nextButton.onclick = backToMenu;\n                    const quizButton = document.createElement('button');\n                    quizButton.id = 'quiz-btn';\n                    quizButton.className = 'quiz-action-button bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-2 px-6 rounded-lg';\n                    quizButton.textContent = '\u270d\ufe0f Take Quiz';\n                    quizButton.onclick = handleQuiz;\n                    navigationButtons.appendChild(prevButton);\n                    navigationButtons.appendChild(quizButton);\n                    navigationButtons.appendChild(nextButton);\n                } else {\n                    nextButton.className = 'bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-2 px-6 rounded-lg transition-colors';\n                    nextButton.textContent = 'Next';\n                    nextButton.onclick = navigateNext;\n                    navigationButtons.appendChild(prevButton);\n                    navigationButtons.appendChild(nextButton);\n                }\n            }\n            \n            function navigateNext() {\n                if (currentSectionIndex < studyData[currentTopicIndex].content.length - 1) {\n                    currentSectionIndex++;\n                    renderSection();\n                }\n            }\n\n            function navigatePrev() {\n                if (currentSectionIndex > 0) {\n                    currentSectionIndex--;\n                    renderSection();\n                }\n            }\n\n            let touchstartX = 0;\n            guideContainer.addEventListener('touchstart', e => { touchstartX = e.changedTouches[0].screenX; }, { passive: true });\n            guideContainer.addEventListener('touchend', e => {\n                let touchendX = e.changedTouches[0].screenX;\n                if (touchendX < touchstartX - 50) { \/\/ Swipe Left\n                    const nextBtn = document.getElementById('next-btn') || document.querySelector('.quiz-action-button[onclick=\"backToMenu()\"]');\n                    if(nextBtn) nextBtn.click();\n                }\n                if (touchendX > touchstartX + 50) { \/\/ Swipe Right\n                    document.getElementById('prev-btn')?.click();\n                }\n            }, { passive: true });\n            \n            backToMenuBtn.addEventListener('click', backToMenu);\n            document.addEventListener('keydown', (e) => {\n                if(studyGuide.classList.contains('hidden') || quizModal.style.display === 'flex') return;\n                if (e.key === 'ArrowRight') {\n                     const nextBtn = document.getElementById('next-btn') || document.querySelector('.quiz-action-button[onclick=\"backToMenu()\"]');\n                    if(nextBtn) nextBtn.click();\n                }\n                if (e.key === 'ArrowLeft') document.getElementById('prev-btn')?.click();\n            });\n\n            \/\/ If there's only one topic, start it automatically\n            if (studyData.length === 1) {\n                startTopic(0);\n            } else {\n                initializeMenu();\n            }\n        });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n\n<span style=\"text-decoration-style: initial;\">See Other Topic<\/span>s\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[18,23],"tags":[24],"class_list":["post-733","page","type-page","status-publish","hentry","category-grade-12","category-high-school","tag-exam-tool-kit"],"_links":{"self":[{"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/pages\/733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/comments?post=733"}],"version-history":[{"count":5,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/pages\/733\/revisions"}],"predecessor-version":[{"id":1073,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/pages\/733\/revisions\/1073"}],"wp:attachment":[{"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/media?parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/categories?post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiseexcellence.co.za\/high-school\/wp-json\/wp\/v2\/tags?post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}