How LLC Owners Save on Taxes in 2026

Consultant Find more write-offs — search your profession or a specific deduction
Try:
Others Also Use These Strategies
Business IRC §199A 2026 Law Update

Qualified Business Income (QBI) Deduction

Pass-through business owners (sole props, partnerships, S-Corps, LLCs) can deduct up to 23% of qualified business income starting in 2026, permanently under the OBBBA. The deduction reduces effective tax rates significantly.

Eligibility Requirements
  • Income from a pass-through entity or sole proprietorship
  • Taxable income below income thresholds for full deduction (consult advisor for 2026 inflation-adjusted limits)
  • Specified service trades may be phased out above thresholds
  • New minimum deduction of $400 for taxpayers with at least $1,000 of active QBI
Example Savings Scenario

A consultant earning $200,000 in QBI deducts $46,000 (23%), saving $17,020 at a 37% rate — $2,220 more than under the old 20% rule.

MERNA Strategy Notes

The OBBBA (July 4, 2025) permanently extended and increased the QBI deduction from 20% to 23% starting in 2026. W-2 wage and property limitations still apply above income thresholds. Restructuring into an S-Corp can maximize the W-2 wage limitation.

Common Mistake: Specified service businesses (law, health, consulting) phase out above income thresholds.
UNK Client Win Small Business Owner / Sole Proprietor

How a Denver Plumber Claimed a $36,000 QBI Deduction He Didn't Know Existed

A UNK client ran a plumbing business generating $180,000 in net income. His previous tax preparer had never mentioned the QBI deduction. Uncle Kam identified that he qualified for the full 23% deduction under the OBBBA — $41,400 off his taxable income. At his 22% marginal rate, this saved $9,108 in federal taxes. The deduction is now permanent, so the client is working with Uncle Kam to stack it with retirement contributions and S-Corp election for maximum benefit.

Result: $9,108 in annual federal tax savings through a deduction the client had been missing for years.

Own a pass-through business? The QBI deduction is now 23% and permanent. Book a call to confirm you're capturing the full amount.

Be the Next Win — Book a Call
Common Questions About Qualified Business Income (QBI) Deduction
Business IRC §199A

QBI Deduction — Section 199A (20% Pass-Through Deduction)

Pass-through business owners (sole props, S-Corps, LLCs, partnerships) can deduct up to 20% of qualified business income from taxable income. This is one of the largest tax breaks available to small business owners.

Eligibility Requirements
  • Own a pass-through business
  • Taxable income under $197,300 (single) or $394,600 (married) for full deduction
  • Specified service businesses (law, consulting, finance) phase out above these thresholds
Example Savings Scenario

A business owner with $200,000 in QBI at a 24% rate: 20% deduction = $40,000 reduction in taxable income = $9,600 in tax savings.

MERNA Strategy Notes

Set to expire after 2025 — Congress may extend. Maximize by keeping income below phase-out thresholds. W-2 wage limitation applies above thresholds.

Common Mistake: Specified service trades (law, consulting, financial services) lose the deduction above income thresholds.
UNK Client Win Freelancer / Self-Employed

How a Consultant Claimed a $42,000 QBI Deduction and Paid Tax on Only 80% of His Income

A UNK client earned $210,000 as an independent management consultant. He had heard of the QBI deduction but assumed his consulting work was a "specified service trade or business" (SSTB) that disqualified him. Uncle Kam analyzed the facts: management consulting is not on the IRS's SSTB list (which includes law, health, financial services, and performing arts — but not general consulting). Under the OBBBA, the client qualified for the full 23% QBI deduction: 23% x $210,000 = $48,300. At his 37% marginal rate, this saved $17,871 in federal taxes.

Result: $17,871 in annual federal tax savings through a deduction the client almost missed. Uncle Kam also implemented S-Corp election and retirement contributions to further reduce taxable income.

Self-employed or own a pass-through business? The QBI deduction could reduce your taxable income by 23% in 2026. Book a call to confirm you're capturing it.

Be the Next Win — Book a Call
Common Questions About QBI Deduction — Section 199A (20% Pass-Through Deduction)
Business IRC §280A

Home Office Deduction

Deduct a portion of your home expenses (mortgage interest, rent, utilities, insurance, depreciation) based on the percentage of your home used exclusively and regularly for business.

Eligibility Requirements
  • Self-employed, freelancer, or business owner
  • Space used exclusively and regularly for business
  • Principal place of business or where clients are met
Example Savings Scenario

A 200 sq ft office in a 2,000 sq ft home = 10% allocation. $30,000 in home expenses × 10% = $3,000 deduction, saving $1,110 at a 37% rate.

