{"id":21487,"date":"2026-08-18T18:22:43","date_gmt":"2026-08-18T18:22:43","guid":{"rendered":"https:\/\/maspartner.com\/en-us\/?post_type=publications&#038;p=21487"},"modified":"2026-08-27T12:52:12","modified_gmt":"2026-08-27T12:52:12","slug":"job-costing-in-quickbooks-online","status":"publish","type":"publications","link":"https:\/\/maspartner.com\/en-us\/publications\/job-costing-in-quickbooks-online\/","title":{"rendered":"Job Costing in QuickBooks Online: Contractor Setup Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21487\" class=\"elementor elementor-21487\">\n\t\t\t\t<div class=\"elementor-element elementor-element-075981e e-con-full sc_inner_width_1_1 e-flex sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"075981e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0a8121 sc_fly_static elementor-widget elementor-widget-html\" data-id=\"d0a8121\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\r\nMASPARTNER PUBLICATION HERO\r\nReplace the publication details for each new publication.\r\n========================================================= -->\r\n\r\n<section class=\"mas-publication-standalone-hero\">\r\n\r\n  <style>\r\n    .mas-publication-standalone-hero {\r\n      --mas-gold: #fabc17;\r\n      --mas-black: #000000;\r\n      --mas-white: #ffffff;\r\n      --mas-content-width: 1240px;\r\n      --mas-desktop-padding: 70px;\r\n\r\n      position: relative;\r\n      left: 50%;\r\n      width: 100vw;\r\n      max-width: 100vw;\r\n      margin-left: -50vw;\r\n      margin-right: -50vw;\r\n\r\n      background: var(--mas-black);\r\n      color: var(--mas-white);\r\n      border-top: 6px solid var(--mas-gold);\r\n\r\n      font-family: inherit;\r\n      box-sizing: border-box;\r\n      overflow: hidden;\r\n      z-index: 1;\r\n    }\r\n\r\n    .mas-publication-standalone-hero *,\r\n    .mas-publication-standalone-hero *::before,\r\n    .mas-publication-standalone-hero *::after {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    .mas-publication-standalone-hero-inner {\r\n      width: 100%;\r\n      max-width: var(--mas-content-width);\r\n      margin: 0 auto;\r\n      padding: 60px 70px 65px 70px;\r\n    }\r\n\r\n    .mas-publication-standalone-hero h1 {\r\n      width: 100%;\r\n      max-width: 1100px;\r\n      margin: 0 0 22px;\r\n      padding: 0;\r\n\r\n      color: var(--mas-white);\r\n      font-size: clamp(38px, 5vw, 62px);\r\n      font-weight: 800;\r\n      line-height: 1.06;\r\n      letter-spacing: -0.5px;\r\n    }\r\n\r\n    .mas-publication-standalone-subtitle {\r\n      width: 100%;\r\n      max-width: 1000px;\r\n      margin: 0 0 30px;\r\n      padding: 0;\r\n\r\n      color: var(--mas-gold);\r\n      font-size: clamp(19px, 2.4vw, 28px);\r\n      font-weight: 700;\r\n      line-height: 1.35;\r\n    }\r\n\r\n    .mas-publication-standalone-rule {\r\n      width: 100%;\r\n      max-width: 880px;\r\n      height: 4px;\r\n      margin: 0 0 34px;\r\n\r\n      background: var(--mas-gold);\r\n      border-radius: 2px;\r\n    }\r\n\r\n    \/* ---------- META ROW WITH SLASH DIVIDERS ---------- *\/\r\n    .mas-publication-standalone-meta {\r\n      display: flex;\r\n      align-items: flex-start;\r\n      gap: 0;\r\n      width: 100%;\r\n      max-width: 1080px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .mas-publication-standalone-meta-item {\r\n      flex: 1 1 0;\r\n      min-width: 0;\r\n    }\r\n\r\n    .mas-publication-standalone-meta-divider {\r\n      flex: 0 0 1px;\r\n      align-self: stretch;\r\n      background: rgba(255,255,255,0.18);\r\n      margin: 0 30px;\r\n    }\r\n\r\n    .mas-publication-standalone-label {\r\n      margin: 0 0 6px;\r\n      padding: 0;\r\n\r\n      color: var(--mas-gold);\r\n      font-size: 12px;\r\n      font-weight: 800;\r\n      line-height: 1.4;\r\n      letter-spacing: 1.5px;\r\n      text-transform: uppercase;\r\n    }\r\n\r\n    .mas-publication-standalone-value {\r\n      margin: 0;\r\n      padding: 0;\r\n\r\n      color: #e0e0e3;\r\n      font-size: 15px;\r\n      line-height: 1.55;\r\n    }\r\n\r\n    .mas-publication-standalone-credit-name {\r\n      margin: 0 0 4px;\r\n      padding: 0;\r\n\r\n      color: var(--mas-white);\r\n      font-size: 22px;\r\n      font-weight: 800;\r\n      line-height: 1.3;\r\n    }\r\n\r\n    .mas-publication-standalone-credit-name a,\r\n    .mas-publication-standalone-credit-name a:link,\r\n    .mas-publication-standalone-credit-name a:visited {\r\n       color: var(--mas-white) !important;\r\n       text-decoration: none;\r\n       border: none;\r\n       outline: none;\r\n       transition: none;\r\n       position: relative;\r\n       z-index: 10;\r\n       pointer-events: auto;\r\n       cursor: pointer;\r\n    }\r\n\r\n    .mas-publication-standalone-credit-name a:hover,\r\n    .mas-publication-standalone-credit-name a:focus,\r\n    .mas-publication-standalone-credit-name a:active,\r\n    .mas-publication-standalone-credit-name a:visited:hover,\r\n    .mas-publication-standalone-credit-name a:visited:focus,\r\n    .mas-publication-standalone-credit-name a:visited:active {\r\n       color: var(--mas-gold) !important;\r\n       text-decoration: none;\r\n       border: none;\r\n       outline: none;\r\n    }\r\n\r\n    .mas-publication-standalone-credit-role {\r\n      margin: 0;\r\n      padding: 0;\r\n\r\n      color: #d0d0d4;\r\n      font-size: 15px;\r\n      line-height: 1.5;\r\n    }\r\n\r\n    \/* Inline research-by line: Name | Title | Email *\/\r\n    .mas-publication-standalone-credit-inline {\r\n      margin: 0;\r\n      padding: 0;\r\n      color: #d0d0d4;\r\n      font-size: 15px;\r\n      line-height: 1.55;\r\n      white-space: nowrap;\r\n    }\r\n\r\n    .mas-publication-inline-sep {\r\n      margin: 0 8px;\r\n      color: rgba(255,255,255,0.25);\r\n    }\r\n\r\n    .mas-publication-inline-link,\r\n    .mas-publication-inline-link:link,\r\n    .mas-publication-inline-link:visited {\r\n      color: #d0d0d4 !important;\r\n      text-decoration: none !important;\r\n      border: none;\r\n      outline: none;\r\n      position: relative;\r\n      z-index: 10;\r\n      pointer-events: auto;\r\n      cursor: pointer;\r\n    }\r\n\r\n    .mas-publication-inline-link:hover,\r\n    .mas-publication-inline-link:focus,\r\n    .mas-publication-inline-link:active,\r\n    .mas-publication-inline-link:visited:hover,\r\n    .mas-publication-inline-link:visited:focus,\r\n    .mas-publication-inline-link:visited:active {\r\n      color: var(--mas-gold) !important;\r\n      text-decoration: none !important;\r\n    }\r\n\r\n    \/* Tablet *\/\r\n    @media (max-width: 1024px) {\r\n      .mas-publication-standalone-hero {\r\n        --mas-desktop-padding: 30px;\r\n      }\r\n\r\n      .mas-publication-standalone-meta-divider {\r\n        margin: 0 18px;\r\n      }\r\n    }\r\n\r\n    \/* Mobile *\/\r\n    @media (max-width: 767px) {\r\n      .mas-publication-standalone-hero {\r\n        --mas-desktop-padding: 20px;\r\n      }\r\n\r\n      .mas-publication-standalone-hero-inner {\r\n        padding-top: 36px;\r\n        padding-bottom: 42px;\r\n      }\r\n\r\n      .mas-publication-standalone-hero h1 {\r\n        margin-bottom: 18px;\r\n        font-size: clamp(34px, 10vw, 42px);\r\n        line-height: 1.08;\r\n        letter-spacing: -0.3px;\r\n      }\r\n\r\n      .mas-publication-standalone-subtitle {\r\n        margin-bottom: 26px;\r\n        font-size: 20px;\r\n        line-height: 1.4;\r\n      }\r\n\r\n      .mas-publication-standalone-rule {\r\n        margin-bottom: 28px;\r\n      }\r\n\r\n      .mas-publication-standalone-meta {\r\n        flex-direction: column;\r\n        gap: 0;\r\n      }\r\n\r\n      .mas-publication-standalone-meta-item {\r\n        padding: 16px 0;\r\n        border-bottom: 1px solid rgba(255,255,255,0.12);\r\n      }\r\n\r\n      .mas-publication-standalone-meta-item:last-child {\r\n        border-bottom: none;\r\n      }\r\n\r\n      .mas-publication-standalone-meta-divider {\r\n        display: none;\r\n      }\r\n\r\n      .mas-publication-standalone-credit-name {\r\n        font-size: 20px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"mas-publication-standalone-hero-inner\">\r\n\r\n    <!-- MAIN TITLE -->\r\n    <h1>\r\n      How to Set Up Job Costing in QuickBooks Online\r\n    <\/h1>\r\n\r\n    <!-- SUBTITLE \/ DESCRIPTION -->\r\n    <p class=\"mas-publication-standalone-subtitle\">\r\n      A Practical Guide to Tracking Project Costs and Profitability\r\n    <\/p>\r\n\r\n    <!-- YELLOW DIVIDER -->\r\n    <div class=\"mas-publication-standalone-rule\"><\/div>\r\n\r\n    <!-- PUBLICATION DETAILS: Published | Audience | Research By -->\r\n    <div class=\"mas-publication-standalone-meta\">\r\n\r\n      <!-- PUBLISHED -->\r\n      <div class=\"mas-publication-standalone-meta-item\">\r\n        <p class=\"mas-publication-standalone-label\">Published<\/p>\r\n        <p class=\"mas-publication-standalone-value\">August 2026 | MASPARTNER E-Guides<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-standalone-meta-divider\"><\/div>\r\n\r\n      <!-- AUDIENCE -->\r\n      <div class=\"mas-publication-standalone-meta-item\">\r\n        <p class=\"mas-publication-standalone-label\">Audience<\/p>\r\n        <p class=\"mas-publication-standalone-value\">General Contractors \u00b7 Project Managers \u00b7 Construction Bookkeepers \u00b7 Accountants<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-standalone-meta-divider\"><\/div>\r\n\r\n      <!-- RESEARCH BY -->\r\n      <div class=\"mas-publication-standalone-meta-item\">\r\n        <p class=\"mas-publication-standalone-label\">Research By<\/p>\r\n        <p class=\"mas-publication-standalone-credit-inline\">\r\n          <a href=\"https:\/\/maspartner.com\/en-us\/people\/rohit-kumar\/\" class=\"mas-publication-inline-link\">Rohit Kumar<\/a> <span class=\"mas-publication-inline-sep\">|<\/span> Director <span class=\"mas-publication-inline-sep\">|<\/span> <a href=\"mailto:rohit@maspartner.com\" class=\"mas-publication-inline-link\">rohit@maspartner.com<\/a>\r\n        <\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n  <script>\r\n  (function(){\r\n    var hero = document.currentScript\r\n      ? document.currentScript.closest('.mas-publication-standalone-hero')\r\n      : null;\r\n    if(!hero){\r\n      var all = document.querySelectorAll('.mas-publication-standalone-hero');\r\n      hero = all[all.length - 1];\r\n    }\r\n    if(!hero) return;\r\n\r\n    hero.querySelectorAll('.mas-publication-standalone-credit-name a').forEach(function(el){\r\n      el.addEventListener('click', function(e){\r\n        e.stopPropagation();\r\n        var href = (this.getAttribute('href') || '').trim();\r\n        href = href.replace(\/^\\[+\/, '').replace(\/\\]+$\/, '').trim();\r\n        var isReal = \/^https?:\\\/\\\/\/i.test(href) || href.charAt(0) === '\/';\r\n        if(!isReal){ e.preventDefault(); return; }\r\n        e.preventDefault();\r\n        window.location.href = href;\r\n      }, true);\r\n    });\r\n\r\n    \/\/ Force inline research-by links (name + email) to work in Elementor\r\n    hero.querySelectorAll('.mas-publication-inline-link').forEach(function(el){\r\n      el.addEventListener('click', function(e){\r\n        e.stopPropagation();\r\n        var href = (this.getAttribute('href') || '').trim();\r\n        if(!href){ e.preventDefault(); return; }\r\n        e.preventDefault();\r\n        if(\/^mailto:\/i.test(href)){\r\n          window.location.href = href;\r\n        } else {\r\n          window.location.href = href;\r\n        }\r\n      }, true);\r\n    });\r\n  })();\r\n  <\/script>\r\n\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"e-con-with-custom-width elementor-element elementor-element-f4f913f e-con-full e-flex sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"f4f913f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8870685 sc_fly_static elementor-widget elementor-widget-html\" data-id=\"8870685\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\r\n============================================================\r\n  MASPARTNER \/ MERCURIUS WEB PUBLICATION\r\n  How to Set Up Job Costing in QuickBooks Online for a\r\n  General Contractor Without It Destroying Your Chart of Accounts\r\n  Paste this entire block into a WordPress \"Custom HTML\" block\r\n  (or an Elementor HTML widget) on a full-width page.\r\n============================================================\r\n  REPLACE THESE PLACEHOLDERS BEFORE PUBLISHING:\r\n\r\n    RESOURCE LINKS (Further Reading section):\r\n    [QBO_RESOURCE_1_URL]         -> Create and Set Up Projects in QuickBooks Online\r\n    [QBO_RESOURCE_2_URL]         -> Job Costing with QuickBooks: Overview and Best Practices\r\n    [CONSTRUCTION_RESOURCE_1_URL]-> Ways to Approach Job Costing in QuickBooks Online\r\n    [CONSTRUCTION_RESOURCE_2_URL]-> Job Costing and Project Costing in QBO for Contractors\r\n    [MASPARTNER_ARTICLE_1_URL]   -> Multi-channel Ecommerce Accounting\r\n    [MASPARTNER_ARTICLE_2_URL]   -> QuickBooks Amazon Integration Limitations\r\n    [MASPARTNER_ARTICLE_3_URL]   -> Multi-state Sales Tax Filing\r\n\r\n    PDF DOWNLOAD LINK (delivered after CF7 form submission):\r\n    https:\/\/maspartner.com\/wp-content\/uploads\/2026\/08\/How-to-Set-Up-Job-Costing-in-QuickBooks-Online-for-a-General-Contractor.pdf.pdf\r\n\r\n    NOTE: The sticky button now triggers a CF7 popup form.\r\n    CF7 Form ID: d62a501 (title: Publication)\r\n    User must add an Elementor \"Shortcode\" widget below this Custom HTML\r\n    widget containing the CF7 shortcode.\r\n============================================================\r\n-->\r\n\r\n<div class=\"mas-publication-wrapper\">\r\n\r\n  <style>\r\n    .mas-publication-wrapper{\r\n      --mas-white:#ffffff;\r\n      --mas-light-yellow:#ffdc74;\r\n      --mas-yellow:#ffd240;\r\n      --mas-gold:#fabc17;\r\n      --mas-dark-gold:#cfa434;\r\n      --mas-black:#000000;\r\n      --mas-ink:#16161a;\r\n      --mas-muted:#55555c;\r\n      --mas-line:#e7e7e7;\r\n      --mas-soft:#fbf7ec;\r\n      --mas-maxw:1240px;\r\n      --mas-pad:40px;\r\n      font-family:inherit;\r\n      color:var(--mas-ink);\r\n      line-height:1.7;\r\n      box-sizing:border-box;\r\n      width:100%;\r\n      overflow-x:clip;\r\n    }\r\n    .mas-publication-wrapper *,\r\n    .mas-publication-wrapper *::before,\r\n    .mas-publication-wrapper *::after{box-sizing:border-box;}\r\n\r\n    \/* ---------- BODY ---------- *\/\r\n    .mas-publication-body{\r\n      max-width:var(--mas-maxw);margin:0 auto;padding:0 var(--mas-pad);\r\n    }\r\n    .mas-publication-details{\r\n      padding:44px 0 12px;border-bottom:1px solid var(--mas-line);\r\n    }\r\n    .mas-publication-block-label{\r\n      font-size:11px;font-weight:800;letter-spacing:1.5px;\r\n      color:var(--mas-dark-gold);text-transform:uppercase;margin:26px 0 8px;\r\n    }\r\n    .mas-publication-details p{margin:0 0 14px;font-size:15px;}\r\n    .mas-publication-disclaimer{\r\n      font-size:13px;color:var(--mas-muted);\r\n      background:#fffbe8;border-left:4px solid var(--mas-gold);\r\n      padding:14px 18px;border-radius:0 8px 8px 0;\r\n    }\r\n\r\n    \/* ---------- TABLE OF CONTENTS ---------- *\/\r\n    .mas-publication-toc{\r\n      background:var(--mas-soft);\r\n      border:1px solid #f0e6c8;\r\n      border-radius:10px;\r\n      padding:28px 30px;\r\n      margin:38px 0;\r\n    }\r\n    .mas-publication-toc h2{\r\n      font-size:22px;font-weight:800;margin:0 0 18px;color:var(--mas-ink);\r\n      padding-bottom:12px;border-bottom:3px solid var(--mas-gold);\r\n    }\r\n    .mas-publication-toc ol{margin:0;padding:0;list-style:none;counter-reset:toc;}\r\n    .mas-publication-toc li{\r\n      counter-increment:toc;border-bottom:1px solid #efe7cf;\r\n    }\r\n    .mas-publication-toc li:last-child{border-bottom:none;}\r\n    .mas-publication-toc a{\r\n      display:flex;align-items:baseline;gap:12px;\r\n      padding:11px 4px;text-decoration:none;color:var(--mas-ink);\r\n      font-size:15px;font-weight:600;transition:color .15s;\r\n    }\r\n    .mas-publication-toc a:hover,\r\n    .mas-publication-toc a.mas-toc-active{color:var(--mas-dark-gold);}\r\n    .mas-publication-toc a::before{\r\n      content:counter(toc, decimal-leading-zero);\r\n      color:var(--mas-dark-gold);font-weight:800;font-size:13px;\r\n      min-width:26px;flex:0 0 auto;\r\n    }\r\n    .mas-publication-toc li.mas-publication-toc-plain{counter-increment:none;}\r\n    .mas-publication-toc li.mas-publication-toc-plain a::before{\r\n      content:\"\\2014\";min-width:26px;text-align:center;font-size:14px;\r\n    }\r\n\r\n    \/* ---------- SECTIONS ---------- *\/\r\n    .mas-publication-section{\r\n      padding:40px 0 6px;scroll-margin-top:80px;\r\n    }\r\n    .mas-publication-section-head{\r\n      display:flex;align-items:center;gap:14px;margin:0 0 22px;\r\n      padding-bottom:14px;border-bottom:3px solid var(--mas-gold);\r\n    }\r\n    .mas-publication-num{\r\n      flex:0 0 auto;width:38px;height:38px;border-radius:7px;\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n      font-weight:800;font-size:18px;display:flex;\r\n      align-items:center;justify-content:center;\r\n    }\r\n    .mas-publication-section-head h2{\r\n      font-size:clamp(22px,3.4vw,30px);font-weight:800;margin:0;\r\n      color:var(--mas-ink);line-height:1.2;\r\n    }\r\n    .mas-publication-eyebrow{\r\n      font-size:11px;font-weight:800;letter-spacing:2px;\r\n      color:var(--mas-dark-gold);text-transform:uppercase;margin:0 0 4px;\r\n    }\r\n    .mas-publication-section h3{\r\n      font-size:19px;font-weight:800;margin:30px 0 10px;color:var(--mas-ink);\r\n    }\r\n    .mas-publication-section h4{\r\n      font-size:16px;font-weight:800;margin:22px 0 8px;color:var(--mas-ink);\r\n    }\r\n    .mas-publication-section p{margin:0 0 16px;font-size:16px;}\r\n    .mas-publication-section ul{margin:0 0 18px;padding-left:22px;}\r\n    .mas-publication-section ul li{margin:0 0 8px;font-size:16px;}\r\n\r\n    \/* ---------- CALLOUT BOXES ---------- *\/\r\n    .mas-publication-statbox{\r\n      background:#fffbe8;border:1px solid #f0e6c8;\r\n      border-left:5px solid var(--mas-gold);border-radius:8px;\r\n      padding:22px 26px;margin:24px 0 30px;\r\n    }\r\n    .mas-publication-statbox .mas-publication-box-title{\r\n      font-size:12px;font-weight:800;letter-spacing:1.5px;\r\n      color:var(--mas-dark-gold);text-transform:uppercase;margin:0 0 12px;\r\n    }\r\n    .mas-publication-statbox ul{margin:0;padding-left:20px;}\r\n    .mas-publication-statbox li{margin:0 0 9px;font-size:15px;}\r\n    .mas-publication-statbox li:last-child{margin-bottom:0;}\r\n\r\n    .mas-publication-note{\r\n      background:#fffdf6;border-left:5px solid var(--mas-gold);\r\n      padding:18px 22px;margin:24px 0 30px;border-radius:0 8px 8px 0;\r\n      font-style:italic;font-size:15px;color:#3a3a40;\r\n    }\r\n    .mas-publication-warning{\r\n      background:#fffbe8;border:2px solid var(--mas-gold);\r\n      border-radius:6px;\r\n      padding:22px 26px;margin:26px 0 30px;\r\n    }\r\n    .mas-publication-warning .mas-publication-box-title{\r\n      font-size:13px;font-weight:800;letter-spacing:1px;\r\n      color:var(--mas-black);text-transform:uppercase;margin:0 0 12px;\r\n    }\r\n    .mas-publication-warning p{margin:0;font-size:15px;color:#222;}\r\n    .mas-publication-warning ul{margin:0;padding-left:20px;}\r\n    .mas-publication-warning li{margin:0 0 10px;font-size:15px;color:#222;}\r\n    .mas-publication-warning li:last-child{margin-bottom:0;}\r\n\r\n\r\n    \/* ---------- STEP ROWS ---------- *\/\r\n    .mas-publication-steps{margin:22px 0 30px;display:grid;gap:12px;}\r\n    .mas-publication-step{\r\n      display:flex;align-items:stretch;gap:0;\r\n      border:1px solid var(--mas-line);border-radius:8px;overflow:hidden;\r\n      background:#fff;\r\n    }\r\n    .mas-publication-step-label{\r\n      flex:0 0 auto;min-width:96px;\r\n      background:var(--mas-dark-gold);color:#fff;\r\n      font-size:11px;font-weight:800;letter-spacing:1.2px;\r\n      text-transform:uppercase;\r\n      display:flex;align-items:center;justify-content:center;\r\n      padding:14px 12px;text-align:center;\r\n    }\r\n    .mas-publication-step-text{\r\n      padding:14px 18px;font-size:15px;color:#39393f;\r\n      display:flex;align-items:center;\r\n    }\r\n\r\n    \/* ---------- FLOW CHAIN ---------- *\/\r\n    .mas-publication-flow{\r\n      display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;\r\n      margin:24px 0 30px;\r\n    }\r\n    .mas-publication-flow-item{\r\n      flex:1 1 180px;background:var(--mas-gold);color:var(--mas-black);\r\n      border-radius:8px;padding:16px 14px;\r\n      font-size:13px;font-weight:800;line-height:1.4;text-align:center;\r\n      display:flex;align-items:center;justify-content:center;\r\n    }\r\n    .mas-publication-flow-arrow{\r\n      flex:0 0 auto;display:flex;align-items:center;justify-content:center;\r\n      font-size:20px;font-weight:800;color:var(--mas-dark-gold);\r\n    }\r\n\r\n    \/* ---------- FORMULA BOX ---------- *\/\r\n    .mas-publication-formula{\r\n      background:#111;color:var(--mas-gold);\r\n      border-radius:8px;padding:20px 24px;margin:18px 0;\r\n      font-size:17px;font-weight:800;text-align:center;letter-spacing:.4px;\r\n    }\r\n\r\n\r\n    \/* ---------- TABLES ---------- *\/\r\n    .mas-publication-table-scroll{\r\n      overflow-x:auto;margin:22px 0 30px;\r\n      -webkit-overflow-scrolling:touch;\r\n    }\r\n    .mas-publication-table{\r\n      width:100%;border-collapse:collapse;min-width:520px;font-size:15px;\r\n    }\r\n    .mas-publication-table th{\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n      text-align:left;padding:13px 16px;font-weight:800;font-size:14px;\r\n    }\r\n    .mas-publication-table td{\r\n      padding:13px 16px;border-bottom:1px solid var(--mas-line);\r\n      vertical-align:top;color:#39393f;\r\n    }\r\n    .mas-publication-table tr:nth-child(even) td{background:#fdfbf3;}\r\n\r\n    \/* ---------- CHECKLIST (static design only) ---------- *\/\r\n    .mas-publication-checklist{list-style:none;margin:18px 0 30px;padding:0;}\r\n    .mas-publication-checklist li{\r\n      position:relative;padding:11px 0 11px 34px;\r\n      border-bottom:1px solid var(--mas-line);font-size:15px;\r\n      cursor:default;\r\n    }\r\n    .mas-publication-checklist li::before{\r\n      content:\"\";position:absolute;left:0;top:14px;\r\n      width:20px;height:20px;border:2px solid var(--mas-gold);\r\n      border-radius:3px;background:var(--mas-white);\r\n      cursor:default;pointer-events:none;\r\n    }\r\n\r\n    \/* ---------- TAKEAWAYS ---------- *\/\r\n    .mas-publication-takeaways{\r\n      margin:26px 0 30px;display:grid;gap:14px;\r\n      grid-template-columns:repeat(2,minmax(0,1fr));\r\n    }\r\n    .mas-publication-takeaway{\r\n      display:flex;gap:16px;border:1px solid var(--mas-line);\r\n      border-left:5px solid var(--mas-gold);border-radius:0 8px 8px 0;\r\n      padding:16px 20px;background:#fff;\r\n    }\r\n    .mas-publication-takeaway-num{\r\n      flex:0 0 auto;width:30px;height:30px;border-radius:50%;\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n      font-weight:800;font-size:15px;display:flex;\r\n      align-items:center;justify-content:center;\r\n    }\r\n    .mas-publication-takeaway h4{margin:0 0 5px;font-size:16px;font-weight:800;}\r\n    .mas-publication-takeaway p{margin:0;font-size:14px;color:#46464c;}\r\n\r\n    \/* ---------- FAQ ACCORDION ---------- *\/\r\n    .mas-publication-faq-item{\r\n      border-bottom:1px solid var(--mas-line);\r\n    }\r\n    .mas-publication-faq-q{\r\n      display:flex;align-items:flex-start;justify-content:space-between;gap:16px;\r\n      width:100%;background:none;border:none;text-align:left;\r\n      font-family:inherit;font-size:17px;font-weight:800;color:var(--mas-ink);\r\n      padding:20px 0;cursor:pointer;line-height:1.45;\r\n    }\r\n    .mas-publication-faq-q:hover{color:var(--mas-dark-gold);}\r\n    .mas-publication-faq-icon{\r\n      flex:0 0 auto;width:26px;height:26px;border-radius:50%;\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n      font-size:17px;font-weight:800;line-height:26px;text-align:center;\r\n      transition:transform .25s ease;\r\n    }\r\n    .mas-publication-faq-item.mas-faq-open .mas-publication-faq-icon{\r\n      transform:rotate(45deg);\r\n    }\r\n    .mas-publication-faq-a{\r\n      max-height:0;overflow:hidden;transition:max-height .3s ease;\r\n    }\r\n    .mas-publication-faq-a p{\r\n      font-size:15px;margin:0 0 20px;color:#3a3a40;padding-right:42px;\r\n    }\r\n\r\n    \/* ---------- CONCLUSION QUOTE ---------- *\/\r\n    .mas-publication-quote{\r\n      background:#111;color:var(--mas-white);\r\n      border-radius:10px;padding:30px 32px;margin:30px 0;\r\n      font-size:18px;font-style:italic;line-height:1.6;\r\n      border-left:6px solid var(--mas-gold);\r\n    }\r\n\r\n    \/* ---------- RESOURCES ---------- *\/\r\n    .mas-publication-res-group{margin:0 0 26px;}\r\n    .mas-publication-res-group h3{\r\n      margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:1.5px;\r\n      color:var(--mas-dark-gold);text-transform:uppercase;\r\n    }\r\n    .mas-publication-res-group ul{margin:0;padding:0;list-style:none;}\r\n    .mas-publication-res-group li{\r\n      margin:0 0 9px;font-size:15px;position:relative;padding-left:20px;\r\n    }\r\n    .mas-publication-resources-list li::before{\r\n      content:\"\\203A\";position:absolute;left:0;top:0;\r\n      color:var(--mas-gold);font-weight:800;font-size:18px;line-height:1.5;\r\n      pointer-events:none;\r\n    }\r\n    .mas-publication-resources-list a{\r\n      color:var(--mas-dark-gold);text-decoration:underline;\r\n      text-underline-offset:3px;position:relative;z-index:10;\r\n      pointer-events:auto;cursor:pointer;\r\n    }\r\n    .mas-publication-resources-list a:hover{color:var(--mas-black);}\r\n\r\n    \/* ---------- STICKY DOWNLOAD BUTTON ---------- *\/\r\n    .mas-publication-download{\r\n      position:fixed;left:0;top:50%;transform:translateY(-50%);\r\n      z-index:9999;\r\n    }\r\n    .mas-publication-download a,\r\n    .mas-publication-download button{\r\n      display:flex;align-items:center;gap:8px;\r\n      writing-mode:vertical-lr;text-orientation:mixed;\r\n      transform:rotate(180deg);\r\n      background:#fabc17 !important;background-color:#fabc17 !important;color:#000000 !important;\r\n      font-weight:800;font-size:13px;letter-spacing:.08em;\r\n      padding:24px 15px;border-radius:6px 0 0 6px;\r\n      text-decoration:none;box-shadow:-4px 0 18px rgba(0,0,0,.28);\r\n      transition:background .15s;border:none !important;cursor:pointer;\r\n      font-family:inherit;white-space:nowrap;\r\n      -webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;\r\n    }\r\n    .mas-publication-download a:hover,\r\n    .mas-publication-download button:hover{background:#cfa434 !important;background-color:#cfa434 !important;color:#fff !important;}\r\n    .mas-publication-download svg{transform:rotate(90deg);}\r\n\r\n    \/* ---------- CF7 MODAL OVERLAY (literal colors - works anywhere) ---------- *\/\r\n    .mas-publication-modal-overlay{\r\n      display:none;\r\n      position:fixed;top:0;left:0;right:0;bottom:0;\r\n      background:rgba(0,0,0,0.65);\r\n      z-index:99999;\r\n      align-items:center;justify-content:center;\r\n    }\r\n    .mas-publication-modal-overlay.mas-publication-modal-open{display:flex !important;}\r\n    .mas-publication-modal{\r\n      background:#ffffff !important;background-color:#ffffff !important;\r\n      border-radius:12px;\r\n      padding:36px 32px 30px;\r\n      max-width:460px;width:92%;\r\n      position:relative;\r\n      box-shadow:0 12px 48px rgba(0,0,0,0.25);\r\n      font-family:inherit;\r\n    }\r\n    .mas-publication-modal-close{\r\n      position:absolute;top:12px;right:14px;\r\n      background:none;border:none;font-size:22px;\r\n      color:#55555c;cursor:pointer;line-height:1;padding:4px 8px;\r\n    }\r\n    .mas-publication-modal-close:hover{color:#000000;}\r\n    .mas-publication-modal h3{\r\n      font-size:20px;font-weight:800;margin:0 0 6px;color:#16161a;\r\n    }\r\n    .mas-publication-modal p{\r\n      font-size:14px;color:#55555c;margin:0 0 20px;\r\n    }\r\n    .mas-publication-modal .wpcf7{margin:0;}\r\n    .mas-publication-modal .wpcf7 label{\r\n      display:block;font-size:14px;font-weight:600;\r\n      color:#16161a;margin:0 0 14px;\r\n    }\r\n    .mas-publication-modal .wpcf7 input[type=\"text\"],\r\n    .mas-publication-modal .wpcf7 input[type=\"email\"],\r\n    .mas-publication-modal .wpcf7 input[type=\"tel\"]{\r\n      width:100%;padding:10px 14px;border:1px solid #e7e7e7;\r\n      border-radius:6px;font-size:15px;margin-top:4px;font-family:inherit;\r\n      background:#ffffff;color:#16161a;\r\n    }\r\n    .mas-publication-modal .wpcf7 input[type=\"submit\"]{\r\n      background:#fabc17 !important;color:#000000 !important;\r\n      border:none;padding:13px 28px;border-radius:6px;\r\n      font-weight:800;font-size:15px;cursor:pointer;\r\n      width:100%;margin-top:6px;font-family:inherit;transition:background .15s;\r\n    }\r\n    .mas-publication-modal .wpcf7 input[type=\"submit\"]:hover{\r\n      background:#cfa434 !important;color:#fff !important;\r\n    }\r\n\r\n    \/* ---------- RESPONSIVE ---------- *\/\r\n    @media (max-width:900px){\r\n      .mas-publication-wrapper{--mas-pad:28px;}\r\n      .mas-publication-takeaways{grid-template-columns:1fr;}\r\n      .mas-publication-section h3{font-size:18px;}\r\n      .mas-publication-flow-arrow{display:none;}\r\n      .mas-publication-flow-item{flex:1 1 100%;}\r\n    }\r\n\r\n    @media (max-width:768px){\r\n      .mas-publication-wrapper{--mas-pad:18px;}\r\n      .mas-publication-toc{padding:22px 20px;}\r\n      .mas-publication-toc a{padding:15px 4px;min-height:48px;}\r\n      .mas-publication-section{padding:32px 0 6px;}\r\n      .mas-publication-section-head{gap:10px;}\r\n      .mas-publication-num{width:32px;height:32px;font-size:15px;}\r\n      .mas-publication-statbox,\r\n      .mas-publication-warning{padding:18px 20px;}\r\n      .mas-publication-step{flex-direction:column;}\r\n      .mas-publication-step-label{min-width:100%;justify-content:flex-start;padding:9px 16px;}\r\n      .mas-publication-faq-q{padding:16px 0;min-height:48px;font-size:16px;}\r\n      .mas-publication-faq-a p{padding-right:0;}\r\n      .mas-publication-quote{padding:24px 22px;font-size:16px;}\r\n\r\n      .mas-publication-download{\r\n        position:fixed;left:0;right:0;bottom:0;top:auto;transform:none;\r\n        width:100%;\r\n      }\r\n      .mas-publication-download a,\r\n      .mas-publication-download button{\r\n        writing-mode:horizontal-tb;text-orientation:initial;transform:none;\r\n        justify-content:center;border-radius:0;\r\n        padding:16px 24px;font-size:15px;\r\n        box-shadow:0 -2px 12px rgba(0,0,0,.18);\r\n        width:100%;\r\n      }\r\n      .mas-publication-download svg{transform:none;}\r\n      .mas-publication-body{padding-bottom:84px;}\r\n      .mas-publication-modal{padding:28px 20px 24px;}\r\n    }\r\n\r\n    @media (max-width:480px){\r\n      .mas-publication-section p,\r\n      .mas-publication-section ul li{font-size:15px;}\r\n      .mas-publication-section-head h2{font-size:21px;}\r\n      .mas-publication-section h3{font-size:17px;}\r\n      .mas-publication-table{min-width:420px;font-size:14px;}\r\n      .mas-publication-formula{font-size:15px;padding:16px 18px;}\r\n      .mas-publication-toc h2{font-size:19px;}\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"mas-publication-body\">\r\n\r\n    <!-- ================= ABOUT \/ DISCLAIMER ================= -->\r\n    <section class=\"mas-publication-details\">\r\n\r\n      <p class=\"mas-publication-block-label\">About This Guide<\/p>\r\n      <p>This guide is designed to help general contractors, project managers, construction bookkeepers, and accountants set up and run job costing correctly inside QuickBooks Online. It covers why job costing matters for construction businesses, how QBO&rsquo;s native project tracking tools work, how to build a clean Chart of Accounts, how to record costs and revenue without bloating the ledger, how to monitor profitability while a project is still active, the mistakes that most often distort financial reporting, the reports job costing makes possible, and how to keep the system scalable as the business grows.<\/p>\r\n\r\n      <p class=\"mas-publication-block-label\">Disclaimer<\/p>\r\n      <p class=\"mas-publication-disclaimer\">This E-Guide is for informational purposes only and does not constitute accounting, tax, or legal advice. Consult a qualified accounting professional for guidance specific to your business.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= TABLE OF CONTENTS ================= -->\r\n    <nav class=\"mas-publication-toc\" aria-label=\"Table of contents\">\r\n      <h2>Table of Contents<\/h2>\r\n      <ol>\r\n        <li class=\"mas-publication-toc-plain\"><a href=\"#executive-summary\">Executive Summary<\/a><\/li>\r\n        <li><a href=\"#section-1\">Why Job Costing Matters in Construction Accounting<\/a><\/li>\r\n        <li><a href=\"#section-2\">Understanding the Foundation of Job Costing in QuickBooks Online<\/a><\/li>\r\n        <li><a href=\"#section-3\">Building a Clean Chart of Accounts for Construction Businesses<\/a><\/li>\r\n        <li><a href=\"#section-4\">Setting Up Job Costing Without Creating New Accounts<\/a><\/li>\r\n        <li><a href=\"#section-5\">Monitoring Job Profitability Throughout the Project<\/a><\/li>\r\n        <li><a href=\"#section-6\">Common Job Costing Mistakes That Complicate Financial Reporting<\/a><\/li>\r\n        <li><a href=\"#section-7\">Reporting and Financial Insights from Proper Job Costing<\/a><\/li>\r\n        <li><a href=\"#section-8\">Building a Scalable Job Costing System for a Growing Construction Business<\/a><\/li>\r\n        <li class=\"mas-publication-toc-plain\"><a href=\"#conclusion\">Conclusion<\/a><\/li>\r\n        <li class=\"mas-publication-toc-plain\"><a href=\"#faq\">Frequently Asked Questions<\/a><\/li>\r\n        <li class=\"mas-publication-toc-plain\"><a href=\"#key-takeaways\">Key Takeaways<\/a><\/li>\r\n        <li class=\"mas-publication-toc-plain\"><a href=\"#resources\">Further Reading &amp; Official Resources<\/a><\/li>\r\n      <\/ol>\r\n    <\/nav>\r\n\r\n    <!-- ================= EXECUTIVE SUMMARY ================= -->\r\n    <section class=\"mas-publication-section\" id=\"executive-summary\">\r\n      <p class=\"mas-publication-eyebrow\">Section Overview<\/p>\r\n      <div class=\"mas-publication-section-head\">\r\n        <h2>Executive Summary<\/h2>\r\n      <\/div>\r\n\r\n      <p>Whether you are a general contractor, a project manager, or a bookkeeper supporting a construction business, this guide will help you understand the full scope of job costing in QuickBooks Online, from why it matters to the practical steps needed to set up, run, and scale a system that keeps your books clean and your project margins visible.<\/p>\r\n\r\n      <p>Job costing is one of the most critical accounting processes in construction, yet it is also one of the most commonly mishandled. Left unmanaged, project expense tracking in QBO quickly turns into a bloated Chart of Accounts, inaccurate gross margins, and financial statements nobody can trust. Most of these problems are not caused by QuickBooks itself, they are caused by using it without the structure job costing actually requires.<\/p>\r\n\r\n      <p>This guide covers the entire job costing lifecycle: why it matters for general contractors, how QBO&rsquo;s native project tools work together, how to build a clean and scalable Chart of Accounts, how to set up job costing without inflating that Chart of Accounts, how to monitor profitability while projects are still active, the mistakes that most often break the numbers, the reports job costing makes possible, and how to keep the system scalable as the business grows.<\/p>\r\n\r\n      <div class=\"mas-publication-statbox\">\r\n        <p class=\"mas-publication-box-title\">Key Statistics<\/p>\r\n        <ul>\r\n          <li>A streamlined Chart of Accounts of roughly <strong>30 to 40 accounts<\/strong> is far easier to maintain than a 500-account ledger bloated with job-specific entries.<\/li>\r\n          <li>Most job costing failures are <strong>structural<\/strong>, adding accounts per job, skipping project tagging, not tracking Labour burden, not fundamentally caused by QuickBooks&rsquo; capabilities.<\/li>\r\n          <li>QBO&rsquo;s <strong>Projects feature<\/strong> tracks income, direct costs, and gross margin per job in real time, without ever touching the Chart of Accounts.<\/li>\r\n          <li>Cost codes that stray more than <strong>5% from estimate<\/strong> are the threshold most contractors use to trigger a variance investigation.<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <p>This guide is optimized for both human readers and AI-assisted search engines (AEO\/GEO), making it a useful reference for anyone responsible for construction job costing.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 1 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-1\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">1<\/span>\r\n        <h2>Why Job Costing Matters in Construction Accounting<\/h2>\r\n      <\/div>\r\n\r\n      <h3>What Is Job Costing?<\/h3>\r\n      <p>Job costing is the accounting methodology of assigning specific revenues and direct costs, materials, Labour, subcontractors, to individual construction projects, rather than lumping them into the business&rsquo;s overall numbers. Instead of waiting to see overall net income at month-end, job costing lets a contractor see the exact gross profit margin on Job A versus Job B while both are still underway.<\/p>\r\n\r\n      <div class=\"mas-publication-note\">\r\n        <strong>The core distinction:<\/strong> financial accounting aggregates overall company health for tax and stakeholder reporting through the P&amp;L and Balance Sheet, while project accounting breaks that same activity down into granular, job-by-job operational performance.\r\n      <\/div>\r\n\r\n      <h3>Why Job Costing Is Essential for General Contractors<\/h3>\r\n      <p>General contractors operate in a high-risk environment defined by thin profit margins, unpredictable material costs, and substantial pass-through expenses. Standard financial accounting only provides a top-level summary at month-end, and that summary can easily hide critical operational flaws, overall company profitability can mask severe losses occurring on individual job sites.<\/p>\r\n\r\n      <p>Job costing provides the real-time cost transparency needed to protect margins, isolate project variances, identify underperforming jobs early, and make sure every contract contributes positively to the bottom line. It gives owners both macro and micro visibility: financial accounting measures business health for tax compliance and executive reporting, while project accounting delivers the operational control needed for daily job site management, catching cost overruns in Labour, materials, or subcontractors before they erode profitability, and replacing end-of-month surprises with continuous visibility into earned revenue versus incurred costs.<\/p>\r\n\r\n      <h3>Why Many Contractors Struggle with Job Costing<\/h3>\r\n      <p>In practice, most contractors run into the same handful of problems:<\/p>\r\n      <ul>\r\n        <li>They mix day-to-day job site management directly into general accounting entries, which creates friction between field and office.<\/li>\r\n        <li>They try to solve job-level tracking by adding job names or sub-accounts directly into the Chart of Accounts, which quickly produces a bloated, unmanageable ledger.<\/li>\r\n        <li>Bills get recorded in bulk without tagging the specific job, leaving no visibility into which project actually consumed the materials or Labour.<\/li>\r\n        <li>Misclassified expenses can skew the overall P&amp;L, making it difficult to draw reliable conclusions about how the business is actually performing.<\/li>\r\n      <\/ul>\r\n\r\n      <h3>Why Setup Matters Before the First Project<\/h3>\r\n      <p>Getting the structure right from day one, before the first project is even underway, prevents having to reclassify thousands of transactions later as the business expands. It also means clean historical job cost data is available to bid competitively on future contracts, since accurate estimating depends on knowing what past jobs actually cost.<\/p>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Why This Matters<\/p>\r\n        <p>Real-time tracking lets project managers catch budget slips while a job is still active, not after it has already closed, and a system built to scale from the start handles fifty projects as seamlessly as it handles five, so growth never forces a rebuild of the books.<\/p>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 2 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-2\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">2<\/span>\r\n        <h2>Understanding the Foundation of Job Costing in QuickBooks Online<\/h2>\r\n      <\/div>\r\n\r\n      <h3>The Role of the Chart of Accounts<\/h3>\r\n      <p>The Chart of Accounts (COA) provides the high-level financial structure a business needs for tax preparation, financial statements, and macro-level analysis. Accounts should describe <em>what<\/em> a transaction is, &ldquo;Subcontractor Expense,&rdquo; for instance, never <em>where<\/em> or <em>for whom<\/em> it was used, such as &ldquo;Subcontractor &ndash; Smith Remodel.&rdquo; A streamlined COA with roughly 30 to 40 well-defined accounts is far easier to maintain and far less prone to coding errors than a 500-account ledger bloated with job-specific entries.<\/p>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">The Guiding Principle<\/p>\r\n        <p>Keep the two layers separate: high-level financial reporting belongs in the Chart of Accounts, while granular job tracking belongs in QBO&rsquo;s built-in project tools.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Layer<\/th><th>What It Handles<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Chart of Accounts<\/td><td>High-level financial reporting &mdash; Revenue, Cost of Goods Sold, and Overhead for tax and financial statements<\/td><\/tr>\r\n            <tr><td>Projects &amp; Items<\/td><td>Job-level cost tracking that captures customer, project, service, labour, class, and location data<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>The Tools QuickBooks Online Provides for Job Costing<\/h3>\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Tool<\/th><th>What It Does<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td><strong>Projects<\/strong><\/td><td>The dedicated hub for tracking income, direct material costs, Labour, and gross margins per job in real time<\/td><\/tr>\r\n            <tr><td><strong>Customers &amp; Sub-customers<\/strong><\/td><td>Maintain the client hierarchy that Projects attach to<\/td><\/tr>\r\n            <tr><td><strong>Products &amp; Services<\/strong><\/td><td>The critical link between transactions and the Chart of Accounts &mdash; Items route costs to the correct Expense or COGS account while simultaneously tagging the relevant Project<\/td><\/tr>\r\n            <tr><td><strong>Classes &amp; Locations<\/strong><\/td><td>Supplementary tools for tracking distinct business divisions, such as residential versus commercial work, or different geographic regions<\/td><\/tr>\r\n            <tr><td><strong>Cost Categories<\/strong><\/td><td>Built-in groupings that automatically sort costs into Labour, Materials, Subcontractors, and Equipment for reporting<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n\r\n      <h3>Understanding How These Tools Work Together<\/h3>\r\n      <p>In practice, these tools work together as a chain:<\/p>\r\n\r\n      <div class=\"mas-publication-flow\">\r\n        <div class=\"mas-publication-flow-item\">Progress Invoice from Item<\/div>\r\n        <div class=\"mas-publication-flow-arrow\">&rarr;<\/div>\r\n        <div class=\"mas-publication-flow-item\">Updates Project &amp; Revenue Accounts<\/div>\r\n        <div class=\"mas-publication-flow-arrow\">&rarr;<\/div>\r\n        <div class=\"mas-publication-flow-item\">Bills \/ Receipts \/ Timesheets Coded to Project<\/div>\r\n        <div class=\"mas-publication-flow-arrow\">&rarr;<\/div>\r\n        <div class=\"mas-publication-flow-item\">QBO Nets Costs vs. Revenue in Projects Hub<\/div>\r\n      <\/div>\r\n\r\n      <p>Progress invoices pull from Products and Services items assigned to a specific Project, which automatically updates both project income and the general revenue accounts. Vendor bills, expense receipts, and employee timesheets get coded to specific direct-cost Items and assigned directly to the target Project, allocating direct costs correctly. From there, QBO automatically nets project-assigned direct costs against project revenue inside the Projects Hub, tracking profitability in real time, and because that job-level detail lives in Projects rather than the Chart of Accounts, company-wide financial statements stay clean and aggregated while Project Profitability reports supply the granular job breakdown separately.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 3 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-3\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">3<\/span>\r\n        <h2>Building a Clean Chart of Accounts for Construction Businesses<\/h2>\r\n      <\/div>\r\n\r\n      <p>A well-structured Chart of Accounts for a general contractor separates direct project costs from general operational overhead:<\/p>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Category<\/th><th>Account<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Income<\/td><td>Construction Revenue<\/td><\/tr>\r\n            <tr><td>Income<\/td><td>Change Order Revenue<\/td><\/tr>\r\n            <tr><td>Income<\/td><td>Service &amp; Maintenance Revenue<\/td><\/tr>\r\n            <tr><td>Cost of Goods Sold (Direct Costs)<\/td><td>Job Costs: Direct Materials<\/td><\/tr>\r\n            <tr><td>Cost of Goods Sold (Direct Costs)<\/td><td>Job Costs: Subcontractor Expenses<\/td><\/tr>\r\n            <tr><td>Cost of Goods Sold (Direct Costs)<\/td><td>Job Costs: Direct Labour (Wages &amp; Burden)<\/td><\/tr>\r\n            <tr><td>Cost of Goods Sold (Direct Costs)<\/td><td>Job Costs: Equipment Rental &amp; Usage<\/td><\/tr>\r\n            <tr><td>Cost of Goods Sold (Direct Costs)<\/td><td>Job Costs: Permits &amp; Inspections<\/td><\/tr>\r\n            <tr><td>Expense (Overhead)<\/td><td>Overhead: Office Payroll<\/td><\/tr>\r\n            <tr><td>Expense (Overhead)<\/td><td>Overhead: Rent &amp; Utilities<\/td><\/tr>\r\n            <tr><td>Expense (Overhead)<\/td><td>Overhead: Insurance &amp; Liability<\/td><\/tr>\r\n            <tr><td>Expense (Overhead)<\/td><td>Overhead: Advertising &amp; Marketing<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n\r\n      <h3>Designing Revenue Accounts<\/h3>\r\n      <p>Construction Revenue captures primary contract billings for main project scopes, while Change Order Revenue isolates approved scope adjustments so you can track how much margin growth comes specifically from contract add-ons. Service and Maintenance Revenue separates smaller, short-term work orders from multi-month capital construction projects, and Other Operating Income records secondary items such as equipment sales or vendor rebates.<\/p>\r\n\r\n      <h3>Organizing Cost Accounts<\/h3>\r\n      <p>On the cost side, direct project costs break into a handful of clear categories:<\/p>\r\n      <ul>\r\n        <li><strong>Materials<\/strong> &mdash; raw building supplies purchased specifically for job execution: lumber, concrete, drywall<\/li>\r\n        <li><strong>Subcontractor costs<\/strong> &mdash; trade-specific payments passed through to electrical, plumbing, or HVAC specialists<\/li>\r\n        <li><strong>Direct Labour<\/strong> &mdash; payroll costs of field workers, site supervisors, and carpenters actively working on job sites<\/li>\r\n        <li><strong>Equipment<\/strong> &mdash; direct job rentals like scaffolding and excavators, along with job-allocated equipment operating costs<\/li>\r\n        <li><strong>Permits and Inspections<\/strong> &mdash; municipal fees, zoning approvals, and safety inspection costs tied to specific builds<\/li>\r\n        <li><strong>Other Direct Project Costs<\/strong> &mdash; a catch-all for things like site dumpsters, temporary fencing, and site security<\/li>\r\n      <\/ul>\r\n\r\n      <h3>Managing Overhead Expenses<\/h3>\r\n      <p>Overhead stays separate from all of this:<\/p>\r\n      <ul>\r\n        <li><strong>Office Payroll<\/strong> &mdash; administrative staff, office managers, and executive leadership not working in the field<\/li>\r\n        <li><strong>Rent and Utilities<\/strong> &mdash; fixed operating costs at corporate offices and storage yards<\/li>\r\n        <li><strong>Insurance<\/strong> &mdash; general liability, commercial auto, and administrative policy premiums<\/li>\r\n        <li><strong>Administrative Expenses<\/strong> &mdash; accounting software, legal fees, and office supplies<\/li>\r\n        <li><strong>Marketing and Business Development<\/strong> &mdash; website maintenance, bidding platforms, and client entertainment<\/li>\r\n      <\/ul>\r\n\r\n      <h3>Avoiding Common Chart of Accounts Mistakes<\/h3>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Most Common Mistake<\/p>\r\n        <p>Creating an account for every project, something like &ldquo;COGS &ndash; 123 Main St,&rdquo; destroys comparative reporting and breaks QBO&rsquo;s built-in reporting engine.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Mistake<\/th><th>Why It Causes Problems<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Excessive account detail<\/td><td>Separate accounts for every screw or lumber size instead of using Products &amp; Services items to track that level of granularity<\/td><\/tr>\r\n            <tr><td>Duplicate expense categories<\/td><td>Having both &ldquo;Materials&rdquo; under COGS and &ldquo;Supplies&rdquo; under Overhead with no clear rule for which to use<\/td><\/tr>\r\n            <tr><td>Inconsistent account usage<\/td><td>Coding a plumber to &ldquo;Subcontractor Expense&rdquo; on one job and &ldquo;Repairs &amp; Maintenance&rdquo; on another<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <p>Each of these produces the same underlying failure: a Chart of Accounts that no longer tells a consistent story about what the business spent money on, which makes both tax preparation and year-over-year comparison significantly harder than they need to be.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 4 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-4\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">4<\/span>\r\n        <h2>Setting Up Job Costing Without Creating New Accounts<\/h2>\r\n      <\/div>\r\n\r\n      <p>Instead of inflating the Chart of Accounts, QBO&rsquo;s internal sub-structures handle job costing dynamically:<\/p>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Item<\/th><th>Type<\/th><th>Maps To<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Framing Material<\/td><td>Non-inventory \/ Service<\/td><td>COGS: Job Costs &ndash; Materials<\/td><\/tr>\r\n            <tr><td>Electrical Sub<\/td><td>Service<\/td><td>COGS: Job Costs &ndash; Subcontractor<\/td><\/tr>\r\n            <tr><td>Field Labour Hours<\/td><td>Service<\/td><td>COGS: Job Costs &ndash; Direct Labour<\/td><\/tr>\r\n            <tr><td>Progress Billing<\/td><td>Service<\/td><td>Income: Construction Revenue<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Creating Customer Projects<\/h3>\r\n      <p>Start by entering the primary client entity in the Customers menu, &ldquo;Apex Commercial Properties,&rdquo; for example. Individual projects are then created under the Projects tab by clicking New Project and linking it directly to that parent customer, and multiple jobs for the same client stay organized as separate Projects under one parent Customer, such as &ldquo;Apex &ndash; Building A&rdquo; and &ldquo;Apex &ndash; Building B.&rdquo;<\/p>\r\n\r\n      <div class=\"mas-publication-note\">\r\n        <strong>Naming convention:<\/strong> a clear standard across the company, something like [Project Number] &ndash; [Project Name], e.g. &ldquo;2026-08 &ndash; Smith Residence,&rdquo; keeps this consistent as the project list grows.\r\n      <\/div>\r\n\r\n      <p>The process generally unfolds in the order below:<\/p>\r\n\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 1<\/div>\r\n          <div class=\"mas-publication-step-text\">Navigate to Customers Hub &rarr; Add New Customer (e.g., &ldquo;Apex Properties&rdquo;).<\/div>\r\n        <\/div>\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 2<\/div>\r\n          <div class=\"mas-publication-step-text\">Navigate to Projects Hub &rarr; Create Project 1 (e.g., &ldquo;2026-01 Apex Phase 1&rdquo;).<\/div>\r\n        <\/div>\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 3<\/div>\r\n          <div class=\"mas-publication-step-text\">Navigate to Projects Hub &rarr; Create Project 2 (e.g., &ldquo;2026-02 Apex Phase 2&rdquo;).<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <h3>Using Products and Services Effectively<\/h3>\r\n      <p>Labour items should map to COGS: Direct Labour so wage allocations flow smoothly, while material items map to COGS: Direct Materials and equipment usage items map to COGS: Equipment Expense. Subcontracted services map to COGS: Subcontractor Expenses. Change orders get their own dedicated &ldquo;Change Order&rdquo; service item mapped to Income: Change Order Revenue, so contract variations can be tracked cleanly and separately from the original scope.<\/p>\r\n\r\n      <h3>Recording Project Costs Correctly<\/h3>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">The Step Most Often Skipped<\/p>\r\n        <p>When entering vendor bills and expenses, the specific Project needs to be assigned in the Customer\/Project column on every line item, this is the step that most often gets skipped and causes cost data to go missing.<\/p>\r\n      <\/div>\r\n\r\n      <p>Vendor payments should clear against the original bill to keep liability accounts balanced. Employee time and payroll allocation flow through QBO Time or native payroll time-tracking, coding hours directly to specific Projects, and purchase orders, where used, get tagged to Projects too, locking in committed costs before the actual bills arrive.<\/p>\r\n\r\n      <h3>Tracking Project Revenue<\/h3>\r\n      <p>On the revenue side, estimates created directly within the Project hub set the baseline budget for that job. Progress invoices generated off those approved estimates bill percentage-of-completion by item, and incoming customer payments get applied directly against those progress invoices to keep project cash flow accurate. Retainage, contractual withholdings, is best tracked using a dedicated &ldquo;Retainage Receivable&rdquo; asset account rather than left sitting as unpaid invoice balances, which keeps those held-back amounts visible instead of looking like overdue income.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 5 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-5\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">5<\/span>\r\n        <h2>Monitoring Job Profitability Throughout the Project<\/h2>\r\n      <\/div>\r\n\r\n      <p>Job costing provides value during project execution, not just after the job is finished. The two things worth watching continuously are Estimate versus Actual, comparing the original budget against live spend in real time, and Work in Progress, matching percentage of completion against billed revenue to catch billing gaps before they become a problem. Together, these catch Labour or material cost overruns while the project is still active, when there is still time to do something about it.<\/p>\r\n\r\n      <h3>Tracking Project Income and Costs<\/h3>\r\n      <p>The Project Dashboard tracks total recognized billings and unbilled contract value as revenue earned, alongside live totals across Labour, materials, equipment, and subcontractors as direct costs. From those two numbers:<\/p>\r\n\r\n      <div class=\"mas-publication-formula\">Gross Profit = Earned Revenue &minus; Total Direct Costs<\/div>\r\n      <div class=\"mas-publication-formula\">Gross Margin % = (Gross Profit &divide; Earned Revenue) &times; 100<\/div>\r\n\r\n\r\n      <h3>Reviewing Project Performance<\/h3>\r\n      <p>Running Estimate vs. Actual reports regularly is what surfaces variances in specific cost categories before they compound into something bigger. That means comparing estimated Labour hours against actual timesheet entries logged on site, watching for supplier price surges or job-site waste early in the procurement phase, and verifying that subcontractor pay applications actually match agreed scope completions before releasing funds.<\/p>\r\n\r\n      <h3>Monitoring Work in Progress<\/h3>\r\n      <p>For jobs still underway, it is worth tracking total active job inventory and total open commitments across every live site.<\/p>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">The Core Thing to Watch<\/p>\r\n        <p>Under-billing means incurring costs without invoicing for them, while over-billing means invoicing ahead of physical progress, and both distort the picture of how a job is actually doing. Catching that mismatch early is what uncovers hidden margin slip on long-term contracts before it turns into a surprise at year-end closing.<\/p>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 6 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-6\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">6<\/span>\r\n        <h2>Common Job Costing Mistakes That Complicate Financial Reporting<\/h2>\r\n      <\/div>\r\n\r\n      <p>Avoid these recurring pitfalls that derail job costing systems and distort company financials:<\/p>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Pitfall<\/th><th>Effect<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Creating COA Accounts per Job<\/td><td>Bloats the GL; ruins year-over-year comparative analysis<\/td><\/tr>\r\n            <tr><td>Inconsistent Cost Coding<\/td><td>Distorts line-item profit tracking across projects<\/td><\/tr>\r\n            <tr><td>Omitting Direct Labour Burden<\/td><td>Understates true Labour costs; inflates apparent margins<\/td><\/tr>\r\n            <tr><td>Bypassing the QBO Projects Module<\/td><td>Scatters job data across unlinked, manual reports<\/td><\/tr>\r\n            <tr><td>Mixing Overhead with Direct Costs<\/td><td>Misleads estimating teams and overstates COGS<\/td><\/tr>\r\n            <tr><td>Failing to Reconcile WIP<\/td><td>Creates year-end accounting and tax surprises<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>A Closer Look: Creating Accounts for Every Project<\/h3>\r\n      <p>Adding something like &ldquo;101 Main St&rdquo; directly to the Chart of Accounts makes year-over-year comparative P&amp;L analysis nearly impossible, causes the Balance Sheet and P&amp;L to sprawl across dozens of unnecessary pages, and requires constant archiving of inactive accounts as jobs wrap up.<\/p>\r\n\r\n      <h3>Recording Costs Inconsistently<\/h3>\r\n      <p>Entering a dumpster rental as &ldquo;Office Expense&rdquo; on one bill and &ldquo;Job Costs&rdquo; on another leads to misclassified and missing project costs, which in turn produces job profitability reports that understate what a project actually cost.<\/p>\r\n\r\n      <h3>Ignoring Labour Allocation<\/h3>\r\n      <p>Counting only raw hourly wages while ignoring Labour burden, payroll taxes, workers&rsquo; comp, health insurance, understates true project costs and shows artificially high job margins, which overstates real profitability and leads directly to bids priced under true breakeven cost.<\/p>\r\n\r\n      <h3>Failing to Use Projects Consistently<\/h3>\r\n      <p>Recording some expenses to Projects while coding others directly to general accounts leaves job profitability incomplete, forces bookkeepers to manually reconstruct spreadsheets to find true job totals, and eliminates the ability to run standardized post-project reviews.<\/p>\r\n\r\n      <h3>Mixing Direct and Overhead Costs<\/h3>\r\n      <p>Charging general shop tools or administrative salaries as direct job costs produces incorrect project margins and a false impression of both job efficiency and overall overhead needs, which flows straight into miscalculated markup formulas on future proposals.<\/p>\r\n\r\n      <h3>Failing to Reconcile Work in Progress<\/h3>\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Important Note<\/p>\r\n        <p>WIP that never gets reconciled against actual billing and cost data tends to hide itself all year and then surface all at once at year-end close, turning what should have been small, catchable variances into a large, unpleasant surprise. Reconciling WIP on a regular cadence, not just at year-end, is what keeps that from happening.<\/p>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 7 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-7\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">7<\/span>\r\n        <h2>Reporting and Financial Insights from Proper Job Costing<\/h2>\r\n      <\/div>\r\n\r\n      <p>When set up correctly, QBO yields real-time data that drives strategic business decisions, best used through a repeatable review cycle:<\/p>\r\n\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 1<\/div>\r\n          <div class=\"mas-publication-step-text\">Run Project Profitability Report in QBO.<\/div>\r\n        <\/div>\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 2<\/div>\r\n          <div class=\"mas-publication-step-text\">Compare Estimates vs. Actuals by cost code.<\/div>\r\n        <\/div>\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 3<\/div>\r\n          <div class=\"mas-publication-step-text\">Evaluate Labour &amp; Subcontractor Variances.<\/div>\r\n        <\/div>\r\n        <div class=\"mas-publication-step\">\r\n          <div class=\"mas-publication-step-label\">Step 4<\/div>\r\n          <div class=\"mas-publication-step-text\">Adjust Bidding &amp; Estimating Rates for future proposals.<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <h3>Project Profitability Reports<\/h3>\r\n      <p>These reports show gross profit by project in a single consolidated dashboard, break down revenue versus costs across Labour, materials, and subcontractors against contract revenue, and let you filter between active job monitoring and closed historical jobs.<\/p>\r\n\r\n      <h3>Financial Reports<\/h3>\r\n      <p>The Profit and Loss statement shows macro company profitability with clean, unbloated COGS line items, while the Balance Sheet tracks current assets, retainage receivables, and short-term vendor liabilities. Job cost summaries give partners and leadership a condensed, executive-level rollup per project, and income-by-customer-or-project reporting verifies overall customer lifetime value across multi-project relationships.<\/p>\r\n\r\n      <h3>Using Job Costing to Improve Business Decisions<\/h3>\r\n      <p>Historical job cost data feeds directly back into future bids, updating bid assemblies with actual historical unit costs rather than supplier guesses leads to more accurate estimating and better bid pricing, since you know your real baseline costs well enough to price a contract that works for both sides. That same data helps shift crews away from low-margin work toward the most profitable job types, and reveals whether the business genuinely makes better returns on residential remodels or commercial build-outs.<\/p>\r\n\r\n      <h3>Reviewing Job Performance Regularly<\/h3>\r\n      <p>None of this works as a one-time setup, it needs a review rhythm.<\/p>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Monthly Review Standard<\/p>\r\n        <p>Monthly project reviews with project managers should cover budget-to-actual variances, with any cost code that strays more than 5% from estimate worth investigating on its own.<\/p>\r\n      <\/div>\r\n\r\n      <p>Tracking material pricing trends across multiple projects over time creates leverage to negotiate bulk supplier discounts, and running a post-job &ldquo;autopsy&rdquo; on completed projects before closing them out in QBO is what turns each finished job into useful data for the next bid.<\/p>\r\n    <\/section>\r\n\r\n    <!-- ================= SECTION 8 ================= -->\r\n    <section class=\"mas-publication-section\" id=\"section-8\">\r\n      <div class=\"mas-publication-section-head\">\r\n        <span class=\"mas-publication-num\">8<\/span>\r\n        <h2>Building a Scalable Job Costing System for a Growing Construction Business<\/h2>\r\n      <\/div>\r\n\r\n      <p>A sustainable job costing system relies on standardized routines and seamless field-to-office communication:<\/p>\r\n\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Cadence<\/th><th>Routine<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td><strong>Weekly<\/strong><\/td><td>Approve field timesheets and code hours to specific Projects<\/td><\/tr>\r\n            <tr><td><strong>Weekly<\/strong><\/td><td>Review open Purchase Orders and match incoming vendor bills<\/td><\/tr>\r\n            <tr><td><strong>Monthly<\/strong><\/td><td>Run Project Profitability reports and review Estimate vs. Actuals<\/td><\/tr>\r\n            <tr><td><strong>Monthly<\/strong><\/td><td>Reconcile Retainage Receivables and open Progress Invoices<\/td><\/tr>\r\n            <tr><td><strong>Quarterly<\/strong><\/td><td>Update item cost baselines in Products &amp; Services for future bids<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n\r\n      <h3>Standardizing Accounting Procedures<\/h3>\r\n      <p>Every new contract should follow the same setup checklist, using standardized Products and Services items across all job entries so cost coding stays uniform. Requiring purchase orders and receipts for every field purchase, and routing vendor bills through project managers for approval before bookkeeping finalizes them, keeps documentation consistent as volume grows.<\/p>\r\n\r\n      <h3>Integrating Field Operations with Accounting<\/h3>\r\n      <p>Mobile time-tracking tools like QBO Time let field crews log hours directly to assigned Projects instead of after the fact. Field superintendents attaching receipt photos and job tags to credit card charges keeps purchase documentation tied to the right job from the start. Scope changes need to be documented, approved by the client, and added to the QBO estimate before work begins, not after, and regular weekly job-status syncs keep field superintendents and back-office accountants aligned on where each project actually stands.<\/p>\r\n\r\n      <h3>What an Effective Job Costing System Should Provide<\/h3>\r\n      <p>Done well, this setup gives a contractor an accurate read on the exact gross margin of every project, a clean and professional Chart of Accounts that external accountants and auditors can actually work with, and reliable cost tracking with no missing or unallocated costs across active job sites.<\/p>\r\n\r\n      <ul class=\"mas-publication-checklist\">\r\n        <li>Supports better bidding decisions instead of under-bidding jobs<\/li>\r\n        <li>Gives tighter control over progress billings, retainage, and vendor payables for cash flow visibility<\/li>\r\n        <li>Scales to more projects without needing to rebuild the accounting system<\/li>\r\n        <li>Produces the kind of clean financial reporting that builds credibility with banks, bonding companies, and tax advisors<\/li>\r\n      <\/ul>\r\n    <\/section>\r\n\r\n    <!-- ================= CONCLUSION ================= -->\r\n    <section class=\"mas-publication-section\" id=\"conclusion\">\r\n      <p class=\"mas-publication-eyebrow\">Final Thoughts<\/p>\r\n      <div class=\"mas-publication-section-head\">\r\n        <h2>Conclusion: Why Simplicity Creates Better Job Costing<\/h2>\r\n      <\/div>\r\n      <p>Effective job costing isn&rsquo;t about creating more accounts, it&rsquo;s about using the right QuickBooks Online features to organize project data while keeping the Chart of Accounts focused on financial reporting. By separating project tracking from the general accounting structure, general contractors can monitor real-time profitability, control job site costs, and produce clean financial statements without unnecessary complexity.<\/p>\r\n      <div class=\"mas-publication-quote\">\r\n        A well-designed job costing system improves estimating accuracy, supports better project management, and provides the financial visibility needed to grow a construction business with total confidence.\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= FAQ ================= -->\r\n    <section class=\"mas-publication-section\" id=\"faq\">\r\n      <p class=\"mas-publication-eyebrow\">Reference<\/p>\r\n      <div class=\"mas-publication-section-head\">\r\n        <h2>Frequently Asked Questions<\/h2>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>Can I track job costs in QuickBooks Online without creating a new account for every project?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>Yes. QBO&rsquo;s Projects feature, combined with Customers, Sub-customers, and Products &amp; Services items, tracks income and direct costs per job without ever touching the Chart of Accounts. The COA stays focused on what a transaction is (materials, Labour, subcontractor), while Projects tracks who or where it was for. This is the entire point of the setup this guide describes.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>What is the difference between the Chart of Accounts and the Projects feature?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>The Chart of Accounts handles high-level financial reporting, Revenue, COGS, and Overhead for tax filing and financial statements. Projects handles granular job-level tracking, Customers, Products &amp; Services, Labour hours, and Class or Location tags. Mixing the two by adding job-specific accounts to the COA is the single most common mistake in construction bookkeeping.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>Why does my Chart of Accounts keep growing every time we start a new job?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>This happens when bookkeepers add a new COGS or expense account per project instead of using QBO&rsquo;s Projects and Products &amp; Services tools. The fix is to keep the COA at roughly 30 to 40 well-defined accounts describing transaction types, and let Projects carry all job-specific detail instead.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>What is Labour burden, and why does leaving it out matter?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>Labour burden includes payroll taxes, workers&rsquo; comp, and health insurance costs layered on top of raw hourly wages. Counting only the wage and ignoring burden understates true project costs, inflates apparent margins, and can lead directly to future bids priced under true breakeven cost.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>What is the difference between under-billing and over-billing on a project?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>Under-billing means a contractor has incurred costs on a job without yet invoicing for that work, which understates cash position. Over-billing means invoicing ahead of physical progress, which can mask a project that is actually behind. Both distort the true picture of how a job is performing and should be monitored through regular Work in Progress reconciliation.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-faq-item\">\r\n        <button type=\"button\" class=\"mas-publication-faq-q\">\r\n          <span>How often should Estimate vs. Actual reports be reviewed?<\/span>\r\n          <span class=\"mas-publication-faq-icon\" aria-hidden=\"true\">+<\/span>\r\n        <\/button>\r\n        <div class=\"mas-publication-faq-a\">\r\n          <p>Most contractors review these monthly, as part of a broader project review with project managers covering budget-to-actual variances. Any individual cost code that strays more than 5% from its estimate is generally worth investigating on its own before it compounds into a larger problem.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= KEY TAKEAWAYS ================= -->\r\n    <section class=\"mas-publication-section\" id=\"key-takeaways\">\r\n      <p class=\"mas-publication-eyebrow\">Summary<\/p>\r\n      <div class=\"mas-publication-section-head\">\r\n        <h2>Key Takeaways<\/h2>\r\n      <\/div>\r\n      <div class=\"mas-publication-takeaways\">\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">1<\/span><div><h4>Two separate layers.<\/h4><p>The Chart of Accounts and the Projects feature are two separate layers, keep them that way.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">2<\/span><div><h4>A clean COA runs 30 to 40 accounts.<\/h4><p>Never one account per job. Accounts describe what a transaction is, not who or where it was for.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">3<\/span><div><h4>Tag every transaction to a Project.<\/h4><p>Every bill, receipt, and timesheet needs a Project assigned, this is the step most often skipped.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">4<\/span><div><h4>Gross Profit = Earned Revenue &minus; Total Direct Costs.<\/h4><p>Tracked while the job is still active, not after it has closed.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">5<\/span><div><h4>Labour burden belongs in Direct Labour.<\/h4><p>Leave it out and margins are artificially inflated, which flows straight into under-priced bids.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">6<\/span><div><h4>Reconcile WIP on a cadence.<\/h4><p>Work in Progress needs regular reconciliation, not just a year-end scramble.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">7<\/span><div><h4>Review monthly.<\/h4><p>Monthly Project Profitability and Estimate vs. Actual reviews catch variances before they compound.<\/p><\/div><\/div>\r\n        <div class=\"mas-publication-takeaway\"><span class=\"mas-publication-takeaway-num\">8<\/span><div><h4>Standardised routines create scale.<\/h4><p>Weekly, monthly, and quarterly routines are what let the system scale from five projects to fifty.<\/p><\/div><\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- ================= RESOURCES ================= -->\r\n    <section class=\"mas-publication-section\" id=\"resources\">\r\n      <p class=\"mas-publication-eyebrow\">Resources<\/p>\r\n      <div class=\"mas-publication-section-head\">\r\n        <h2>Further Reading &amp; Official Resources<\/h2>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-res-group mas-publication-resources-list\">\r\n        <h3>QuickBooks Online Official Resources<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/quickbooks.intuit.com\/learn-support\/en-us\/help-article\/manage-projects\/set-create-projects-quickbooks-online\/L9GAdLMyT_US_en_US\" target=\"_blank\" rel=\"noopener\">Create and Set Up Projects in QuickBooks Online<\/a><\/li>\r\n          <li><a href=\"https:\/\/quickbooks.intuit.com\/accounting\/job-costing\/\" target=\"_blank\" rel=\"noopener\">Job Costing with QuickBooks: Overview and Best Practices<\/a><\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-res-group mas-publication-resources-list\">\r\n        <h3>Construction Accounting Resources<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/www.foundationsoft.com\/learn\/job-costing-quickbooks\/\" target=\"_blank\" rel=\"noopener\">Ways to Approach Job Costing in QuickBooks Online<\/a><\/li>\r\n          <li><a href=\"https:\/\/www.waterfordbusinesssolutions.com\/quicksbooksjobandprojectcosting\/\" target=\"_blank\" rel=\"noopener\">Job Costing and Project Costing in QuickBooks Online for Contractors<\/a><\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-res-group mas-publication-resources-list\">\r\n        <h3>Official IRS and Government Resources<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/www.irs.gov\/businesses\/small-businesses-self-employed\/recordkeeping\" target=\"_blank\" rel=\"noopener\">IRS: Recordkeeping for Business Taxpayers<\/a><\/li>\r\n          <li><a href=\"https:\/\/www.irs.gov\/pub\/irs-pdf\/p583.pdf\" target=\"_blank\" rel=\"noopener\">IRS Publication 583: Starting a Business and Keeping Records<\/a><\/li>\r\n          <li><a href=\"https:\/\/www.irs.gov\/businesses\/small-businesses-self-employed\" target=\"_blank\" rel=\"noopener\">IRS: Small Business and Self-Employed Tax Center<\/a><\/li>\r\n          <li><a href=\"https:\/\/www.sba.gov\/business-guide\/manage-your-business\/manage-your-finances\" target=\"_blank\" rel=\"noopener\">SBA: Manage Your Finances &ndash; Business Guide<\/a><\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-res-group mas-publication-resources-list\">\r\n        <h3>Related MASPARTNER Articles<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/maspartner.com\/en-us\/blog\/e-commerce-accounting-amazon-shopify-walmart-guide\/\" target=\"_blank\" rel=\"noopener\">Multi-channel Ecommerce Accounting<\/a><\/li>\r\n          <li><a href=\"https:\/\/maspartner.com\/en-us\/accounting-bookkeeping\/quickbooks-amazon-integration-fba-accounting\/\" target=\"_blank\" rel=\"noopener\">QuickBooks Amazon Integration Limitations<\/a><\/li>\r\n          <li><a href=\"https:\/\/maspartner.com\/en-us\/\" target=\"_blank\" rel=\"noopener\">Multi-state Sales Tax Filing<\/a><\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n    <\/section>\r\n\r\n  <\/div><!-- \/.mas-publication-body -->\r\n\r\n  <!-- ================= STICKY DOWNLOAD BUTTON (triggers CF7 modal) ================= -->\r\n  <div class=\"mas-publication-download\">\r\n    <button type=\"button\"\r\n       id=\"mas-publication-download-btn\"\r\n       title=\"Download PDF of this Publication\"\r\n       aria-label=\"Download PDF of this Publication\">\r\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3v12\"\/><path d=\"m7 10 5 5 5-5\"\/><path d=\"M5 21h14\"\/><\/svg>\r\n      Download PDF of this Publication\r\n    <\/button>\r\n  <\/div>\r\n\r\n  <!-- ================= CF7 MODAL POPUP ================= -->\r\n  <!-- CF7 Form ID: d62a501 (title: Publication) -->\r\n  <!-- User must add an Elementor Shortcode widget below this Custom HTML widget -->\r\n  <div class=\"mas-publication-modal-overlay\" id=\"mas-publication-modal\">\r\n    <div class=\"mas-publication-modal\">\r\n      <button type=\"button\" class=\"mas-publication-modal-close\" id=\"mas-publication-modal-close\" aria-label=\"Close\">&times;<\/button>\r\n      <h3>Download This E-Guide<\/h3>\r\n      <p>Enter your details below to receive the PDF.<\/p>\r\n      <div id=\"mas-publication-cf7-slot\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n  (function(){\r\n    var wrap = document.currentScript ? document.currentScript.closest('.mas-publication-wrapper') : null;\r\n    if(!wrap){\r\n      var all = document.querySelectorAll('.mas-publication-wrapper');\r\n      wrap = all[all.length-1];\r\n    }\r\n    if(!wrap) return;\r\n\r\n    \/\/ ---------- 0. CF7 MODAL: move form into modal + open\/close\/submit ----------\r\n    var cf7Attempts = 0;\r\n    var cf7Interval = setInterval(function(){\r\n      cf7Attempts++;\r\n      var cf7Form = document.querySelector('.wpcf7');\r\n      var cf7Slot = document.getElementById('mas-publication-cf7-slot');\r\n      if(cf7Form && cf7Slot){\r\n        clearInterval(cf7Interval);\r\n        var cf7Parent = cf7Form.closest('.elementor-widget-shortcode') || cf7Form.closest('.elementor-widget');\r\n        if(cf7Parent){ cf7Parent.style.display = 'none'; }\r\n        cf7Slot.appendChild(cf7Form);\r\n        cf7Form.style.display = 'block';\r\n        if(window.wpcf7 && typeof wpcf7.init === 'function'){\r\n          var innerForm = cf7Form.querySelector('form');\r\n          if(innerForm){ wpcf7.init(innerForm); }\r\n        }\r\n        if(window.wpcf7 && typeof wpcf7.initForm === 'function'){\r\n          var allForms = cf7Slot.querySelectorAll('.wpcf7-form');\r\n          allForms.forEach(function(f){ wpcf7.initForm(f); });\r\n        }\r\n      }\r\n      if(cf7Attempts > 50){ clearInterval(cf7Interval); }\r\n    }, 100);\r\n\r\n    var downloadBtn = document.getElementById('mas-publication-download-btn');\r\n    var modal = document.getElementById('mas-publication-modal');\r\n    var closeBtn = document.getElementById('mas-publication-modal-close');\r\n\r\n    if(downloadBtn && modal){\r\n      downloadBtn.addEventListener('click', function(e){\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        modal.classList.add('mas-publication-modal-open');\r\n      }, true);\r\n    }\r\n    if(closeBtn && modal){\r\n      closeBtn.addEventListener('click', function(){\r\n        modal.classList.remove('mas-publication-modal-open');\r\n      });\r\n    }\r\n    if(modal){\r\n      modal.addEventListener('click', function(e){\r\n        if(e.target === modal){\r\n          modal.classList.remove('mas-publication-modal-open');\r\n        }\r\n      });\r\n    }\r\n\r\n    document.addEventListener('wpcf7mailsent', function(event){\r\n      var modalEl = document.getElementById('mas-publication-modal');\r\n      if(modalEl){\r\n        var modalInner = modalEl.querySelector('.mas-publication-modal');\r\n        if(modalInner){\r\n          modalInner.innerHTML = '<button type=\"button\" class=\"mas-publication-modal-close\" onclick=\"document.getElementById(\\'mas-publication-modal\\').classList.remove(\\'mas-publication-modal-open\\')\" aria-label=\"Close\">&times;<\/button>'\r\n            + '<h3 style=\"color:#16161a;\">Thank You!<\/h3>'\r\n            + '<p style=\"color:#55555c;\">Your download is ready.<\/p>'\r\n            + '<a href=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/08\/How-to-Set-Up-Job-Costing-in-QuickBooks-Online-for-a-General-Contractor.pdf.pdf\" target=\"_blank\" rel=\"noopener\" '\r\n            + 'style=\"display:block;text-align:center;background:#fabc17;color:#000;'\r\n            + 'font-weight:800;font-size:15px;padding:14px 28px;border-radius:6px;'\r\n            + 'text-decoration:none;margin-top:10px;\">Download PDF Now<\/a>';\r\n        }\r\n      }\r\n    }, false);\r\n\r\n    \/\/ ---------- 1. SMOOTH SCROLL FOR TOC ----------\r\n    var OFFSET = 70;\r\n    var tocLinks = wrap.querySelectorAll('.mas-publication-toc a[href^=\"#\"]');\r\n    tocLinks.forEach(function(link){\r\n      link.addEventListener('click', function(e){\r\n        var id = link.getAttribute('href').slice(1);\r\n        var target = wrap.querySelector('#' + (window.CSS && CSS.escape ? CSS.escape(id) : id))\r\n                  || document.getElementById(id);\r\n        if(target){\r\n          e.preventDefault();\r\n          var top = target.getBoundingClientRect().top + window.pageYOffset - OFFSET;\r\n          window.scrollTo({ top: top, behavior: 'smooth' });\r\n          if(history.replaceState){ history.replaceState(null, '', '#' + id); }\r\n        }\r\n      });\r\n    });\r\n\r\n    \/\/ ---------- 2. ACTIVE TOC HIGHLIGHT ON SCROLL ----------\r\n    var sections = wrap.querySelectorAll('.mas-publication-section[id]');\r\n    function masSetActive(){\r\n      var pos = window.pageYOffset + OFFSET + 10;\r\n      var currentId = null;\r\n      sections.forEach(function(sec){\r\n        if(sec.offsetTop <= pos){ currentId = sec.getAttribute('id'); }\r\n      });\r\n      tocLinks.forEach(function(l){\r\n        if(currentId && l.getAttribute('href') === '#' + currentId){\r\n          l.classList.add('mas-toc-active');\r\n        } else {\r\n          l.classList.remove('mas-toc-active');\r\n        }\r\n      });\r\n    }\r\n    var ticking = false;\r\n    window.addEventListener('scroll', function(){\r\n      if(!ticking){\r\n        window.requestAnimationFrame(function(){ masSetActive(); ticking = false; });\r\n        ticking = true;\r\n      }\r\n    }, { passive: true });\r\n    masSetActive();\r\n\r\n    \/\/ ---------- 3. FAQ ACCORDION ----------\r\n    wrap.querySelectorAll('.mas-publication-faq-q').forEach(function(btn){\r\n      btn.addEventListener('click', function(e){\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        var item = btn.closest('.mas-publication-faq-item');\r\n        var panel = item.querySelector('.mas-publication-faq-a');\r\n        var isOpen = item.classList.contains('mas-faq-open');\r\n        if(isOpen){\r\n          panel.style.maxHeight = null;\r\n          item.classList.remove('mas-faq-open');\r\n        } else {\r\n          item.classList.add('mas-faq-open');\r\n          panel.style.maxHeight = panel.scrollHeight + 'px';\r\n        }\r\n      }, true);\r\n    });\r\n    window.addEventListener('resize', function(){\r\n      wrap.querySelectorAll('.mas-publication-faq-item.mas-faq-open').forEach(function(item){\r\n        var panel = item.querySelector('.mas-publication-faq-a');\r\n        panel.style.maxHeight = panel.scrollHeight + 'px';\r\n      });\r\n    });\r\n\r\n    \/\/ ---------- 4. MOBILE CLEARANCE FOR STICKY PDF BAR ----------\r\n    function masMobilePad(){\r\n      var body = wrap.querySelector('.mas-publication-body');\r\n      if(!body) return;\r\n      body.style.paddingBottom = (window.innerWidth <= 768) ? '84px' : '';\r\n    }\r\n    masMobilePad();\r\n    window.addEventListener('resize', masMobilePad);\r\n\r\n    \/\/ ---------- 5. FORCE LINKS TO OPEN ON CLICK (Elementor intercepts events) ----------\r\n    function masForceClick(selector, newTab){\r\n      document.querySelectorAll(selector).forEach(function(el){\r\n        el.addEventListener('click', function(e){\r\n          e.stopPropagation();\r\n          var href = (this.getAttribute('href') || '').trim();\r\n          href = href.replace(\/^\\[+\/, '').replace(\/\\]+$\/, '').trim();\r\n          var isReal = \/^https?:\\\/\\\/\/i.test(href) || href.charAt(0) === '\/';\r\n          if(!isReal){ e.preventDefault(); return; }\r\n          e.preventDefault();\r\n          if(newTab){\r\n            window.open(href, '_blank', 'noopener,noreferrer');\r\n          } else {\r\n            window.location.href = href;\r\n          }\r\n        }, true); \/\/ useCapture = true \u2014 fires before Elementor's bubble-phase handlers\r\n      });\r\n    }\r\n\r\n    masForceClick('.mas-publication-resources-list a', true);\r\n  })();\r\n  <\/script>\r\n\r\n<\/div><!-- \/.mas-publication-wrapper -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-90c8ee2 e-flex e-con-boxed sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"90c8ee2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53a21ad sc_fly_static elementor-widget elementor-widget-shortcode\" data-id=\"53a21ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f20093-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"20093\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en-us\/wp-json\/wp\/v2\/publications\/21487#wpcf7-f20093-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"20093\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.7\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f20093-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<p><label> Your Name<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span> <\/label>\n<\/p>\n<p><label> Your Email<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span> <\/label>\n<\/p>\n<p><label> Phone Number (Optional)<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-phone\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-text wpcf7-validates-as-tel\" autocomplete=\"tel\" aria-invalid=\"false\" value=\"\" type=\"tel\" name=\"your-phone\" \/><\/span> <\/label>\n<\/p>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Download Now\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-001616c e-flex e-con-boxed sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"001616c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b35fd0 sc_fly_static elementor-widget elementor-widget-html\" data-id=\"3b35fd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!--\r\n============================================================\r\n  MASPARTNER \/ MERCURIUS \u2014 STANDALONE CTA BLOCK\r\n  \"Need Help Getting Your Books Reconciled?\"\r\n  Paste this entire block into its own WordPress \/ Elementor\r\n  \"Custom HTML\" block (separate from the main publication).\r\n============================================================\r\n  This CTA button links to:\r\n    https:\/\/maspartner.com\/en-us\/free-consultation\/\r\n  (Update the href on the .mas-cta-btn anchor if this URL ever changes.)\r\n============================================================\r\n-->\r\n\r\n<div class=\"mas-cta-wrapper\">\r\n\r\n  <style>\r\n    .mas-cta-wrapper{\r\n      --mas-gold:#fabc17;\r\n      --mas-dark-gold:#cfa434;\r\n      --mas-black:#000000;\r\n      --mas-soft:#fbf7ec;\r\n      font-family:inherit;\r\n      box-sizing:border-box;\r\n      width:100%;\r\n    }\r\n    .mas-cta-wrapper *,\r\n    .mas-cta-wrapper *::before,\r\n    .mas-cta-wrapper *::after{box-sizing:border-box;}\r\n\r\n    .mas-cta-box{\r\n      background:var(--mas-soft);\r\n      border:1px solid #f0e6c8;\r\n      border-radius:12px;\r\n      padding:44px 34px;\r\n      text-align:center;\r\n      max-width:900px;\r\n      margin:0 auto;\r\n    }\r\n    .mas-cta-box h3{\r\n      font-size:clamp(22px,3.4vw,28px);\r\n      font-weight:800;\r\n      margin:0 0 16px;\r\n      color:var(--mas-black);\r\n      line-height:1.25;\r\n    }\r\n    .mas-cta-box p{\r\n      font-size:16px;\r\n      line-height:1.7;\r\n      max-width:640px;\r\n      margin:0 auto 26px;\r\n      color:#46464c;\r\n    }\r\n    .mas-cta-btn{\r\n      display:inline-block;\r\n      background:var(--mas-gold);\r\n      color:var(--mas-black);\r\n      font-weight:800;\r\n      font-size:15px;\r\n      letter-spacing:.2px;\r\n      padding:15px 38px;\r\n      border-radius:8px;\r\n      text-decoration:none;\r\n      cursor:pointer;\r\n      position:relative;\r\n      z-index:10;\r\n      pointer-events:auto;\r\n      transition:background .15s,color .15s;\r\n    }\r\n    .mas-cta-btn:hover{background:var(--mas-dark-gold);color:#ffffff;}\r\n\r\n    @media (max-width:768px){\r\n      .mas-cta-box{padding:32px 22px;}\r\n      .mas-cta-btn{display:block;width:100%;padding:15px 20px;}\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"mas-cta-box\">\r\n    <h3>Need Help Getting Your Books Reconciled?<\/h3>\r\n    <p>MASPARTNER helps small businesses streamline bookkeeping, accounting, payroll, tax compliance, and financial reporting. Our team of CPAs and accounting professionals can take reconciliation, and every other bookkeeping function, entirely off your plate.<\/p>\r\n    <a class=\"mas-cta-btn\" href=\"https:\/\/maspartner.com\/en-us\/free-consultation\/\" target=\"_blank\" rel=\"noopener\">Book a Free Consultation Today<\/a>\r\n  <\/div>\r\n\r\n  <script>\r\n  (function(){\r\n    \/\/ Force the CTA button to open on click (Elementor intercepts clicks in the\r\n    \/\/ bubble phase; a capture-phase handler fires first and wins).\r\n    var wrap = document.currentScript ? document.currentScript.closest('.mas-cta-wrapper') : null;\r\n    if(!wrap){\r\n      var all = document.querySelectorAll('.mas-cta-wrapper');\r\n      wrap = all[all.length-1];\r\n    }\r\n    if(!wrap) return;\r\n    wrap.querySelectorAll('.mas-cta-btn').forEach(function(el){\r\n      el.addEventListener('click', function(e){\r\n        e.stopPropagation();\r\n        var href = this.getAttribute('href');\r\n        if(!href || href === '#' || href.charAt(0) === '['){ e.preventDefault(); return; }\r\n        e.preventDefault();\r\n        window.open(href, '_blank', 'noopener,noreferrer');\r\n      }, true); \/\/ capture phase\r\n    });\r\n  })();\r\n  <\/script>\r\n\r\n<\/div><!-- \/.mas-cta-wrapper -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>How to Set Up Job Costing in QuickBooks Online A Practical Guide to Tracking Project\u2026<\/p>\n","protected":false},"featured_media":21498,"template":"elementor_header_footer","class_list":["post-21487","publications","type-publications","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/21487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications"}],"about":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/types\/publications"}],"version-history":[{"count":14,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/21487\/revisions"}],"predecessor-version":[{"id":21871,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/21487\/revisions\/21871"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/media\/21498"}],"wp:attachment":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/media?parent=21487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}