{"id":24774,"date":"2026-10-13T12:44:51","date_gmt":"2026-10-13T12:44:51","guid":{"rendered":"https:\/\/maspartner.com\/?post_type=publications&#038;p=24774"},"modified":"2026-10-16T07:58:02","modified_gmt":"2026-10-16T07:58:02","slug":"quickbooks-for-accounting-firm","status":"publish","type":"publications","link":"https:\/\/maspartner.com\/en-us\/publications\/quickbooks-for-accounting-firm\/","title":{"rendered":"How to Set Up QuickBooks Online for an Accounting Firm That Bills Hourly"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"24774\" class=\"elementor elementor-24774\">\n\t\t\t\t<div class=\"e-con-with-custom-width 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\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 QuickBooks Online for an Accounting Firm That Bills Hourly\r\n    <\/h1>\r\n\r\n    <!-- SUBTITLE \/ DESCRIPTION -->\r\n    <p class=\"mas-publication-standalone-subtitle\">\r\n     The Complete Multi-Billing Setup Guide: Chart of Accounts, Retainer Accounting, Revenue Recognition, and Monthly Workflows in QuickBooks Online\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\">october 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\">Accounting Firm Owners \u00b7 Practice Managers \u00b7 Firm Bookkeepers \u00b7 Firm Administrators<\/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<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\t<!--\r\n============================================================\r\n  MASPARTNER \/ MERCURIUS WEB PUBLICATION\r\n  How to Set Up QuickBooks Online for an Accounting Firm That Bills Hourly\r\n  The Complete Multi-Billing Setup Guide: Chart of Accounts,\r\n  Retainer Accounting, Revenue Recognition, and Monthly\r\n  Workflows in QuickBooks Online\r\n  Paste this entire block into an Elementor \"HTML\" widget\r\n  (or a WordPress \"Custom HTML\" block) on a full-width page.\r\n============================================================\r\n  REPLACE THESE PLACEHOLDERS BEFORE PUBLISHING:\r\n\r\n    IMAGES - every image is a standard <img decoding=\"async\" src=\"[IMAGE_n_URL]\"> tag.\r\n    Use Find & Replace on [IMAGE_n_URL] and paste the WordPress media URL.\r\n    Until a URL is pasted, a labelled dashed placeholder box shows in its spot.\r\n\r\n    [IMAGE_1_URL]   -> Three Billing Models mind map (Hourly \/ Retainer \/ Fixed-Fee) - Figure 1\r\n                       Section 1 (PDF page 5)  | uploaded file: Img_9.png\r\n    [IMAGE_2_URL]   -> Recommended Chart of Accounts (Revenue \/ Liability \/ Receivable & Expense) - Figure 2\r\n                       Section 2 (PDF page 7)  | uploaded file: Img_8.png\r\n    [IMAGE_3_URL]   -> QBO Settings > Products and Services list (service items mapped to income accounts)\r\n                       Section 2 (PDF page 9)  | uploaded file: Img_7.png\r\n    [IMAGE_4_URL]   -> QBO Invoice #1047 with unbilled time pulled in from logged hours\r\n                       Section 3 (PDF page 10) | uploaded file: Img_6.png\r\n    [IMAGE_5_URL]   -> How a Client Retainer Moves Through QuickBooks - Figure 3\r\n                       Section 3 (PDF page 11) | uploaded file: Img_5.png\r\n    [IMAGE_6_URL]   -> Billing Model Comparison: Setup, Revenue Timing, Reporting - Figure 4\r\n                       Section 4 (PDF page 13) | uploaded file: Img_4.png\r\n    [IMAGE_7_URL]   -> Five Common QuickBooks Setup Mistakes - Figure 6\r\n                       Section 5 (PDF page 15) | uploaded file: Img_3.png\r\n    [IMAGE_8_URL]   -> Monthly Billing Workflow six-step cycle - Figure 5\r\n                       Section 6 (PDF page 17) | uploaded file: Img_2.png\r\n    [IMAGE_9_URL]   -> QBO New recurring invoice screen (Monthly Bookkeeping - Retainer)\r\n                       Section 6 (PDF page 18) | uploaded file: Img_1.png\r\n\r\n    RESOURCE LINKS - ALREADY SET (taken from the hyperlinks inside the PDF):\r\n    QuickBooks Online Help: Learn & Support          -> https:\/\/quickbooks.intuit.com\/learn-support\/\r\n    QuickBooks Time (formerly TSheets)               -> https:\/\/quickbooks.intuit.com\/time-tracking\/\r\n    IRS: Publication 538                             -> https:\/\/www.irs.gov\/publications\/p538\r\n    IRS: Recordkeeping for Business Taxpayers        -> https:\/\/www.irs.gov\/businesses\/small-businesses-self-employed\/recordkeeping\r\n    SBA: Manage Your Finances, Business Guide        -> https:\/\/www.sba.gov\/business-guide\/manage-your-business\/manage-your-finances\r\n    MASPARTNER CPA Tax & Accounting Services         -> https:\/\/maspartner.com\/en-us\/cpa-accounting\/\r\n    MASPARTNER Case Study (QuickBooks Online)        -> https:\/\/maspartner.com\/en-us\/case-studies\/restoring-financial-accuracy-in-quickbooks-online\/\r\n\r\n    PDF DOWNLOAD LINK (delivered after CF7 form submission) - ALREADY SET\r\n    (stored once, in the MAS_PDF_URL variable in the script at the bottom):\r\n    https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/MASPARTNER_NetSuite_Chart_of_Accounts_Best_Practices_E-Guide.pdf.pdf\r\n\r\n    NOTE: The sticky button opens a CF7 popup form.\r\n    CF7 Form ID: d62a501 (title: Publication)\r\n    Add an Elementor \"Shortcode\" widget BELOW this HTML widget containing:\r\n        [contact-form-7 id=\"d62a501\" title=\"Publication\"]\r\n    The script hides that widget and moves the form into the popup.\r\n    If no CF7 form is found on the page, the button opens the PDF directly,\r\n    so the download always works.\r\n\r\n    NOTE: The hero \/ banner (title, subtitle, topic, published date,\r\n    audience, Research By and Edited & Presented By) is built separately\r\n    in Elementor and is NOT part of this code.\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    \/* two-column bullet lists (as laid out in the PDF) *\/\r\n    .mas-publication-section ul.mas-publication-cols{\r\n      columns:2;column-gap:44px;\r\n    }\r\n    .mas-publication-section ul.mas-publication-cols li{\r\n      break-inside:avoid;-webkit-column-break-inside:avoid;\r\n    }\r\n\r\n    \/* ---------- KPI AT A GLANCE ---------- *\/\r\n    .mas-publication-glance{\r\n      background:#fffbe8;border:1px solid #f0e6c8;\r\n      border-left:5px solid var(--mas-gold);border-radius:8px;\r\n      padding:20px 26px;margin:4px 0 30px;\r\n    }\r\n    .mas-publication-glance .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 6px;\r\n    }\r\n    .mas-publication-glance dl{\r\n      margin:0;display:grid;grid-template-columns:200px minmax(0,1fr);\r\n    }\r\n    .mas-publication-glance dt{\r\n      font-size:14px;font-weight:800;color:var(--mas-ink);\r\n      padding:11px 16px 11px 0;border-bottom:1px solid #f0e6c8;\r\n    }\r\n    .mas-publication-glance dd{\r\n      margin:0;font-size:15px;color:#39393f;\r\n      padding:11px 0;border-bottom:1px solid #f0e6c8;\r\n    }\r\n    .mas-publication-glance dt:last-of-type,\r\n    .mas-publication-glance dd:last-of-type{border-bottom:none;}\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-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 p + p{margin-top:12px;}\r\n\r\n    \/* example box: gold left rule on transparent background *\/\r\n    .mas-publication-example{\r\n      border-left:3px solid var(--mas-gold);\r\n      padding:4px 0 4px 22px;margin:24px 0 30px;\r\n    }\r\n    .mas-publication-example .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 8px;\r\n    }\r\n    .mas-publication-example p{margin:0;font-size:15px;color:#2c2c31;}\r\n    .mas-publication-example p + p{margin-top:10px;}\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 (matches PDF: one row, equal boxes, dark arrows \/ plus signs) ---------- *\/\r\n    .mas-publication-wrapper .mas-publication-flow{\r\n      display:flex !important;flex-direction:row !important;flex-wrap:nowrap !important;\r\n      align-items:stretch !important;justify-content:space-between !important;\r\n      gap:12px;width:100% !important;max-width:100% !important;\r\n      margin:24px 0 30px;padding:0;float:none !important;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow-item{\r\n      flex:1 1 0 !important;min-width:0 !important;width:auto !important;max-width:none !important;\r\n      margin:0 !important;background:var(--mas-gold);color:var(--mas-black);\r\n      border-radius:6px;padding:16px 12px;min-height:54px;\r\n      font-size:13px;font-weight:800;line-height:1.35;text-align:center;\r\n      display:flex !important;align-items:center;justify-content:center;\r\n      overflow-wrap:break-word;hyphens:manual;\r\n    }\r\n    \/* arrow: drawn with CSS (line + triangle head) so it never depends on the font *\/\r\n    .mas-publication-wrapper .mas-publication-flow-arrow{\r\n      flex:0 0 28px !important;width:28px;margin:0 !important;\r\n      display:flex !important;align-items:center;justify-content:center;\r\n      position:relative;font-size:0 !important;line-height:0;color:transparent;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow-arrow::before{\r\n      content:\"\";display:block;width:20px;height:2px;background:#3a3a3a;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow-arrow::after{\r\n      content:\"\";display:block;width:0;height:0;\r\n      border-top:5px solid transparent;border-bottom:5px solid transparent;\r\n      border-left:8px solid #3a3a3a;\r\n    }\r\n    \/* plus sign (Performance Balance) *\/\r\n    .mas-publication-wrapper .mas-publication-flow-arrow.mas-publication-flow-plus{\r\n      flex:0 0 22px !important;width:22px;\r\n      font-size:22px !important;font-weight:800;line-height:1;color:#3a3a3a;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow-arrow.mas-publication-flow-plus::before,\r\n    .mas-publication-wrapper .mas-publication-flow-arrow.mas-publication-flow-plus::after{content:none;display:none;}\r\n    \/* six-step flows: slightly tighter so all boxes stay on one row *\/\r\n    .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact{gap:8px;}\r\n    .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-item{\r\n      padding:14px 8px;font-size:12.5px;min-height:72px;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow{\r\n      flex-basis:22px !important;width:22px;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow::before{width:14px;}\r\n\r\n    \/* ---------- BAR CHART (examples) ---------- *\/\r\n    .mas-publication-bars{display:grid;gap:10px;margin:16px 0 4px;}\r\n    .mas-publication-bar{\r\n      display:grid;grid-template-columns:170px minmax(0,1fr);\r\n      align-items:center;gap:14px;\r\n    }\r\n    .mas-publication-bar-label{font-size:14px;font-weight:600;color:#39393f;}\r\n    .mas-publication-bar-track{\r\n      background:#f3eedd;border-radius:4px;height:32px;overflow:hidden;\r\n    }\r\n    .mas-publication-bar-fill{\r\n      height:100%;min-width:72px;background:var(--mas-gold);border-radius:4px;\r\n      display:flex;align-items:center;justify-content:flex-end;\r\n      padding:0 12px;font-size:13px;font-weight:800;color:var(--mas-black);\r\n      white-space:nowrap;\r\n    }\r\n    .mas-publication-bar-fill.mas-publication-bar-muted{background:#e6d6a6;}\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    .mas-publication-formula-label{\r\n      display:block;font-size:11px;font-weight:800;letter-spacing:2px;\r\n      text-transform:uppercase;color:var(--mas-dark-gold);margin:0 0 8px;\r\n    }\r\n    .mas-publication-section p.mas-publication-formula-note{\r\n      font-size:14px;color:var(--mas-muted);margin:-4px 0 22px;\r\n    }\r\n\r\n    \/* ---------- COMPARE CARDS ---------- *\/\r\n    .mas-publication-compare{\r\n      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));\r\n      gap:14px;margin:22px 0 30px;\r\n    }\r\n    .mas-publication-compare.mas-publication-compare-3{\r\n      grid-template-columns:repeat(3,minmax(0,1fr));\r\n    }\r\n    .mas-publication-compare-card{\r\n      border:1px solid var(--mas-line);border-radius:8px;\r\n      overflow:hidden;background:#fff;\r\n    }\r\n    .mas-publication-compare-card h4{\r\n      margin:0;background:var(--mas-gold);color:var(--mas-black);\r\n      font-size:14px;font-weight:800;padding:12px 18px;line-height:1.4;\r\n    }\r\n    .mas-publication-compare-card ul{margin:0;padding:14px 18px 10px 36px;}\r\n    .mas-publication-compare-card ul li{margin:0 0 7px;font-size:15px;color:#39393f;}\r\n\r\n    \/* ---------- SCENARIOS ---------- *\/\r\n    .mas-publication-scenario{\r\n      border:1px solid var(--mas-line);border-radius:8px;\r\n      overflow:hidden;margin:0 0 16px;background:#fff;\r\n    }\r\n    .mas-publication-scenario-head{\r\n      display:flex;align-items:center;gap:14px;\r\n      background:var(--mas-gold);padding:12px 18px;\r\n    }\r\n    .mas-publication-scenario-tag{\r\n      flex:0 0 auto;background:var(--mas-black);color:var(--mas-gold);\r\n      font-size:11px;font-weight:800;letter-spacing:1.2px;\r\n      text-transform:uppercase;padding:4px 10px;border-radius:4px;\r\n    }\r\n    .mas-publication-scenario-head h4{\r\n      margin:0;font-size:16px;font-weight:800;color:var(--mas-black);line-height:1.35;\r\n    }\r\n    .mas-publication-scenario-body{padding:14px 18px 6px;}\r\n    .mas-publication-scenario-body p{margin:0 0 10px;font-size:15px;color:#39393f;}\r\n\r\n    \/* ---------- FIGURES (image placeholder + HTML fallback) ---------- *\/\r\n    .mas-publication-wrapper .mas-publication-figure{\r\n      display:block !important;width:100% !important;max-width:100% !important;\r\n      margin:24px 0 30px !important;padding:0 !important;float:none !important;text-align:left;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-figure-fallback{display:block;width:100%;}\r\n    .mas-publication-figure-img{\r\n      display:none;width:100%;max-width:100%;height:auto;\r\n      border-radius:8px;border:1px solid var(--mas-line);\r\n    }\r\n    .mas-publication-figure.mas-img-ready .mas-publication-figure-img{display:block;}\r\n    .mas-publication-figure.mas-img-ready .mas-publication-figure-fallback{display:none;}\r\n    .mas-publication-figure-fallback > *{margin-top:0 !important;margin-bottom:0 !important;}\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    .mas-publication-table td.mas-publication-td-strong{font-weight:700;color:var(--mas-ink);}\r\n    .mas-publication-table td.mas-publication-td-num{width:56px;font-weight:800;color:var(--mas-dark-gold);}\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);background:none;}\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    \/* ---------- KEYBOARD FOCUS ---------- *\/\r\n    .mas-publication-wrapper a:focus-visible,\r\n    .mas-publication-wrapper button:focus-visible{\r\n      outline:3px solid var(--mas-gold);outline-offset:2px;\r\n    }\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;line-height:1.2;\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 button:focus-visible{outline:3px solid #000000 !important;outline-offset:-6px;}\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      max-height:90vh;overflow-y:auto;\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 !important;border:none !important;font-size:22px;\r\n      color:#55555c !important;cursor:pointer;line-height:1;padding:4px 8px;\r\n    }\r\n    .mas-publication-modal-close:hover{color:#000000 !important;}\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    .mas-publication-modal-download{\r\n      display:block;text-align:center;background:#fabc17 !important;color:#000000 !important;\r\n      font-weight:800;font-size:15px;padding:14px 28px;border-radius:6px;\r\n      text-decoration:none !important;margin-top:10px;cursor:pointer;\r\n      position:relative;z-index:10;pointer-events:auto;\r\n    }\r\n    .mas-publication-modal-download:hover{background:#cfa434 !important;color:#ffffff !important;}\r\n\r\n    \/* ---------- EXTRA: callout paragraphs inside stat boxes ---------- *\/\r\n    .mas-publication-statbox p{margin:0;font-size:15px;color:#2c2c31;}\r\n    .mas-publication-statbox p + p{margin-top:10px;}\r\n    .mas-publication-warning ul{margin:0;padding-left:20px;}\r\n    .mas-publication-warning ul li{margin:0 0 9px;font-size:15px;color:#222;}\r\n\r\n    \/* ---------- EXTRA: image placeholder box (shows until the real image link is pasted) ---------- *\/\r\n    .mas-publication-img-placeholder{\r\n      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;\r\n      width:100%;aspect-ratio:16\/9;min-height:180px;padding:20px;text-align:center;\r\n      background:#fffbe8;border:2px dashed var(--mas-gold);border-radius:8px;\r\n    }\r\n    .mas-publication-img-placeholder strong{font-size:16px;font-weight:800;color:var(--mas-ink);}\r\n    .mas-publication-img-placeholder span{font-size:13px;color:var(--mas-muted);word-break:break-word;}\r\n\r\n    \/* ---------- EXTRA: dark flow boxes (Units \/ Dollars) ---------- *\/\r\n    .mas-publication-wrapper .mas-publication-flow-item.mas-publication-flow-dark{background:#111;color:#fff;}\r\n    .mas-publication-dual{\r\n      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));\r\n      gap:24px;margin:24px 0 30px;\r\n    }\r\n    .mas-publication-wrapper .mas-publication-dual .mas-publication-flow{margin:0 !important;}\r\n\r\n    \/* ---------- EXTRA: debit \/ credit cards ---------- *\/\r\n    .mas-publication-dc{\r\n      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));\r\n      gap:14px;margin:22px 0 30px;\r\n    }\r\n    .mas-publication-dc-card{\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n      border-radius:8px;padding:18px 20px;text-align:center;\r\n    }\r\n    .mas-publication-dc-tag{\r\n      display:block;font-size:12px;font-weight:800;letter-spacing:1.5px;\r\n      text-transform:uppercase;margin:0 0 4px;\r\n    }\r\n    .mas-publication-dc-title{display:block;font-size:16px;font-weight:800;margin:0 0 2px;}\r\n    .mas-publication-dc-text{display:block;font-size:14px;}\r\n\r\n    \/* ---------- EXTRA: chart panels ---------- *\/\r\n    .mas-publication-chart{\r\n      border:1px solid var(--mas-line);border-radius:8px;background:#fff;\r\n      padding:20px 22px;margin:22px 0 8px;\r\n    }\r\n    .mas-publication-chart .mas-publication-bars{margin:0;gap:14px;}\r\n    .mas-publication-bar-label small{\r\n      display:block;font-size:12px;font-weight:500;color:var(--mas-muted);\r\n    }\r\n    .mas-publication-bar-note{\r\n      display:block;font-size:12.5px;color:var(--mas-muted);margin-top:5px;line-height:1.45;\r\n    }\r\n    .mas-publication-bar-stack{\r\n      display:flex;height:32px;border-radius:4px;overflow:hidden;\r\n    }\r\n    .mas-publication-seg{\r\n      display:flex;align-items:center;justify-content:center;\r\n      min-width:0;padding:0 8px;font-size:12.5px;font-weight:800;\r\n      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\r\n      background:var(--mas-gold);color:var(--mas-black);\r\n    }\r\n    .mas-publication-seg + .mas-publication-seg{border-left:2px solid #fff;}\r\n    .mas-publication-seg.mas-publication-seg-dark{background:#111;color:#fff;}\r\n    .mas-publication-chart-foot{\r\n      display:block;font-size:12.5px;color:var(--mas-muted);\r\n      margin-top:14px;padding-top:10px;border-top:1px solid var(--mas-line);\r\n    }\r\n    .mas-publication-section p.mas-publication-caption{\r\n      font-size:13px;color:var(--mas-muted);margin:0 0 30px;font-style:italic;\r\n    }\r\n\r\n    \/* ---------- EXTRA: journal table alignment ---------- *\/\r\n    .mas-publication-table th.mas-publication-th-right,\r\n    .mas-publication-table td.mas-publication-td-right{text-align:right;white-space:nowrap;}\r\n    .mas-publication-table tr.mas-publication-tr-total td{\r\n      font-weight:800;color:var(--mas-ink);background:#fff;\r\n      border-top:3px solid var(--mas-gold);\r\n    }\r\n    .mas-publication-table tr.mas-publication-tr-blank td{height:46px;}\r\n\r\n    \/* ---------- RESPONSIVE ---------- *\/\r\n    \/* keep content clear of the fixed side \"Download PDF\" button on laptop\/tablet widths *\/\r\n    @media (min-width:769px) and (max-width:1340px){\r\n      .mas-publication-body{padding-left:64px;}\r\n    }\r\n\r\n    @media (max-width:900px){\r\n      .mas-publication-wrapper{--mas-pad:28px;}\r\n      .mas-publication-compare.mas-publication-compare-3{grid-template-columns:1fr;}\r\n      .mas-publication-section h3{font-size:18px;}\r\n      .mas-publication-wrapper .mas-publication-flow{gap:8px;}\r\n      .mas-publication-wrapper .mas-publication-flow-item{font-size:12px;padding:14px 8px;}\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact{gap:4px;}\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-item{font-size:11px;padding:12px 6px;}\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow{flex-basis:16px !important;width:16px;}\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow::before{width:8px;}\r\n      .mas-publication-glance dl{grid-template-columns:160px minmax(0,1fr);}\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,\r\n      .mas-publication-glance{padding:18px 20px;}\r\n      .mas-publication-glance dl{grid-template-columns:1fr;}\r\n      .mas-publication-glance dt{padding:12px 0 2px;border-bottom:none;}\r\n      .mas-publication-glance dd{padding:0 0 12px;}\r\n      .mas-publication-section ul.mas-publication-cols{columns:1;}\r\n      .mas-publication-compare{grid-template-columns:1fr;}\r\n      .mas-publication-bar{grid-template-columns:1fr;gap:4px;}\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-scenario-head{flex-wrap:wrap;gap:8px;}\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-wrapper .mas-publication-flow,\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact{\r\n        flex-direction:column !important;align-items:stretch !important;gap:6px;\r\n      }\r\n      .mas-publication-wrapper .mas-publication-flow-item,\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-item{\r\n        flex:0 0 auto !important;width:100% !important;min-height:46px;font-size:13px;padding:13px 14px;\r\n      }\r\n      .mas-publication-wrapper .mas-publication-flow-arrow,\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow{\r\n        flex:0 0 22px !important;width:100%;height:22px;transform:rotate(90deg);\r\n      }\r\n      .mas-publication-wrapper .mas-publication-flow-arrow.mas-publication-flow-plus{transform:none;width:100% !important;height:24px;}\r\n      .mas-publication-wrapper .mas-publication-flow.mas-publication-flow-compact .mas-publication-flow-arrow::before{width:14px;}\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\r\n    \/* ---------- EXTRA RESPONSIVE (components added for this publication) ---------- *\/\r\n    @media (max-width:900px){\r\n      .mas-publication-dual{gap:16px;}\r\n    }\r\n    @media (max-width:768px){\r\n      .mas-publication-dual,\r\n      .mas-publication-dc{grid-template-columns:1fr;}\r\n      .mas-publication-chart{padding:16px;}\r\n    }\r\n    @media (max-width:480px){\r\n      .mas-publication-bar-stack{flex-direction:column;height:auto;}\r\n      .mas-publication-seg{flex:0 0 auto !important;padding:8px 10px;font-size:12px;white-space:normal;}\r\n      .mas-publication-seg + .mas-publication-seg{border-left:none;border-top:2px solid #fff;}\r\n    }\r\n\r\n    @media (prefers-reduced-motion:reduce){\r\n      .mas-publication-faq-a,\r\n      .mas-publication-faq-icon,\r\n      .mas-publication-toc a{transition:none;}\r\n    }\r\n\r\n    \/* ---------- EXTRA: figure captions ---------- *\/\r\n    .mas-publication-section .mas-publication-figure p.mas-publication-caption{\r\n      margin:10px 0 0 !important;font-size:13px;color:var(--mas-muted);font-style:italic;text-align:center;\r\n    }\r\n\r\n    \/* ---------- EXTRA: setup-mistake boxes (gold top border + numbered label) ---------- *\/\r\n    .mas-publication-mistake{\r\n      border:1px solid var(--mas-line);border-top:3px solid var(--mas-gold);\r\n      border-radius:8px;background:#fff;padding:18px 22px 6px;margin:0 0 16px;\r\n    }\r\n    .mas-publication-mistake-head{\r\n      display:flex;align-items:center;gap:12px;margin:0 0 12px;\r\n    }\r\n    .mas-publication-mistake-tag{\r\n      flex:0 0 auto;background:var(--mas-gold);color:var(--mas-black);\r\n      font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;\r\n      padding:5px 10px;border-radius:4px;\r\n    }\r\n    .mas-publication-section .mas-publication-mistake-head h4{\r\n      margin:0;font-size:16px;font-weight:800;color:var(--mas-ink);line-height:1.35;\r\n    }\r\n    .mas-publication-section .mas-publication-mistake p{font-size:15px;color:#39393f;margin:0 0 12px;}\r\n    @media (max-width:768px){\r\n      .mas-publication-mistake{padding:16px 16px 4px;}\r\n      .mas-publication-mistake-head{flex-wrap:wrap;gap:8px;}\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>Most accounting firms don&rsquo;t use just one billing model. Some clients are billed by the hour, others are on a monthly retainer, and some projects carry a flat fee. This guide is designed to help accounting firm owners, practice managers, bookkeepers, and firm administrators configure QuickBooks Online (QBO) so that revenue tracking, cash flow reporting, and invoicing all work properly, regardless of how each client is billed. It covers the three billing models, chart of accounts and service item setup, retainer accounting, revenue recognition, common setup mistakes, monthly workflows and automations, and the signs that a growing firm needs more than a basic setup.<\/p>\r\n      <p>The guide is optimized for both human readers and AI-assisted search engines (AEO\/GEO), making it a useful reference for anyone responsible for billing and bookkeeping in a multi-billing accounting practice.<\/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 legal, tax, or accounting advice. Consult a qualified accounting professional for guidance specific to your practice. QuickBooks, QuickBooks Online, and QuickBooks Time are trademarks of Intuit Inc.; this guide is an independent publication. Screenshots, figures, and worked examples are illustrative and use sample data. Feature availability varies by QuickBooks Online plan.<\/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\">Understanding the Three Billing Models and Why Setup Matters<\/a><\/li>\r\n        <li><a href=\"#section-2\">Preparing QuickBooks Online for a Multi-Billing Practice<\/a><\/li>\r\n        <li><a href=\"#section-3\">Configuring Hourly Billing, Retainers, and Fixed-Fee Services<\/a><\/li>\r\n        <li><a href=\"#section-4\">Managing Revenue Recognition and Cash Flow<\/a><\/li>\r\n        <li><a href=\"#section-5\">Common Setup Mistakes and How to Avoid Them<\/a><\/li>\r\n        <li><a href=\"#section-6\">Building Efficient Workflows and Automations<\/a><\/li>\r\n        <li><a href=\"#section-7\">When a Growing Accounting Firm Needs More Than Basic Setup<\/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=\"#conclusion\">Conclusion<\/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 own an accounting practice, manage its operations, or keep its books, this guide will help you set up QuickBooks Online so that hourly billing, retainers, and fixed-fee engagements can run side by side in a single file, with revenue tracking, cash flow reporting, and invoicing that all work properly.<\/p>\r\n\r\n      <p>Most accounting firms don&rsquo;t use just one billing model. You bill some clients by the hour. Others are on a monthly retainer. Some projects get a flat fee. The problem is that QuickBooks Online, out of the box, isn&rsquo;t configured to handle all three cleanly at the same time. The result is a familiar one: the books look fine on the surface, but the P&amp;L can&rsquo;t tell you which service line is actually profitable, retainer payments are recorded as income before they are earned, and year-end raises questions that you shouldn&rsquo;t need to answer manually. None of that is a people problem. It&rsquo;s a setup problem.<\/p>\r\n\r\n      <p>This guide covers seven areas: the three billing models and why setup matters, preparing QBO for a multi-billing practice, configuring each billing type, managing revenue recognition and cash flow, common setup mistakes, efficient workflows and automations, and when a growing firm needs more than a basic setup.<\/p>\r\n\r\n      <div class=\"mas-publication-statbox\">\r\n        <p class=\"mas-publication-box-title\">Key Facts at a Glance<\/p>\r\n        <ul>\r\n          <li>Hourly, retainer, and fixed-fee billing each create <strong>different accounting requirements<\/strong> in QuickBooks Online.<\/li>\r\n          <li>Retainer payments received upfront are a <strong>liability, not revenue<\/strong>, until the work is performed.<\/li>\r\n          <li>Separate revenue accounts for each billing model are what make it possible to see which model is most profitable.<\/li>\r\n          <li>Missed time entries are missed revenue; unbilled time should be reviewed at least monthly.<\/li>\r\n          <li>Recurring invoices, a master service item list, and a monthly review process keep the setup working over time.<\/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 an authoritative reference for anyone setting up or cleaning up QuickBooks Online for a multi-billing accounting practice.<\/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>Understanding the Three Billing Models and Why Setup Matters<\/h2>\r\n      <\/div>\r\n\r\n      <p>Here&rsquo;s a situation most accounting firm owners will recognize: the books look fine on the surface, but your P&amp;L doesn&rsquo;t tell you which service line is actually profitable. Your retainer clients are mixed in with your hourly clients. You&rsquo;re not sure if the fixed-fee engagements are covering their costs. And come tax time, your accountant has to ask a lot of questions that you shouldn&rsquo;t need to answer manually.<\/p>\r\n\r\n      <p>None of that is a people problem. <strong>It&rsquo;s a setup problem.<\/strong><\/p>\r\n\r\n      <h3>How Accounting Firms Bill Clients Today<\/h3>\r\n      <p>Most firms have evolved beyond a single billing model. Hourly billing still works well for advisory, complex tax matters, and anything where scope is genuinely hard to define upfront. Retainers work for ongoing relationships, such as monthly accounting, bookkeeping, or CFO services, where clients want predictability and you want steady cash flow. Fixed fees work for standardized services, such as annual tax returns, onboarding packages, and payroll setup, where you know the scope and want to price accordingly.<\/p>\r\n\r\n      <p>The challenge is that all three create different accounting requirements. Hourly billing is straightforward: you work, you invoice, you recognize revenue. Retainers are more nuanced: the client pays you upfront, but you haven&rsquo;t earned that money yet. Fixed fees sit in between: the invoice goes out, but if the work spans multiple periods, revenue recognition gets complicated.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"Three billing models and what each requires in your QuickBooks configuration\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-1-1.png\" alt=\"Mind map of QBO billing setup branching into hourly billing (track time per client, set rates per service, invoice from time log, revenue equals hours times rate), retainer billing (record as liability, draw down as work is done, manage evergreen top-ups, unearned until earned), and fixed-fee engagements (predictable revenue stream, track cost vs fee, bill monthly or per project, flat-rate service items)\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 1: Three billing models and what each requires in QuickBooks<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-1-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Three billing models and what each requires in your QuickBooks configuration<\/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>Billing Model<\/th><th>Best Suited For<\/th><th>The Accounting Requirement<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Hourly<\/td><td>Advisory, complex tax matters, and work where scope is hard to define upfront<\/td><td>Straightforward: you work, you invoice, you recognize revenue<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Retainer<\/td><td>Ongoing relationships: monthly accounting, bookkeeping, or CFO services<\/td><td>Nuanced: the client pays upfront, but the money isn&rsquo;t earned until the work is done<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Fixed fee<\/td><td>Standardized services: annual tax returns, onboarding packages, payroll setup<\/td><td>In between: the invoice goes out, but work spanning multiple periods complicates revenue recognition<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Why QuickBooks Online Needs to Be Configured Correctly from the Start<\/h3>\r\n      <p>QuickBooks Online will let you invoice clients without a proper setup. But what you&rsquo;ll end up with is:<\/p>\r\n      <ul>\r\n        <li>A single revenue line that mixes all three billing types together<\/li>\r\n        <li>Retainer payments incorrectly recorded as income<\/li>\r\n        <li>Reports that can&rsquo;t tell you anything useful about which parts of your practice are profitable<\/li>\r\n      <\/ul>\r\n      <p>The good news is that QBO has everything you need to handle multi-model billing cleanly. You just need to configure it deliberately. That&rsquo;s what the rest of this guide covers.<\/p>\r\n\r\n      <div class=\"mas-publication-statbox\">\r\n        <p class=\"mas-publication-box-title\">Worth Noting<\/p>\r\n        <p>The firms that get the most value out of QBO are the ones that spend time on setup before they start entering transactions. Retrofitting a QBO file that&rsquo;s been running without proper structure is significantly more work than setting it up correctly the first time.<\/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>Preparing QuickBooks Online for a Multi-Billing Practice<\/h2>\r\n      <\/div>\r\n\r\n      <p>Before you configure individual billing types, you need the right foundation: a chart of accounts that separates your revenue streams, a client and service structure that keeps things consistent, and internal billing policies that everyone on your team follows.<\/p>\r\n\r\n      <div class=\"mas-publication-flow\">\r\n        <div class=\"mas-publication-flow-item\">Chart of Accounts<\/div>\r\n        <div class=\"mas-publication-flow-arrow\" aria-hidden=\"true\">&rarr;<\/div>\r\n        <div class=\"mas-publication-flow-item\">Clients &amp; Services<\/div>\r\n        <div class=\"mas-publication-flow-arrow\" aria-hidden=\"true\">&rarr;<\/div>\r\n        <div class=\"mas-publication-flow-item\">Billing Policies<\/div>\r\n      <\/div>\r\n\r\n      <h3>Setting Up the Chart of Accounts<\/h3>\r\n      <p>Your chart of accounts is the backbone of everything. If all your billing revenue flows into a single account, you&rsquo;ll never be able to answer the question &ldquo;which billing model is most profitable?&rdquo; At minimum, you want separate revenue accounts for each service type, and a dedicated liability account for unearned retainers.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"Recommended chart of accounts structure for a multi-billing accounting firm\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-2-1.png\" alt=\"Recommended chart of accounts for a multi-billing accounting firm: revenue accounts 4000 Hourly Billing Revenue, 4010 Retainer Revenue (Earned), 4020 Fixed-Fee Revenue, 4030 Consulting Revenue, 4040 Other Service Revenue; liability accounts 2100 Client Retainers Unearned and 2110 Prepaid Fees Unearned; receivable and expense accounts 1200 Accounts Receivable, 1210 Unbilled Time WIP, 6000 Salaries and Wages, 6100 Software and Tools\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 2: Recommended chart of accounts structure<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-2-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Recommended chart of accounts structure: separate revenue lines and a retainer liability account<\/p>\r\n      <\/div>\r\n\r\n      <p>The accounts that matter most:<\/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>Account<\/th><th>Account Type<\/th><th>What It&rsquo;s For<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Hourly Billing Revenue<\/td><td>Income<\/td><td>A dedicated income account for all time-billed invoices<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Retainer Revenue (Earned)<\/td><td>Income<\/td><td>The income account that retainer funds move into once work is performed<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Fixed-Fee Revenue<\/td><td>Income<\/td><td>A separate account for flat-rate engagements<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Client Retainers &mdash; Unearned<\/td><td>Liability<\/td><td>Where retainer payments sit before they&rsquo;re earned. This is the account most firms either skip or set up incorrectly.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Work in Progress (WIP)<\/td><td>Current asset<\/td><td>Unbilled hourly time that hasn&rsquo;t been invoiced yet<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Organizing Clients and Services in QBO<\/h3>\r\n      <p>Customer profiles in QBO should reflect how you actually work with each client. If you have a client on both a retainer and occasional hourly work, you can use sub-customers to track those separately. Consistent naming conventions matter more than most people think: they determine whether your reports are useful or just a mess of similar-looking line items.<\/p>\r\n      <ul>\r\n        <li><strong>Service items:<\/strong> create a separate service item for each distinct service you bill. &ldquo;Monthly bookkeeping &mdash; retainer&rdquo; and &ldquo;Ad hoc advisory &mdash; hourly&rdquo; are different items and should be treated that way.<\/li>\r\n        <li><strong>Projects and sub-customers:<\/strong> use QBO&rsquo;s project feature for engagements with a defined scope and timeline. Use sub-customers when one client has multiple ongoing billing arrangements.<\/li>\r\n        <li><strong>Naming conventions:<\/strong> decide on a naming format before you start and stick to it. Consistency is what makes reports filterable and useful.<\/li>\r\n      <\/ul>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"QuickBooks Online Products and Services list with each service item mapped to an income account\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-3-1.png\" alt=\"QuickBooks Online Settings, Products and Services list showing eight service items such as Monthly bookkeeping retainer, Bookkeeping ad hoc hourly, Advisory hourly, Payroll processing monthly, Monthly CFO retainer, Financial statements monthly, Sales tax filing monthly, and Consulting project, each mapped to an income account\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 3: QBO Products and Services list<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-3-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Each billing type should have its own service item, mapped to the correct income account. Consistency here is what makes your sales reports meaningful.<\/p>\r\n      <\/div>\r\n\r\n      <h3>Establishing Internal Billing Policies Before You Set Anything Up<\/h3>\r\n      <p>The setup decisions you make in QBO should reflect how you actually want to run your billing, not the other way around. Before touching the software, agree on the following:<\/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>Policy Decision<\/th><th>What to Agree On<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Invoicing frequency<\/td><td>How often you invoice each billing type: hourly could be monthly; fixed-fee might be on the first of the month; retainers at the start of each period<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Payment terms<\/td><td>Your standard payment terms<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Responsibility<\/td><td>Who on your team is responsible for creating and sending invoices<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Key Rule<\/p>\r\n        <p>Billing policies that live only in someone&rsquo;s head are billing policies that disappear when that person is on leave. <strong>Document them, even briefly.<\/strong><\/p>\r\n      <\/div>\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>Configuring Hourly Billing, Retainers, and Fixed-Fee Services<\/h2>\r\n      <\/div>\r\n\r\n      <h3>Setting Up Hourly Billing<\/h3>\r\n      <p>Hourly billing in QBO works through the time tracking and billable expense features. The key is to make sure time is captured against the right client and service item before you generate the invoice; otherwise you lose visibility into what you billed for and whether you billed everything you worked.<\/p>\r\n\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 1<\/div><div class=\"mas-publication-step-text\"><span><strong>Create a service item for each type of hourly work<\/strong> (e.g., &ldquo;Advisory &mdash; hourly,&rdquo; &ldquo;Tax preparation &mdash; hourly&rdquo;). Map each item to your hourly revenue account.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 2<\/div><div class=\"mas-publication-step-text\"><span><strong>Set up employees or team members with hourly rates<\/strong> in QBO or your time-tracking integration. Rates can be set at the employee level, the service level, or overridden per client.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 3<\/div><div class=\"mas-publication-step-text\"><span><strong>Record time entries as billable<\/strong> against the relevant client. QBO will hold these until you create an invoice, at which point you can pull in all unbilled time for that client.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 4<\/div><div class=\"mas-publication-step-text\"><span><strong>When invoicing, review all unbilled time<\/strong> before sending. It&rsquo;s easy for a time entry to get missed if there&rsquo;s no consistent review step.<\/span><\/div><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"QuickBooks Online invoice pulling in unbilled time from a client's logged hours\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-4-1.png\" alt=\"QuickBooks Online invoice number 1047 for Acme Consulting LLC with the billable time panel showing logged hours, and Add time pulling unbilled time into invoice lines for Advisory hourly, Bookkeeping hourly, and Tax preparation hourly by staff member, date, hours, and rate\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 4: Invoice with unbilled time pulled in<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-4-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">When creating an invoice for an hourly client, click &ldquo;Add billable time&rdquo; to pull in all recorded hours. Review before adding &mdash; this is your last chance to catch missed time entries.<\/p>\r\n      <\/div>\r\n\r\n      <h3>Setting Up Retainer Engagements: The Part Most Firms Get Wrong<\/h3>\r\n      <p>Retainers are the billing type most commonly mishandled in QBO. The mistake is simple: when a client pays their monthly retainer upfront, that money gets recorded directly to income. It feels right in the moment (money came in, revenue went up), but it&rsquo;s incorrect. Until you&rsquo;ve performed the work, that money isn&rsquo;t revenue. It&rsquo;s a liability.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"How a client retainer moves through QuickBooks step by step\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-5-1.png\" alt=\"Retainer lifecycle in QuickBooks: client pays retainer and it sits as an unearned liability, work is performed, earned portion moves from liability to revenue, invoice draws down the retainer balance, and the retainer is either topped up or the engagement closes; journal entries Dr Cash \/ Cr Client Retainer Liability when received and Dr Client Retainer Liability \/ Cr Service Revenue when work is performed\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 5: Retainer lifecycle in QuickBooks<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-5-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">The correct retainer lifecycle: received as a liability, earned as revenue, drawn down by invoice<\/p>\r\n      <\/div>\r\n\r\n      <p>The correct setup in QBO:<\/p>\r\n\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 1<\/div><div class=\"mas-publication-step-text\"><span><strong>Create a liability account<\/strong> called &ldquo;Client Retainers &mdash; Unearned&rdquo; in your chart of accounts.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 2<\/div><div class=\"mas-publication-step-text\"><span><strong>When a client pays their retainer,<\/strong> record the payment to that liability account, not to income. The cash comes in, and the liability increases.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 3<\/div><div class=\"mas-publication-step-text\"><span><strong>As work is performed during the month,<\/strong> invoice the client for the services delivered. Map those invoices to your earned revenue account.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 4<\/div><div class=\"mas-publication-step-text\"><span><strong>Apply the retainer payment against the invoice.<\/strong> This reduces the liability balance and completes the revenue recognition cycle.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Step 5<\/div><div class=\"mas-publication-step-text\"><span><strong>For evergreen retainers,<\/strong> send a retainer replenishment invoice at the start of each period to top up the balance.<\/span><\/div><\/div>\r\n      <\/div>\r\n\r\n      <p>The accounting entries behind the retainer lifecycle:<\/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>Event<\/th><th>Debit<\/th><th>Credit<\/th><th>Effect<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Client pays the retainer<\/td><td>Cash \/ Bank<\/td><td>Client Retainers &mdash; Unearned<\/td><td>Cash and liability increase; no revenue yet<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Work is performed and invoiced<\/td><td>Client Retainers &mdash; Unearned<\/td><td>Retainer Revenue (Earned)<\/td><td>Liability decreases; revenue is recognized<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Setting Up Fixed-Fee Engagements<\/h3>\r\n      <p>Fixed-fee billing is the most straightforward of the three to set up, but there are still decisions to make. The main question is whether the fee covers a single deliverable (a tax return, an audit) or an ongoing service (monthly bookkeeping at a flat rate). The first gets invoiced once; the second gets invoiced repeatedly.<\/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>Fixed-Fee Type<\/th><th>How to Set It Up in QBO<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">One-time fixed-fee work<\/td><td>Create a service item with the flat fee, map it to your fixed-fee revenue account, and invoice when the engagement is agreed. For longer engagements, consider billing in milestones.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Recurring fixed-fee services<\/td><td>Set up a recurring invoice in QBO to send automatically each billing period. This is one of the biggest time-savers available to a firm with a consistent monthly package offering.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Tracking profitability<\/td><td>Fixed-fee work is only profitable if you know what it&rsquo;s costing you. Use QBO projects or a simple time log to track hours spent on each fixed-fee engagement, even if you&rsquo;re not billing by the hour.<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\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>Managing Revenue Recognition and Cash Flow<\/h2>\r\n      <\/div>\r\n\r\n      <p>Cash flow and revenue are not the same thing, and in a multi-billing practice the difference between the two matters a lot. This distinction is what proper QBO setup makes visible.<\/p>\r\n\r\n      <div class=\"mas-publication-example\">\r\n        <p class=\"mas-publication-box-title\">Example<\/p>\r\n        <p>A retainer client pays you &pound;1,500 on the first of the month. Your bank balance goes up by &pound;1,500. Your revenue hasn&rsquo;t gone up at all yet.<\/p>\r\n      <\/div>\r\n\r\n      <h3>Earned vs. Unearned Revenue: Why It Matters<\/h3>\r\n      <p>Unearned revenue (money you&rsquo;ve received but haven&rsquo;t yet earned) is a liability, not income. For accounting firms, this is most relevant for retainer arrangements. Until you&rsquo;ve performed the services covered by that retainer, the money belongs to your client in the sense that you still owe them the work. Recording it as income immediately overstates your revenue and can make your practice look more profitable than it is.<\/p>\r\n\r\n      <p>This isn&rsquo;t just an accounting technicality. If you&rsquo;re making pricing or investment decisions based on revenue figures that include unearned retainer income, you&rsquo;re working from a misleading picture.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"Billing model comparison: setup, revenue timing, and reporting needs\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-6-1.png\" alt=\"Comparison of hourly, retainer, and fixed-fee billing across QBO setup, revenue timing, cash flow, key QBO report, main risk, and best use: hourly uses service items and rates, recognizes revenue on invoice, and risks revenue leakage; retainer uses a liability account, recognizes revenue when work is performed, and risks misrecording as revenue; fixed-fee uses flat-rate service items, recognizes revenue on invoice or milestone, and risks scope creep\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 6: Billing model comparison<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-6-1.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">How hourly, retainer, and fixed-fee billing differ in cash flow timing, revenue recognition, and reporting<\/p>\r\n      <\/div>\r\n\r\n      <h3>Tracking Accounts Receivable and Client Balances<\/h3>\r\n      <p>With three billing types running simultaneously, staying on top of what each client owes you, and what you owe them in terms of unearned retainer services, requires clear reporting. QBO&rsquo;s Accounts Receivable Aging report is your primary tool for outstanding invoices. Your retainer liability account balance tells you how much work you still need to perform against prepaid funds.<\/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>What to Track<\/th><th>How Often<\/th><th>What to Look For<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Outstanding invoices<\/td><td>Weekly<\/td><td>Review AR Aging. Hourly invoices in particular can stack up if clients are slow to pay.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Retainer balances<\/td><td>Monthly<\/td><td>Check the unearned retainer liability account. Any balance that hasn&rsquo;t been worked down needs attention.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Unbilled WIP<\/td><td>At least monthly<\/td><td>Review unbilled billable time. Anything sitting there unreviewed is potential revenue not yet invoiced.<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Key Reports Every Accounting Firm Should Run Regularly<\/h3>\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Report<\/th><th>Where to Find It in QBO<\/th><th>What It Tells You<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Profit &amp; Loss by Service<\/td><td>Reports &rarr; P&amp;L<\/td><td>Revenue and margins broken down by billing type<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">AR Aging Summary<\/td><td>Reports &rarr; Accounts Receivable<\/td><td>Which clients owe you money and for how long<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Sales by Product\/Service<\/td><td>Reports &rarr; Sales<\/td><td>Which service items are generating the most revenue<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Balance Sheet<\/td><td>Reports &rarr; Balance Sheet<\/td><td>Confirms retainer liability balances are correct<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Unbilled Time (via Time)<\/td><td>Reports &rarr; Time<\/td><td>Hours logged but not yet invoiced; catch leakage<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\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>Common Setup Mistakes and How to Avoid Them<\/h2>\r\n      <\/div>\r\n\r\n      <p>These are the mistakes we see most often when reviewing QBO files for accounting firms that bill across multiple models. Each one is avoidable with the right setup, and each one creates a specific, predictable problem.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"Five common QuickBooks setup mistakes and what goes wrong\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-7.png\" alt=\"Five common QuickBooks setup mistakes and their impact: recording retainers as immediate revenue overstates income before work is performed; all revenue in one account gives no visibility into which model is profitable; not tracking billable time causes revenue leakage; inconsistent service items cause duplicate categories and reporting confusion; skipping monthly reconciliation causes client balance errors and inaccurate cash flow\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 7: Five common QuickBooks setup mistakes<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-7.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Five setup mistakes, what they cause, and why all of them are preventable<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-mistake\">\r\n        <div class=\"mas-publication-mistake-head\"><span class=\"mas-publication-mistake-tag\">Mistake 1<\/span><h4>Recording Retainer Payments as Immediate Revenue<\/h4><\/div>\r\n        <p><strong>What Happens:<\/strong> This is the most common and most consequential mistake. When a client sends their monthly retainer, it&rsquo;s tempting to record it as income because, practically speaking, the money is yours. But accounting treats it differently: you&rsquo;ve received cash and incurred an obligation to perform services. Until you perform them, it&rsquo;s a liability.<\/p>\r\n        <p><strong>The Impact:<\/strong> Your P&amp;L shows revenue in month one that you haven&rsquo;t actually earned. In months two and three, when you&rsquo;re doing the work, your P&amp;L looks less impressive than it should. Your financial statements don&rsquo;t reflect reality, and any decision based on them is compromised.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-mistake\">\r\n        <div class=\"mas-publication-mistake-head\"><span class=\"mas-publication-mistake-tag\">Mistake 2<\/span><h4>Combining All Revenue into a Single Account<\/h4><\/div>\r\n        <p><strong>What Happens:<\/strong> Hourly, retainer, and fixed-fee income all flow into &ldquo;Service Revenue.&rdquo;<\/p>\r\n        <p><strong>The Impact:<\/strong> You&rsquo;ll know your total revenue but nothing about the mix. You won&rsquo;t be able to tell whether your retainer book is growing, whether your fixed-fee engagements are profitable, or which hourly work generates the best margins. Separate accounts cost nothing to set up and make your reporting dramatically more useful.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-mistake\">\r\n        <div class=\"mas-publication-mistake-head\"><span class=\"mas-publication-mistake-tag\">Mistake 3<\/span><h4>Not Tracking Billable Time Properly<\/h4><\/div>\r\n        <p><strong>What Happens:<\/strong> For hourly billing, missed time entries mean missed revenue. A team member who spends two hours on a client call and doesn&rsquo;t log it is billing zero for that time. At &pound;150\/hour for a ten-person firm, this adds up quickly.<\/p>\r\n        <p><strong>Why It Matters:<\/strong> Beyond the revenue impact, inconsistent time tracking makes it impossible to know your actual realization rate or to have informed pricing conversations.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-mistake\">\r\n        <div class=\"mas-publication-mistake-head\"><span class=\"mas-publication-mistake-tag\">Mistake 4<\/span><h4>Inconsistent Service Item Setup<\/h4><\/div>\r\n        <p><strong>What Happens:<\/strong> Different team members create service items ad hoc: &ldquo;tax prep,&rdquo; &ldquo;Tax Preparation,&rdquo; &ldquo;tax return filing,&rdquo; &ldquo;Tax &mdash; Prep.&rdquo;<\/p>\r\n        <p><strong>The Impact and Fix:<\/strong> Your Sales by Product report becomes unusable. Establish a master list of service items, map each to the correct income account, and make it the only list anyone uses. When you need a new item, it goes through a brief review rather than getting created on the fly.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-mistake\">\r\n        <div class=\"mas-publication-mistake-head\"><span class=\"mas-publication-mistake-tag\">Mistake 5<\/span><h4>Neglecting Periodic Reconciliation<\/h4><\/div>\r\n        <p><strong>What Happens:<\/strong> Retainer liability balances, AR balances, and unbilled time all accumulate errors over time if they&rsquo;re not reviewed and reconciled regularly. The longer you leave it, the more tangled it gets.<\/p>\r\n        <p><strong>The Fix:<\/strong> A monthly reconciliation process, even a brief one, catches discrepancies when they&rsquo;re easy to fix rather than when they&rsquo;re a six-month backlog.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-statbox\">\r\n        <p class=\"mas-publication-box-title\">Quick Check<\/p>\r\n        <p>If you&rsquo;re not sure whether your current QBO setup has any of these issues, run a Balance Sheet report and look at your liability accounts. If there&rsquo;s no retainer liability account, or if the balance looks wrong, you likely have a setup problem worth correcting.<\/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>Building Efficient Workflows and Automations<\/h2>\r\n      <\/div>\r\n\r\n      <p>Good setup is the foundation. Consistent workflows are what make that setup sustainable over time. Here&rsquo;s how to build a billing operation that runs smoothly month after month without relying on memory or heroics.<\/p>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"Monthly billing workflow for a multi-model accounting firm\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-8.png\" alt=\"Six-step monthly billing cycle for a multi-model accounting firm: 1 review billable time logs, 2 generate hourly invoices, 3 apply retainer earnings by moving the earned portion from liability to revenue, 4 send fixed-fee recurring invoices, 5 reconcile client AR and retainer balances, 6 run profitability reports by billing model and client\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 8: Monthly billing workflow (six-step cycle)<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-8.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Monthly billing workflow for a firm managing all three billing types simultaneously<\/p>\r\n      <\/div>\r\n\r\n      <h3>Automating Recurring Invoices<\/h3>\r\n      <p>Any billing that happens on a predictable schedule should be automated. QBO&rsquo;s recurring transaction feature lets you set up invoices that generate and send automatically on a defined date. This is most useful for:<\/p>\r\n      <ul>\r\n        <li><strong>Fixed-fee monthly clients:<\/strong> set the invoice to send on the first of each month. No manual effort required.<\/li>\r\n        <li><strong>Retainer replenishment invoices:<\/strong> if you use evergreen retainers that top up to a fixed amount, set up a recurring retainer invoice at the start of each period.<\/li>\r\n        <li><strong>Subscription-style advisory packages:<\/strong> the same logic applies. If the amount and timing are fixed, automate it.<\/li>\r\n      <\/ul>\r\n\r\n      <div class=\"mas-publication-figure\" role=\"figure\" aria-label=\"QuickBooks Online new recurring invoice template\">\r\n        <img class=\"mas-publication-figure-img\" src=\"https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-9.png\" alt=\"QuickBooks Online New recurring invoice screen for a Monthly Bookkeeping Retainer template for Acme Consulting LLC, set to a monthly interval with start and first invoice dates, billing details for the monthly bookkeeping retainer service item, and automation options to automatically send emails and charge the payment method on file\" decoding=\"async\">\r\n        <div class=\"mas-publication-figure-fallback\"><div class=\"mas-publication-img-placeholder\"><strong>Image 9: QBO new recurring invoice setup<\/strong><span>Replace [https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/Img-9.png] with the image link<\/span><\/div><\/div>\r\n        <p class=\"mas-publication-caption\">Set the template type, interval, and client. The invoice will generate automatically on the date you specify. Review before it sends if your process requires approval.<\/p>\r\n      <\/div>\r\n\r\n      <h3>Using Projects and Classes for Reporting<\/h3>\r\n      <p>QBO&rsquo;s classes feature (available on Plus and Advanced plans) lets you tag transactions by a dimension that cuts across clients and service types. For a multi-billing firm, classes are useful for segmenting revenue by service line or by team. Projects are better suited for tracking the profitability of individual engagements: you can see total revenue, total cost, and margin for a specific client project.<\/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>Feature<\/th><th>Use It For<\/th><th>Best Question It Answers<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Classes<\/td><td>P&amp;L by business unit or service type across all clients<\/td><td>&ldquo;How is each service line or team performing?&rdquo;<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Projects<\/td><td>Per-engagement profitability, especially for fixed-fee work<\/td><td>&ldquo;Did the fee cover the actual cost of this engagement?&rdquo;<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-warning\">\r\n        <p class=\"mas-publication-box-title\">Key Rule<\/p>\r\n        <p>Don&rsquo;t use both classes and projects for the same purpose. Pick the one that matches the question you&rsquo;re trying to answer.<\/p>\r\n      <\/div>\r\n\r\n      <h3>Integrating Time-Tracking Tools<\/h3>\r\n      <p>QBO&rsquo;s built-in time tracking is adequate for simple setups. For firms with multiple staff tracking billable hours across many clients, a dedicated tool such as TSheets (now QuickBooks Time), Harvest, or Toggl integrates directly with QBO and makes the workflow significantly cleaner. The key requirement is that whatever tool you use, billable time should flow into QBO automatically rather than being re-entered manually.<\/p>\r\n\r\n      <h3>Monthly Review Process: What to Check and When<\/h3>\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Week 1<\/div><div class=\"mas-publication-step-text\"><span>Review all billable time from the prior month. Create hourly invoices. Send fixed-fee recurring invoices (if not automated).<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Week 1&ndash;2<\/div><div class=\"mas-publication-step-text\"><span>Process retainer earnings. Move the earned portion from the liability account to revenue. Invoice retainer clients for the month&rsquo;s work.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Week 2<\/div><div class=\"mas-publication-step-text\"><span>Run the AR Aging report. Follow up on any outstanding invoices over 30 days.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Month-end<\/div><div class=\"mas-publication-step-text\"><span>Reconcile retainer liability balances against client records. Confirm bank accounts are reconciled. Run P&amp;L by billing type and review for anomalies.<\/span><\/div><\/div>\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>When a Growing Accounting Firm Needs More Than Basic Setup<\/h2>\r\n      <\/div>\r\n\r\n      <p>For most firms, a well-configured QBO file handles multi-billing complexity without issue. But there are signs that a firm has grown beyond what the basic setup can support cleanly.<\/p>\r\n\r\n      <h3>Signs the Current Setup Is No Longer Sufficient<\/h3>\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>Warning Sign<\/th><th>What It Looks Like<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td class=\"mas-publication-td-strong\">Increasing client volume<\/td><td>Dozens of active retainer clients, dozens of hourly clients, and multiple fixed-fee packages. The manual overhead of managing billing in QBO grows significantly, and automation and integration become essential rather than optional.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Complex billing arrangements<\/td><td>Hybrid engagements (part retainer, part hourly), milestone-based fixed fees, or billing in multiple currencies require more sophisticated setup than a standard QBO configuration provides.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Reporting inconsistencies<\/td><td>Your P&amp;L and Balance Sheet don&rsquo;t reconcile cleanly, retainer balances can&rsquo;t be explained, or your team gives different answers to the same financial question. The underlying structure has a problem.<\/td><\/tr>\r\n            <tr><td class=\"mas-publication-td-strong\">Revenue recognition issues<\/td><td>You&rsquo;re trying to match revenue to the periods in which it was earned, and QBO&rsquo;s cash-basis or simple accrual setup isn&rsquo;t giving you what you need. A more structured setup or a reporting layer on top of QBO may be required.<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>What a Well-Designed QBO Structure Should Provide<\/h3>\r\n      <div class=\"mas-publication-table-scroll\">\r\n        <table class=\"mas-publication-table\">\r\n          <thead>\r\n            <tr><th>What You Should Be Able to See<\/th><th>How the Right Setup Provides It<\/th><\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>Revenue by billing type this month<\/td><td>Separate income accounts + Sales by Product report<\/td><\/tr>\r\n            <tr><td>Which clients are on retainer and their current balance<\/td><td>Retainer liability account + customer balance detail<\/td><\/tr>\r\n            <tr><td>Unbilled time for this period<\/td><td>Time tracking + Unbilled Time report<\/td><\/tr>\r\n            <tr><td>Profitability by engagement<\/td><td>QBO Projects or class-based P&amp;L<\/td><\/tr>\r\n            <tr><td>Cash vs. earned revenue this month<\/td><td>Balance Sheet (liability) vs. P&amp;L comparison<\/td><\/tr>\r\n            <tr><td>AR outstanding by client<\/td><td>AR Aging Summary report<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n\r\n      <h3>Maintaining a Scalable System Over Time<\/h3>\r\n      <p>The firms that maintain clean books long-term aren&rsquo;t the ones that had a perfect setup and never touched it again. They&rsquo;re the ones that built a few consistent habits:<\/p>\r\n\r\n      <div class=\"mas-publication-steps\">\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Habit 1<\/div><div class=\"mas-publication-step-text\"><span><strong>Periodic chart of accounts reviews<\/strong>, at least annually.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Habit 2<\/div><div class=\"mas-publication-step-text\"><span><strong>Standardized onboarding<\/strong> for new billing arrangements.<\/span><\/div><\/div>\r\n        <div class=\"mas-publication-step\"><div class=\"mas-publication-step-label\">Habit 3<\/div><div class=\"mas-publication-step-text\"><span><strong>Clear ownership<\/strong>: someone, whether internal or outsourced, who owns the monthly reconciliation and reporting process.<\/span><\/div><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"mas-publication-statbox\">\r\n        <p class=\"mas-publication-box-title\">Considering a Setup Review?<\/p>\r\n        <p>If you&rsquo;re finding that your QBO setup has grown organically and doesn&rsquo;t quite reflect how you bill today, a focused setup review is almost always faster and less painful than trying to work around the existing structure indefinitely.<\/p>\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\" aria-expanded=\"false\">\r\n          <span>Can QuickBooks Online handle hourly, retainer, and fixed-fee billing in the same file?<\/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 has everything you need to handle multi-model billing cleanly, but it isn&rsquo;t configured to do so out of the box. You need separate revenue accounts for each billing model, a liability account for unearned retainers, a distinct service item for each service you bill, and a consistent monthly workflow.<\/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\" aria-expanded=\"false\">\r\n          <span>How should I record a client retainer payment in QuickBooks Online?<\/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>Record it to a liability account such as &ldquo;Client Retainers &mdash; Unearned,&rdquo; not to income. The cash comes in and the liability increases. As work is performed, invoice the client for services delivered, mapped to your earned revenue account, and apply the retainer payment against the invoice. That reduces the liability and completes the revenue recognition cycle.<\/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\" aria-expanded=\"false\">\r\n          <span>Why is a retainer a liability and not revenue?<\/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>Because you&rsquo;ve received cash but still owe the client the work. Until you perform the services the retainer covers, the money is unearned. Recording it as income immediately overstates revenue and can make your practice look more profitable than it is.<\/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\" aria-expanded=\"false\">\r\n          <span>What chart of accounts does a multi-billing accounting firm need?<\/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>At minimum: Hourly Billing Revenue, Retainer Revenue (Earned), and Fixed-Fee Revenue as separate income accounts; a Client Retainers &mdash; Unearned liability account; and a Work in Progress (WIP) account for unbilled hourly time.<\/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\" aria-expanded=\"false\">\r\n          <span>How do I make sure all billable hours get invoiced?<\/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>Record time entries as billable against the right client and service item, use &ldquo;Add billable time&rdquo; when creating the invoice, review all unbilled time before sending, and run an unbilled time review at least monthly. A dedicated tool such as QuickBooks Time, Harvest, or Toggl that syncs to QBO automatically helps firms with multiple staff.<\/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\" aria-expanded=\"false\">\r\n          <span>Should I use classes or projects in QBO?<\/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>Use classes (available on Plus and Advanced plans) to see P&amp;L by business unit or service type across all clients. Use projects for per-engagement profitability, especially on fixed-fee work. Don&rsquo;t use both for the same purpose; pick the one that matches the question you&rsquo;re trying to answer.<\/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\" aria-expanded=\"false\">\r\n          <span>Which QBO reports should an accounting firm run regularly?<\/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>Profit &amp; Loss by Service, AR Aging Summary, Sales by Product\/Service, the Balance Sheet (to confirm retainer liability balances), and the Unbilled Time report. Review AR Aging weekly and retainer balances and unbilled time at least monthly.<\/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\" aria-expanded=\"false\">\r\n          <span>How can I tell if my current QBO setup has problems?<\/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>Run a Balance Sheet report and look at your liability accounts. If there&rsquo;s no retainer liability account, or the balance looks wrong, you likely have a setup problem worth correcting. Other signs include a single revenue account for all billing, duplicate service items, and a P&amp;L that can&rsquo;t show profitability by billing model.<\/p>\r\n        <\/div>\r\n      <\/div>\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<\/h2>\r\n      <\/div>\r\n\r\n      <h3>Build It Once, Run It Well<\/h3>\r\n      <p>Managing hourly billing, retainers, and fixed fees in the same QuickBooks file is entirely doable. The firms that do it well aren&rsquo;t doing anything complicated. They&rsquo;ve just made deliberate decisions about their chart of accounts, their service item setup, and their monthly workflow. Those decisions take a few hours to implement and pay off every single month.<\/p>\r\n\r\n      <p>The firms that struggle are the ones that started billing before setting up the structure. They have a working QBO file in the sense that invoices go out and money comes in, but their reports don&rsquo;t tell them much, their revenue recognition is off, and their retainer balances don&rsquo;t quite add up. That&rsquo;s fixable, but it&rsquo;s more work to fix than it would have been to set up correctly.<\/p>\r\n\r\n      <div class=\"mas-publication-quote\">\r\n        If you&rsquo;re reading this before you&rsquo;ve set up your multi-billing structure, use this guide to build it right from the start. If you&rsquo;re reading it because your current setup has problems, the same principles apply, just applied to a cleanup rather than a fresh start.\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 Resources<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/quickbooks.intuit.com\/learn-support\/\" target=\"_blank\" rel=\"noopener\">QuickBooks Online Help: Learn &amp; Support<\/a><\/li>\r\n          <li><a href=\"https:\/\/quickbooks.intuit.com\/time-tracking\/\" target=\"_blank\" rel=\"noopener\">QuickBooks Time (formerly TSheets): Time Tracking for QuickBooks<\/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\/publications\/p538\" target=\"_blank\" rel=\"noopener\">IRS: Publication 538, Accounting Periods and Methods<\/a><\/li>\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.sba.gov\/business-guide\/manage-your-business\/manage-your-finances\" target=\"_blank\" rel=\"noopener\">SBA: Manage Your Finances, 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 Resources<\/h3>\r\n        <ul>\r\n          <li><a href=\"https:\/\/maspartner.com\/en-us\/cpa-accounting\/\" target=\"_blank\" rel=\"noopener\">CPA Tax &amp; Accounting Services for Firms<\/a><\/li>\r\n          <li><a href=\"https:\/\/maspartner.com\/en-us\/case-studies\/restoring-financial-accuracy-in-quickbooks-online\/\" target=\"_blank\" rel=\"noopener\">Case Study: Restoring Financial Accuracy in QuickBooks Online<\/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\" id=\"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       aria-haspopup=\"dialog\">\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  <!-- Add an Elementor Shortcode widget BELOW this HTML widget containing:\r\n       [contact-form-7 id=\"d62a501\" title=\"Publication\"] -->\r\n  <div class=\"mas-publication-modal-overlay\" id=\"mas-publication-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mas-publication-modal-title\">\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 id=\"mas-publication-modal-title\">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    var MAS_PDF_URL = 'https:\/\/maspartner.com\/wp-content\/uploads\/2026\/10\/MASPARTNER_NetSuite_Chart_of_Accounts_Best_Practices_E-Guide.pdf.pdf';\r\n\r\n    function masIsRealUrl(href){\r\n      href = (href || '').trim();\r\n      return \/^https?:\\\/\\\/\/i.test(href) || (href.charAt(0) === '\/' && href.charAt(1) !== '[');\r\n    }\r\n\r\n    function masOpenUrl(url){\r\n      var w = window.open(url, '_blank');\r\n      if(w){ try{ w.opener = null; }catch(err){} }\r\n      else { window.location.href = url; }\r\n    }\r\n\r\n    \/\/ ---------- 0a. MOVE BUTTON + MODAL TO <body> ----------\r\n    \/\/ Escapes Elementor containers that use transform\/overflow, which break position:fixed.\r\n    var downloadWrap = document.getElementById('mas-publication-download');\r\n    var modal = document.getElementById('mas-publication-modal');\r\n\r\n    function masMoveToBody(el){\r\n      if(!el || el.parentNode === document.body) return;\r\n      Array.prototype.slice.call(document.body.children).forEach(function(child){\r\n        if(child !== el && child.id === el.id){\r\n          \/\/ Elementor editor re-render: keep any CF7 form from the old copy, drop the old copy\r\n          var oldForm = child.querySelector('.wpcf7');\r\n          var newSlot = el.querySelector('#mas-publication-cf7-slot');\r\n          if(oldForm && newSlot){ newSlot.appendChild(oldForm); }\r\n          child.parentNode.removeChild(child);\r\n        }\r\n      });\r\n      document.body.appendChild(el);\r\n    }\r\n    masMoveToBody(downloadWrap);\r\n    masMoveToBody(modal);\r\n\r\n    var downloadBtn = document.getElementById('mas-publication-download-btn');\r\n    var closeBtn = document.getElementById('mas-publication-modal-close');\r\n\r\n    \/\/ ---------- 0b. CF7: find the form, move it into the modal ----------\r\n    function masFindCf7(){\r\n      var slot = document.getElementById('mas-publication-cf7-slot');\r\n      if(!slot) return null;\r\n      var inSlot = slot.querySelector('.wpcf7');\r\n      if(inSlot) return inSlot;\r\n      var forms = Array.prototype.slice.call(document.querySelectorAll('.wpcf7')).filter(function(f){\r\n        return !f.closest('#mas-publication-modal') &&\r\n               !f.closest('header, footer, [data-elementor-type=\"header\"], [data-elementor-type=\"footer\"]');\r\n      });\r\n      for(var i = 0; i < forms.length; i++){\r\n        if(forms[i].closest('.elementor-widget-shortcode')) return forms[i];\r\n      }\r\n      return forms.length ? forms[0] : null;\r\n    }\r\n\r\n    var cf7Attempts = 0;\r\n    var cf7Interval = setInterval(function(){\r\n      cf7Attempts++;\r\n      var cf7Form = masFindCf7();\r\n      var cf7Slot = document.getElementById('mas-publication-cf7-slot');\r\n      if(cf7Form && cf7Slot){\r\n        clearInterval(cf7Interval);\r\n        if(!cf7Slot.contains(cf7Form)){\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        }\r\n        cf7Form.style.display = 'block';\r\n        \/\/ Initialise only if CF7 has not already done so (prevents double submission)\r\n        var innerForm = cf7Form.querySelector('form');\r\n        var alreadyInit = innerForm && (innerForm.wpcf7 || innerForm.getAttribute('data-status'));\r\n        if(innerForm && !alreadyInit && window.wpcf7){\r\n          if(typeof wpcf7.init === 'function'){ wpcf7.init(innerForm); }\r\n          else if(typeof wpcf7.initForm === 'function'){ wpcf7.initForm(innerForm); }\r\n        }\r\n      }\r\n      if(cf7Attempts > 80){ clearInterval(cf7Interval); }\r\n    }, 100);\r\n\r\n    function masOpenModal(){\r\n      if(!modal) return;\r\n      modal.classList.add('mas-publication-modal-open');\r\n      var c = modal.querySelector('.mas-publication-modal-close');\r\n      if(c){ try{ c.focus({ preventScroll:true }); }catch(err){ c.focus(); } }\r\n    }\r\n    function masCloseModal(){\r\n      if(!modal) return;\r\n      modal.classList.remove('mas-publication-modal-open');\r\n      if(downloadBtn){ try{ downloadBtn.focus({ preventScroll:true }); }catch(err){} }\r\n    }\r\n\r\n    if(downloadBtn){\r\n      downloadBtn.addEventListener('click', function(e){\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        var slot = document.getElementById('mas-publication-cf7-slot');\r\n        var thanksShown = modal && modal.classList.contains('mas-publication-thanks');\r\n        var formReady = slot && slot.querySelector('.wpcf7');\r\n        if(modal && (thanksShown || formReady)){\r\n          masOpenModal();\r\n        } else {\r\n          \/\/ No CF7 form on the page: open the PDF directly so the download always works\r\n          masOpenUrl(MAS_PDF_URL);\r\n        }\r\n      }, true);\r\n    }\r\n    if(closeBtn){\r\n      closeBtn.addEventListener('click', function(e){\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        masCloseModal();\r\n      }, true);\r\n    }\r\n    if(modal){\r\n      modal.addEventListener('click', function(e){\r\n        if(e.target === modal){ masCloseModal(); }\r\n      });\r\n    }\r\n    document.addEventListener('keydown', function(e){\r\n      if((e.key === 'Escape' || e.key === 'Esc') && modal && modal.classList.contains('mas-publication-modal-open')){\r\n        masCloseModal();\r\n      }\r\n    });\r\n\r\n    \/\/ ---------- 0c. AFTER CF7 SUBMISSION: show clickable download link ----------\r\n    document.addEventListener('wpcf7mailsent', function(event){\r\n      var modalEl = document.getElementById('mas-publication-modal');\r\n      if(!modalEl || !event.target || !modalEl.contains(event.target)) return; \/\/ only this popup's form\r\n      var modalInner = modalEl.querySelector('.mas-publication-modal');\r\n      if(!modalInner) return;\r\n\r\n      modalEl.classList.add('mas-publication-thanks');\r\n      modalInner.innerHTML = '';\r\n\r\n      var x = document.createElement('button');\r\n      x.type = 'button';\r\n      x.className = 'mas-publication-modal-close';\r\n      x.setAttribute('aria-label', 'Close');\r\n      x.innerHTML = '&times;';\r\n      x.addEventListener('click', function(e){ e.preventDefault(); e.stopPropagation(); masCloseModal(); }, true);\r\n\r\n      var h = document.createElement('h3');\r\n      h.id = 'mas-publication-modal-title';\r\n      h.textContent = 'Thank You!';\r\n\r\n      var p = document.createElement('p');\r\n      p.textContent = 'Your download is ready.';\r\n\r\n      var a = document.createElement('a');\r\n      a.className = 'mas-publication-modal-download';\r\n      a.href = MAS_PDF_URL;\r\n      a.target = '_blank';\r\n      a.rel = 'noopener';\r\n      a.textContent = 'Download PDF Now';\r\n      a.addEventListener('click', function(e){\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n        masOpenUrl(MAS_PDF_URL);\r\n      }, true); \/\/ capture phase - fires before Elementor handlers\r\n\r\n      modalInner.appendChild(x);\r\n      modalInner.appendChild(h);\r\n      modalInner.appendChild(p);\r\n      modalInner.appendChild(a);\r\n      closeBtn = x;\r\n      try{ a.focus({ preventScroll:true }); }catch(err){}\r\n    }, false);\r\n\r\n    \/\/ ---------- 1. SMOOTH SCROLL FOR TOC ----------\r\n    var OFFSET = 80;\r\n    var reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\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          e.stopPropagation();\r\n          var top = target.getBoundingClientRect().top + window.pageYOffset - OFFSET;\r\n          window.scrollTo({ top: top, behavior: reduceMotion ? 'auto' : 'smooth' });\r\n          if(history.replaceState){ history.replaceState(null, '', '#' + id); }\r\n        }\r\n      }, true); \/\/ capture phase - wins over Elementor anchor handlers\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        var secTop = sec.getBoundingClientRect().top + window.pageYOffset;\r\n        if(secTop <= 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          btn.setAttribute('aria-expanded', 'false');\r\n        } else {\r\n          item.classList.add('mas-faq-open');\r\n          panel.style.maxHeight = panel.scrollHeight + 'px';\r\n          btn.setAttribute('aria-expanded', 'true');\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. IMAGE PLACEHOLDERS ----------\r\n    \/\/ Each <img decoding=\"async\" src=\"[IMAGE_n_URL]\"> shows once the placeholder is replaced with a real URL.\r\n    \/\/ Until then (or if the image fails), a labelled placeholder box shows in its place.\r\n    wrap.querySelectorAll('.mas-publication-figure').forEach(function(fig){\r\n      var img = fig.querySelector('.mas-publication-figure-img');\r\n      if(!img) return;\r\n      var src = (img.getAttribute('src') || img.getAttribute('data-mas-src') || '').trim();\r\n      if(!masIsRealUrl(src)){\r\n        img.parentNode.removeChild(img); \/\/ placeholder box stays visible\r\n        return;\r\n      }\r\n      function masReady(){ if(img.naturalWidth > 0){ fig.classList.add('mas-img-ready'); } }\r\n      img.addEventListener('load', masReady);\r\n      img.addEventListener('error', function(){\r\n        fig.classList.remove('mas-img-ready');\r\n        if(img.parentNode){ img.parentNode.removeChild(img); }\r\n      });\r\n      if(!img.getAttribute('src')){ img.src = src; }\r\n      else if(img.complete){ masReady(); }\r\n    });\r\n\r\n    \/\/ ---------- 6. 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          if(!masIsRealUrl(href)){ e.preventDefault(); return; } \/\/ placeholder not replaced yet\r\n          e.preventDefault();\r\n          if(newTab){\r\n            masOpenUrl(href);\r\n          } else {\r\n            window.location.href = href;\r\n          }\r\n        }, true); \/\/ useCapture = true - 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<div class=\"elementor-element elementor-element-dacbfca e-flex e-con-boxed sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"dacbfca\" 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-2dc8883 sc_fly_static elementor-widget elementor-widget-shortcode\" data-id=\"2dc8883\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\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\/24774#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.2.2\" \/><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\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\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\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 QuickBooks Online for an Accounting Firm That Bills Hourly The Complete\u2026<\/p>\n","protected":false},"featured_media":24933,"template":"elementor_header_footer","class_list":["post-24774","publications","type-publications","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/24774","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":5,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/24774\/revisions"}],"predecessor-version":[{"id":24934,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/publications\/24774\/revisions\/24934"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/media\/24933"}],"wp:attachment":[{"href":"https:\/\/maspartner.com\/en-us\/wp-json\/wp\/v2\/media?parent=24774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}