MERNA Strategy Notes

Actual expense method typically beats the simplified $5/sq ft method. S-Corp owners should use an accountable plan reimbursement instead of the home office deduction.

Common Mistake: W-2 employees cannot claim home office deductions under current tax law.
UNK Client Win Remote Worker / Freelancer

How a Remote Marketing Director Turned Her Spare Bedroom Into a $4,800 Annual Deduction

A UNK client worked fully remote as a freelance marketing director from a dedicated home office in her 1,800 sq ft Atlanta home. Her office was 180 sq ft — 10% of the home. Uncle Kam helped her calculate the actual expense method: $18,000 in rent × 10% = $1,800 in rent deduction, plus 10% of utilities ($480), internet ($180), and renter's insurance ($60). Total deduction: $2,520/year. After switching to a larger office space (240 sq ft = 13.3%), the deduction grew to $3,360. Combined with the simplified method comparison, the actual expense method won by $840/year.

Result: $3,360/year in home office deductions — $840 more per year than the simplified method. The client also deducted her desk, monitor, and office chair as equipment.

Work from home? You may be leaving thousands in home office deductions on the table. Book a call to calculate your exact deduction.

Be the Next Win — Book a Call
Common Questions About Home Office Deduction
Business IRC §280A Uncle Kam Clients Only

Business Consultant Home Office & Professional Setup Deduction

Business consultants working from home can deduct the home office space used exclusively for client work and business activities. A 300 sq ft office in a 2,500 sq ft home yields a 12% deduction of all home expenses — typically $4,000–$10,000 per year. Also deduct all office equipment, furniture, and technology used for consulting work under Section 179.

Eligibility Requirements
  • Must be a self-employed business or management consultant
  • Must use a dedicated space in your home exclusively and regularly for consulting
  • Equipment must be used for consulting work that generates income
  • Must report income on Schedule C
Example Savings Scenario

A business consultant using 15% of their home for consulting deducts $4,500/year in home office expenses, plus $3,000 in equipment, saving $2,775 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Education IRC §162 Uncle Kam Clients Only

Business Consultant Professional Development & Certification Deduction

Business consultants can deduct MBA programs (if maintaining/improving current consulting skills), executive education programs, industry certifications (PMP, Six Sigma, Lean), and professional association dues (IMC USA, ACME). A consultant spending $15,000 on an executive education program directly related to their consulting specialty deducts the full amount.

Eligibility Requirements
  • Must be a self-employed business or management consultant
  • Education must maintain or improve consulting skills
  • Certifications must be for your current consulting practice
  • Must have documentation of costs and business purpose
Example Savings Scenario

A management consultant spending $5,000 on PMP certification, $3,000 on a consulting mastermind, and $2,400 on industry conferences deducts $10,400, saving $3,848 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162 Uncle Kam Clients Only

Coach & Consultant Program Development & Course Creation Deduction

The cost of developing coaching programs, courses, and client materials is fully deductible. This includes course creation software (Kajabi, Teachable, Thinkific), graphic design tools (Canva Pro), video editing software, and professional photography for marketing materials. A coach spending $5,000 building a signature program deducts the full amount in the year incurred.

Eligibility Requirements
  • Must be creating coaching programs or consulting deliverables for business income
  • Development costs must be for business purposes
  • Software and tools used for course creation are deductible
  • Must report income on Schedule C
Example Savings Scenario

A business coach spending $8,000 on course platform (Kajabi), $3,600 on video production, $2,400 on graphic design, and $1,200 on copywriting deducts $15,200, saving $5,624 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Education IRC §162 Uncle Kam Clients Only

Coach & Consultant Mastermind & Professional Development Deduction

High-ticket masterminds, business coaching programs, and professional development investments are deductible when directly related to your coaching or consulting practice. A $10,000 mastermind investment is fully deductible as a business education expense under IRC §162. Also deduct books, online courses, podcasting equipment, and conference attendance.

Eligibility Requirements
  • Must be a self-employed coach or consultant
  • Education must maintain or improve skills in your current coaching/consulting work
  • Masterminds must have a business purpose (not personal development)
  • Must have documentation of costs and business purpose
Example Savings Scenario

A business consultant paying $12,000/year for a mastermind, $3,000 for ICF coaching certification, and $2,400 for business conferences deducts $17,400, saving $6,438 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Travel IRC §162 Uncle Kam Clients Only

Business Consultant Travel & Client Entertainment Deduction

Business consultants can deduct 100% of travel costs (flights, hotels, rental cars) when traveling to client sites, and 50% of business meals with clients. A consultant flying to client engagements 20 times per year can deduct $15,000–$30,000 in travel expenses. Keep records showing the business purpose and client name for every travel and entertainment expense.

Eligibility Requirements
  • Travel must have a primary business purpose (client meetings, project work)
  • Must document the business purpose for each trip
  • Meals are 50% deductible; lodging and transportation are 100% deductible
  • Client entertainment is no longer deductible (TCJA 2017)
Example Savings Scenario

A business consultant traveling to client sites spending $15,000/year on flights, hotels, and rental cars deducts $15,000 (plus 50% of $4,000 in meals = $2,000), saving $6,290 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162, §179 Uncle Kam Clients Only

Vehicle & Mileage Deduction

Deduct business vehicle expenses using the standard mileage rate or actual expenses (depreciation, gas, insurance, repairs). Section 179 and 100% bonus depreciation allow full expensing of heavy SUVs and trucks in Year 1.

Eligibility Requirements
  • Vehicle used for business purposes
  • Mileage log maintained for standard rate method
  • Heavy SUV (6,000+ lbs GVWR) for Section 179 bonus
Example Savings Scenario

Driving 20,000 business miles at 72.5¢/mile = $14,500 deduction. A $80,000 SUV over 6,000 lbs can be fully expensed under 100% bonus depreciation, saving $29,600 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162 Uncle Kam Clients Only

Business Travel Deduction

Deduct ordinary and necessary travel expenses when traveling away from home for business, including transportation, lodging, and 50% of meals.

Eligibility Requirements
  • Travel away from your tax home for business
  • Travel requires sleep or rest (overnight trip)
  • Primary purpose of the trip is business
Example Savings Scenario

A business owner spending $15,000/year on travel (flights, hotels, meals) deducts $13,500 (meals at 50%), saving $4,995 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §1366, Rev. Rul. 74-44 Uncle Kam Clients Only

S-Corp Reasonable Salary Optimization

S-Corp shareholders pay payroll taxes only on their "reasonable salary," not on all business profits. Distributions above the salary avoid 15.3% self-employment tax.

Eligibility Requirements
  • Operate as an S-Corporation
  • Pay yourself a reasonable salary for services rendered
  • Take remaining profits as distributions
Example Savings Scenario

A business earning $300,000 net. Salary set at $80,000 (reasonable). Distributions: $220,000. SE tax savings: $220,000 × 15.3% = $33,660/year.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §105, §9831 Uncle Kam Clients Only

Section 105 HRA / QSEHRA Health Reimbursement

Qualified Small Employer Health Reimbursement Arrangements (QSEHRAs) allow small businesses to reimburse employees for individual health insurance premiums and medical expenses tax-free.

Eligibility Requirements
  • Fewer than 50 full-time employees
  • No group health plan offered
  • Employees have individual health insurance coverage
Example Savings Scenario

A business owner reimbursing 5 employees $500/month each: $30,000 in annual reimbursements are fully deductible, saving $11,100 at a 37% rate vs. paying after-tax.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §274 Uncle Kam Clients Only

Business Meals Deduction

Deduct 50% of the cost of business meals where there is a genuine business discussion. The meal must not be lavish, and the business purpose must be documented.

Eligibility Requirements
  • Meal has a bona fide business purpose
  • Business is discussed before, during, or after the meal
  • Document: who, what business discussed, date, amount
Example Savings Scenario

Spending $20,000/year on business meals = $10,000 deduction, saving $3,700 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §45E Uncle Kam Clients Only

Retirement Plan Startup Tax Credit

Small businesses with 100 or fewer employees receive a tax credit of up to $5,000 per year for 3 years for the costs of starting a new retirement plan, plus an additional credit for employer contributions.

Eligibility Requirements
  • 100 or fewer employees earning at least $5,000
  • No retirement plan in the prior 3 years
  • At least one non-highly compensated employee participates
Example Savings Scenario

A 10-person company starting a 401(k) receives $5,000/year for 3 years = $15,000 in direct tax credits, covering most of the setup and administration costs.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §62(a)(2)(A), Reg. 1.62-2 Uncle Kam Clients Only

Accountable Plan Reimbursements

Establish a formal accountable plan to reimburse employees (including owner-employees) for business expenses tax-free. The business deducts the reimbursement; the employee pays no income or payroll tax on it.

Eligibility Requirements
  • Operate as an S-Corp, C-Corp, or partnership
  • Expenses have a business connection
  • Employee substantiates expenses and returns excess amounts
Example Savings Scenario

An S-Corp owner with $15,000 in home office, vehicle, and phone expenses reimburses through an accountable plan, saving $5,550 in combined income and payroll taxes.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §164, State Law Uncle Kam Clients Only

Pass-Through Entity Tax (PTET) SALT Workaround

Many states allow S-Corps and partnerships to elect to pay state income tax at the entity level, generating a federal deduction that bypasses the $10,000 SALT cap for individual owners.

Eligibility Requirements
  • S-Corp or partnership in a state with a PTET election
  • Owners subject to state income tax on pass-through income
  • Election made at the entity level by the state deadline
Example Savings Scenario

An S-Corp owner in California paying $50,000 in state income tax: PTET election moves $40,000 above the SALT cap to a federal deduction, saving $14,800 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §41 Uncle Kam Clients Only

Research & Development (R&D) Tax Credit

A dollar-for-dollar tax credit for qualified research expenses including wages, supplies, and contract research. Startups can apply up to $500,000/year against payroll taxes.

Eligibility Requirements
  • Conducting qualified research activities (new or improved products/processes)
  • Incurring qualified research expenses (wages, supplies, contract research)
  • Startups with < $5M revenue can apply against payroll taxes
Example Savings Scenario

A software company spending $500,000 on R&D wages qualifies for a $50,000–$100,000 federal tax credit, dollar-for-dollar against taxes owed.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §831(b) Uncle Kam Clients Only

Captive Insurance Company

A business owner creates their own insurance company to insure business risks. Premiums paid to the captive are deductible by the business; the captive pays tax only on investment income under §831(b).

Eligibility Requirements
  • Business with $2M+ in annual revenue
  • Genuine insurable business risks
  • Captive receives $2.45M or less in premiums (§831(b) election)
  • Proper actuarial analysis and domicile compliance
Example Savings Scenario

A business paying $1.2M in captive premiums deducts the full amount, saving $444,000 at a 37% rate. The captive pays minimal tax on investment income.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162, §3121(b)(3) Uncle Kam Clients Only

Hiring Family Members in Your Business

Hire your children or spouse in your business to shift income to lower tax brackets. Children under 18 working for a sole proprietorship or partnership owned by parents are exempt from FICA taxes.

Eligibility Requirements
  • Sole proprietorship or partnership owned by parents
  • Children performing legitimate work for the business
  • Wages must be reasonable for the work performed
Example Savings Scenario

Paying a 16-year-old child $15,750/year (2026 standard deduction): $0 federal income tax for the child, $15,750 deduction for the business, saving $5,828 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §45F Uncle Kam Clients Only

Employer-Provided Childcare Credit

Employers who provide or pay for childcare facilities for employees receive a tax credit of 25% of qualifying childcare expenditures and 10% of childcare resource and referral expenditures, up to $150,000/year.

Eligibility Requirements
  • Employer provides or pays for childcare facilities
  • Qualifying childcare expenditures for employees
  • Credit limited to $150,000 per year
Example Savings Scenario

An employer spending $500,000 on an on-site childcare facility receives a $125,000 tax credit (25%), plus the remaining $375,000 is deductible.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §179D Uncle Kam Clients Only

179D Energy-Efficient Commercial Building Deduction

Deduct up to $5.00 per square foot for energy-efficient improvements to commercial buildings, including HVAC, lighting, and building envelope upgrades.

Eligibility Requirements
  • Own or design commercial buildings
  • Building meets energy efficiency standards (ASHRAE)
  • Architects, engineers, and designers can claim on government buildings
Example Savings Scenario

A 50,000 sq ft commercial building with qualifying improvements generates $250,000 in deductions, saving $92,500 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
What Most Consultants Don't Know

The QBI deduction gives consultants a 23% discount on all net business income starting 2026 — most independent advisors never claim it because they assume it only applies to product businesses.

An S-Corp election can save consultants $10,000–$30,000/year in self-employment taxes — the single highest-ROI structural move for anyone billing over $50,000/year.

Every software subscription, professional development course, and client-related travel expense is 100% deductible — most consultants undercount these by $5,000–$15,000/year.

Who Uses This Strategy

This write-off is commonly used by the following taxpayer profiles. Click to see all strategies for your situation.

Common Questions for Consultants

Get answers to the most frequently asked tax questions for your profession.

What tax deductions can a consultant claim?
Consultants can deduct home office, computer and software, phone and internet (business %), professional development, business travel, client meals (50%), professional liability insurance, and retirement contributions. Most consultants miss $10,000\u2013$35,000 in deductions.
Should a consultant form an S-Corp?
Yes \u2014 consultants earning $60,000+ in net profit typically save $8,000\u2013$25,000/year with an S-Corp election. You pay yourself a reasonable salary and take remaining profits as distributions, which are not subject to the 15.3% self-employment tax.
What is the QBI deduction for consultants?
Consulting may be a Specified Service Trade or Business (SSTB), which phases out the QBI deduction at higher incomes ($197,300 single / $394,600 MFJ in 2026). However, management consulting and some business advisory services may qualify for the full 20% QBI deduction.
Can a consultant deduct professional development and courses?
Yes \u2014 courses, certifications, conferences, books, and coaching programs that maintain or improve your consulting skills are fully deductible. This includes MBA programs if you're already working as a consultant (not for a new career).
What retirement plan should a consultant use to reduce taxes?
A Solo 401(k) allows consultants to contribute up to $70,000/year ($77,500 if 50+). A SEP-IRA allows 20% of net income (max $70,000). A defined benefit plan can allow $100,000\u2013$300,000+/year for older, high-income consultants.
0
0 write-offs saved
Tap to view your list

Your Biggest Missed Deduction Is Probably Locked Above

Uncle Kam clients save an average of $15,000–$80,000/year. The strategies that make that possible are unlocked on a free strategy call.

Book A Free Strategy Call Free consultation. No obligation.
';// ── Open in a new window and print ─────────────────────────────── var win = window.open('', '_blank', 'width=850,height=700,scrollbars=yes,noopener=0'); if (!win) { // Fallback: inject an iframe for printing if popup is blocked var iframe = document.createElement('iframe'); iframe.style.cssText = 'position:fixed;top:-9999px;left:-9999px;width:850px;height:700px;border:0;'; document.body.appendChild(iframe); iframe.contentDocument.open(); iframe.contentDocument.write(html); iframe.contentDocument.close(); setTimeout(function() { iframe.contentWindow.focus(); iframe.contentWindow.print(); setTimeout(function() { document.body.removeChild(iframe); }, 2000); }, 600); return; } win.document.open(); win.document.write(html); win.document.close(); win.focus(); setTimeout(function() { win.print(); }, 600); }// ── Email Unlock: post to GHL silently, expand locked cards ────────────── function ukwfUnlockStrategies(e) { e.preventDefault(); // Support both the main wall form AND per-card gate forms var form = e ? e.target : null; var gateInput = form ? form.querySelector('.ukwf-gate-email-input') : null; var mainInput = document.getElementById('ukwf-unlock-email'); var emailInput = (gateInput && gateInput.value.trim()) ? gateInput : mainInput; var errorEl = document.getElementById('ukwf-unlock-error'); var email = emailInput ? emailInput.value.trim() : ''; // Also check the gate input if main is empty if (!email && gateInput) email = gateInput.value.trim(); // Basic email validation if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { if (errorEl) errorEl.style.display = 'block'; if (gateInput) { gateInput.style.borderColor = '#ff6b6b'; gateInput.focus(); } else if (emailInput) emailInput.focus(); return; } if (errorEl) errorEl.style.display = 'none'; if (gateInput) gateInput.style.borderColor = ''; // Disable all unlock buttons document.querySelectorAll('.ukwf-email-unlock-btn, .ukwf-gate-email-btn').forEach(function(b) { b.disabled = true; b.textContent = 'Unlocking...'; }); // Send lead to GHL via server-side PHP AJAX (bypasses webhook workflow) var professionEl = document.querySelector('.ukwf-profile-name'); var professionName = professionEl ? professionEl.textContent.trim().replace(/\s*Tax Write-Offs\s*&?\s*Deductions\s*$/i, '').trim() : ''; var nameParts = professionName.split('/'); var ghlFirstName = nameParts[0] ? nameParts[0].trim() : professionName; var ghlLastName = nameParts[1] ? nameParts[1].trim() : 'Tax Write-Off Finder'; var ajaxUrl = (typeof ukwfConfig !== 'undefined' && ukwfConfig.ajaxUrl) ? ukwfConfig.ajaxUrl : '/wp-admin/admin-ajax.php'; var nonce = (typeof ukwfConfig !== 'undefined' && ukwfConfig.leadNonce) ? ukwfConfig.leadNonce : ''; var formData = new FormData(); formData.append('action', 'ukwf_ghl_lead'); formData.append('nonce', nonce); formData.append('email', email); formData.append('firstName', ghlFirstName); formData.append('lastName', ghlLastName); formData.append('profession', professionName); formData.append('source', 'ukwf-unlock'); formData.append('page', window.location.pathname); fetch(ajaxUrl, { method: 'POST', body: formData }).catch(function() {}); // fire-and-forget // Expand all locked cards immediately ukwfDoUnlock(); } function ukwfDoUnlock() { // Hide the email wall var wall = document.getElementById('ukwf-email-unlock-wall'); if (wall) { wall.style.transition = 'opacity 0.3s ease'; wall.style.opacity = '0'; setTimeout(function() { wall.style.display = 'none'; }, 300); } // Unlock all locked cards instantly — no stagger (stagger caused 4+ second delay for 70+ cards) var lockedCards = document.querySelectorAll('.ukwf-result-card--locked'); lockedCards.forEach(function(card) { // Remove locked state — keep collapsed so user can open each card individually card.classList.remove('ukwf-result-card--locked'); card.classList.add('ukwf-result-card--open'); // Clear any inline styles that might block the toggle var body = card.querySelector('.ukwf-result-body'); if (body) { body.style.display = ''; body.style.maxHeight = ''; } // Remove lock badge var badge = card.querySelector('.ukwf-result-lock-badge'); if (badge) badge.style.display = 'none'; // Replace the locked gate with an unlocked badge var gate = card.querySelector('.ukwf-locked-strategy-gate'); if (gate) { gate.innerHTML = '
Unlocked — tap to expand
'; } }); // Show success banner var banner = document.getElementById('ukwf-unlock-banner'); if (banner) { banner.style.display = 'flex'; } // Persist unlock in localStorage so it survives refresh, tab close, and navigation // Uses the same ukwfSetUnlocked() that the book-call path uses, which sets // localStorage key 'ukwf_unlocked' = '1'. The main script block already checks // ukwfIsUnlocked() on page load and calls ukwfUnlockAll() automatically. if (typeof ukwfSetUnlocked === 'function') { ukwfSetUnlocked(); } else { try { localStorage.setItem('ukwf_unlocked', '1'); } catch(err) {} } // Also run the main unlock function to handle any card variants we might miss if (typeof ukwfUnlockAll === 'function') { ukwfUnlockAll(); } } // NOTE: Auto-unlock on page load is handled by the main script block which // checks ukwfIsUnlocked() and calls ukwfUnlockAll(). No DOMContentLoaded // listener needed here (it was broken anyway because LiteSpeed defers scripts // past DOMContentLoaded)./* ── Sticky Save Bar ───────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2'; var bar = document.getElementById('ukwf-sticky-save-bar'); var countEl = document.getElementById('ukwf-sticky-save-count'); var badgeEl = document.getElementById('ukwf-sticky-cart-badge'); var savingsWrap = document.getElementById('ukwf-sticky-save-savings'); var savingsRange = document.getElementById('ukwf-sticky-savings-range'); if (!bar || !countEl) return;var _prevCount = 0;/* Parse a savings string like "$1,200–$4,500/year" -> {min, max} */ function parseSavings(str) { if (!str) return null; var nums = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/).filter(Boolean); var vals = nums.map(function(n) { return parseInt(n, 10); }).filter(function(n) { return !isNaN(n) && n > 0; }); if (vals.length === 0) return null; if (vals.length === 1) return { min: vals[0], max: vals[0] }; return { min: Math.min.apply(null, vals), max: Math.max.apply(null, vals) }; }/* Format a number as $XK or $X.XM */ function fmtMoney(n) { if (n >= 1000000) return '$' + (n / 1000000).toFixed(1).replace(/\.0$/, '') + 'M'; if (n >= 1000) return '$' + Math.round(n / 1000) + 'K'; return '$' + n.toLocaleString(); }/* Animated count-up for a single element */ function animateCount(el, from, to, duration) { if (from === to) { el.textContent = to; return; } var start = null; function step(ts) { if (!start) start = ts; var progress = Math.min((ts - start) / duration, 1); var ease = 1 - Math.pow(1 - progress, 3); el.textContent = Math.round(from + (to - from) * ease); if (progress < 1) requestAnimationFrame(step); else el.textContent = to; } requestAnimationFrame(step); }function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } }function updateBar() { var saved = getSaved(); var n = saved.length;/* Count-up animation when count changes */ if (n !== _prevCount) { animateCount(countEl, _prevCount, n, 600); if (badgeEl) animateCount(badgeEl, _prevCount, n, 600); /* Pop animation on bar when count increases */ if (n > _prevCount) { bar.classList.remove('ukwf-sticky-bar-pop'); void bar.offsetWidth; bar.classList.add('ukwf-sticky-bar-pop'); } _prevCount = n; }if (n > 0) { bar.classList.add('ukwf-sticky-save-bar--visible');/* Calculate total savings range */ var totalMin = 0, totalMax = 0, hasSavings = false; saved.forEach(function(item) { var p = parseSavings(item.savings || ''); if (p) { totalMin += p.min; totalMax += p.max; hasSavings = true; } });if (hasSavings && savingsWrap && savingsRange) { var rangeStr = totalMin === totalMax ? fmtMoney(totalMin) : fmtMoney(totalMin) + '–' + fmtMoney(totalMax); savingsRange.textContent = rangeStr; savingsWrap.style.display = ''; } else if (savingsWrap) { savingsWrap.style.display = 'none'; } } else { bar.classList.remove('ukwf-sticky-save-bar--visible'); if (savingsWrap) savingsWrap.style.display = 'none'; } }/* Update whenever a save/unsave happens */ window.addEventListener('ukwfSavedChanged', updateBar); /* Cross-tab sync */ window.addEventListener('storage', function(e) { if (e.key === SAVED_KEY) updateBar(); }); /* Expose globally */ window.ukwfStickyBarRefresh = updateBar; updateBar(); })();/* ── CART DRAWER ────────────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2'; var drawer = document.getElementById('ukwf-cart-drawer'); var overlay = document.getElementById('ukwf-cart-overlay'); var itemsList = document.getElementById('ukwf-cart-items'); var emptyEl = document.getElementById('ukwf-cart-empty'); var footerEl = document.getElementById('ukwf-cart-footer'); var savingsStrip = document.getElementById('ukwf-cart-savings-strip'); var savingsAmount = document.getElementById('ukwf-cart-savings-amount'); var headerSub = document.getElementById('ukwf-cart-header-sub'); var footerCount = document.getElementById('ukwf-cart-footer-count'); if (!drawer) return;function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } } function setSaved(arr) { localStorage.setItem(SAVED_KEY, JSON.stringify(arr)); window.dispatchEvent(new CustomEvent('ukwfSavedChanged')); if (typeof window.ukwfStickyBarRefresh === 'function') window.ukwfStickyBarRefresh(); if (typeof window.ukwfSavedBadgeRefresh === 'function') window.ukwfSavedBadgeRefresh(); } function parseSavings(str) { if (!str) return null; var nums = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/).filter(Boolean); var vals = nums.map(function(n){ return parseInt(n,10); }).filter(function(n){ return !isNaN(n) && n > 0; }); if (!vals.length) return null; if (vals.length === 1) return { min: vals[0], max: vals[0] }; return { min: Math.min.apply(null,vals), max: Math.max.apply(null,vals) }; } function fmtMoney(n) { if (n >= 1000000) return '$' + (n/1000000).toFixed(1).replace(/\.0$/,'') + 'M'; if (n >= 1000) return '$' + Math.round(n/1000) + 'K'; return '$' + n.toLocaleString(); } function getCatIcon(cat) { var icons = { 'vehicle':'', 'home':'', 'travel':'', 'equipment':'', 'health':'', 'retirement':'', 'education':'', 'real estate':'' }; var k = (cat || '').toLowerCase(); for (var key in icons) { if (k.indexOf(key) !== -1) return icons[key]; } return ''; } function renderItems() { var saved = getSaved(); var n = saved.length; /* Update header sub */ if (headerSub) headerSub.textContent = n + ' deduction' + (n !== 1 ? 's' : '') + ' saved'; /* Show/hide empty state */ if (emptyEl) emptyEl.style.display = n === 0 ? '' : 'none'; if (footerEl) footerEl.style.display = n === 0 ? 'none' : ''; /* Savings strip */ var totalMin = 0, totalMax = 0, hasSavings = false; saved.forEach(function(item) { var p = parseSavings(item.savings || ''); if (p) { totalMin += p.min; totalMax += p.max; hasSavings = true; } }); if (hasSavings && savingsStrip) { savingsStrip.style.display = ''; var rangeStr = totalMin === totalMax ? fmtMoney(totalMin) : fmtMoney(totalMin) + ' – ' + fmtMoney(totalMax); if (savingsAmount) savingsAmount.textContent = rangeStr; } else if (savingsStrip) { savingsStrip.style.display = 'none'; } /* Footer count */ if (footerCount) footerCount.textContent = n > 0 ? n + ' write-off' + (n !== 1 ? 's' : '') + ' in your list' : ''; /* Remove existing items (keep empty state) */ var existing = itemsList ? itemsList.querySelectorAll('.ukwf-cart-item') : []; existing.forEach(function(el) { el.parentNode.removeChild(el); }); /* Render each item */ saved.forEach(function(item, idx) { var div = document.createElement('div'); div.className = 'ukwf-cart-item'; div.style.animationDelay = (idx * 0.04) + 's'; div.innerHTML = '
' + getCatIcon(item.category) + '
' + '
' + '
' + escHtml(item.name || item.slug) + '
' + (item.category ? '
' + escHtml(item.category) + '
' : '') + (item.savings ? '
' + escHtml(item.savings) + '/yr
' : '') + '
' + ''; /* Remove button handler */ div.querySelector('.ukwf-cart-item-remove').addEventListener('click', function() { var slug = this.getAttribute('data-slug'); var arr = getSaved().filter(function(i){ return i.slug !== slug; }); setSaved(arr); /* Animate out */ div.style.transition = 'opacity 0.18s, transform 0.18s'; div.style.opacity = '0'; div.style.transform = 'translateX(20px)'; setTimeout(function() { renderItems(); }, 180); /* Also update save buttons on page */ document.querySelectorAll('.ukwf-card-save-btn[data-slug="' + slug + '"]').forEach(function(btn) { btn.classList.remove('ukwf-card-save-btn--saved'); btn.setAttribute('aria-pressed','false'); var lbl = btn.querySelector('.ukwf-card-save-label'); if (lbl) lbl.textContent = 'Save'; }); }); if (itemsList) itemsList.appendChild(div); }); } function escHtml(s) { return String(s).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function escAttr(s) { return String(s).replace(/"/g,'"').replace(/'/g,'''); } /* Open / close */ window.ukwfCartDrawerOpen = function() { renderItems(); if (drawer) drawer.classList.add('ukwf-cart-drawer--open'); if (overlay) overlay.classList.add('ukwf-cart-overlay--open'); document.body.style.overflow = 'hidden'; }; window.ukwfCartDrawerClose = function() { if (drawer) drawer.classList.remove('ukwf-cart-drawer--open'); if (overlay) overlay.classList.remove('ukwf-cart-overlay--open'); document.body.style.overflow = ''; }; window.ukwfCartClearAll = function() { if (!confirm('Remove all saved write-offs?')) return; setSaved([]); renderItems(); }; /* Keyboard close */ document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { window.ukwfCartDrawerClose(); } }); /* Re-render when saves change */ window.addEventListener('ukwfSavedChanged', function() { if (drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { renderItems(); } }); window.addEventListener('storage', function(e) { if (e.key === SAVED_KEY && drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { renderItems(); } }); })();/* ── CARD SAVE BUTTONS ──────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2';function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } } function setSaved(arr) { localStorage.setItem(SAVED_KEY, JSON.stringify(arr)); } function isSaved(slug) { return getSaved().some(function(i) { return i.slug === slug; }); } function updateBtn(btn) { var slug = btn.getAttribute('data-slug'); var saved = isSaved(slug); btn.classList.toggle('ukwf-card-save-btn--saved', saved); btn.setAttribute('aria-pressed', saved ? 'true' : 'false'); var label = btn.querySelector('.ukwf-card-save-label'); if (label) label.textContent = saved ? 'Saved' : 'Save'; } function initAllBtns() { document.querySelectorAll('.ukwf-card-save-btn').forEach(function(btn) { updateBtn(btn); btn.addEventListener('click', function(e) { e.stopPropagation(); var slug = btn.getAttribute('data-slug'); var name = btn.getAttribute('data-name'); var cat = btn.getAttribute('data-category') || ''; var savings = btn.getAttribute('data-savings') || ''; var saved = getSaved(); var idx = saved.findIndex(function(i) { return i.slug === slug; }); if (idx === -1) { saved.push({ slug: slug, name: name, category: cat, savings: savings, savedAt: Date.now() }); } else { saved.splice(idx, 1); } setSaved(saved); updateBtn(btn); /* Sync badge and sticky bar */ window.dispatchEvent(new CustomEvent('ukwfSavedChanged')); if (typeof window.ukwfSavedBadgeRefresh === 'function') window.ukwfSavedBadgeRefresh(); if (typeof window.ukwfStickyBarRefresh === 'function') window.ukwfStickyBarRefresh(); }); }); } /* Init on load and re-sync on saved changes from autocomplete */ if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAllBtns); } else { initAllBtns(); } window.addEventListener('ukwfSavedChanged', function() { document.querySelectorAll('.ukwf-card-save-btn').forEach(updateBtn); }); })();