Active vs Passive Income Tracking: Different Metrics for Different Streams

I just finished calculating my “true hourly rate” for my freelance consulting work and nearly had a panic attack.

What I thought I was making: $150/hour (gross rate I charge clients)

What I’m actually making: $78/hour (after ALL costs and hidden time)

And that’s for my active income — the money I trade my time for directly.

Meanwhile, I have a digital course I created last year that’s still earning $1,200/month with maybe 2 hours of maintenance work. That’s passive income at an effective rate of $600/hour.

But here’s the problem: I was tracking both income streams the exact same way in Beancount.

open Income:Freelance:Consulting
open Income:Passive:CoursesSales

Recording them? Sure. Understanding their true profitability? Not even close.

Why Active and Passive Income Need Different Metrics

After diving into this, I realized that the same dollar of income means completely different things depending on how it was earned.

Active Income: It’s All About Time Cost

When you trade time for money, the key metric is true hourly rate:

True Hourly Rate = (Revenue - Direct Costs - Hidden Costs - Extra Taxes) ÷ Total Hours

This includes:

  • Direct costs: Software subscriptions, equipment, materials
  • Hidden costs: Childcare, commuting, health impact
  • Hidden time: Invoicing, emails, client management, marketing
  • Extra taxes: Self-employment tax (15.3%), income tax difference from W-2

Research shows most people running side hustles are making less than minimum wage when they calculate their true hourly rate.

Example: A delivery driver thinking they make $25/hour might actually be making $11/hour after gas, maintenance, and unpaid waiting time.

Passive Income: It’s All About Return on Time Invested

Passive income has a completely different ROI structure because you invest time upfront and earn over time.

The key metric is Time-Adjusted ROI:

Time-Adjusted ROI = Total Revenue to Date ÷ Initial Hours Invested

And this number improves over time as the asset continues earning.

According to 2026 data, realistic passive income timelines look like:

  • 3-12 months of intensive upfront work (50-200 hours for digital products)
  • 2-5 hours per week of ongoing maintenance
  • 12-36 months before ROI matches or exceeds active income rates

Example: I spent 120 hours creating my course last year. It’s earned $14,400 so far (12 months × $1,200). That’s an effective rate of $120/hour — and it’s still earning.

By month 24, if revenue continues, that rate could climb to $240/hour.

My Broken Tracking Setup (Before)

Here’s how I was tracking income before I understood this difference:

; Active income
2026-02-01 * "Client A" "Consulting project" #hours:16
  Assets:Checking                     2,400.00 USD
  Income:Freelance:Consulting        -2,400.00 USD

; Passive income
2026-02-01 * "Gumroad" "Course sales"
  Assets:Checking                     1,200.00 USD
  Income:Passive:CourseSales         -1,200.00 USD

What’s wrong with this?

  1. No upfront investment tracking for the course (120 hours of work = invisible)
  2. No cost allocation for consulting (software, taxes, hidden time = invisible)
  3. No time-adjusted metrics (can’t compare profitability across streams)

Result: I was prioritizing consulting work (higher gross $$) over passive income development (higher ROI per hour invested).

My New Tracking Setup (After)

For Active Income: Track True Cost Per Project

; Track the gross income
2026-02-05 * "Client A" "Website redesign project" #hours:16 #category:consulting
  Assets:Checking                     2,400.00 USD
  Income:Freelance:Consulting        -2,400.00 USD

; Allocate taxes immediately
2026-02-05 * "Tax Reserve" "30% self-employment + income tax"
  Assets:Checking                      -720.00 USD
  Assets:Savings:TaxReserve             720.00 USD

; Track hidden costs
2026-02-05 * "Project Costs" "Software + admin time"
  Expenses:Business:Software            55.00 USD  ; Adobe subscription
  Expenses:Business:AdminTime          320.00 USD  ; 2 hrs @ $160 opportunity cost
  Assets:Checking                     -375.00 USD

; Track hidden admin time separately
2026-02-05 * "Admin Time" "Client mgmt, invoicing" #hours:2
  Expenses:Business:AdminTime          320.00 USD
  Assets:Checking                     -320.00 USD

Now I can calculate true hourly rate:

Revenue: $2,400
Taxes: -$720
Direct costs: -$55
Admin time cost: -$320
Net: $1,305

Total hours: 16 (project) + 2 (admin) = 18 hours
True hourly rate: $1,305 ÷ 18 = $72.50/hour

Much lower than my $150 gross rate.

For Passive Income: Track Upfront Investment + Ongoing Returns

; Track initial time investment (one-time)
2025-02-01 * "Course Creation" "Initial build time" #hours:120
  Assets:TimeInvested:Course          120.00 HOURS
  Equity:TimeBank                    -120.00 HOURS
  note: "Digital course development"

; Track monthly revenue (ongoing)
2026-02-01 * "Gumroad" "Course sales - Feb 2026" #hours:2
  Assets:Checking                     1,200.00 USD
  Income:Passive:CourseSales         -1,200.00 USD
  note: "Month 12, maintenance only"

Now I can calculate time-adjusted ROI:

Total hours invested: 120 (initial) + (12 months × 2 hrs) = 144 hours
Total revenue to date: $14,400 (12 months × $1,200)
Effective hourly rate: $14,400 ÷ 144 = $100/hour

Projected at month 24: $28,800 ÷ 168 hrs = $171/hour

And this rate keeps improving as the asset earns with minimal maintenance.

The “Kill Threshold” Decision Framework

Now that I’m tracking both streams properly, I can make data-driven decisions about where to invest my time.

My rules:

  1. Active income projects must clear $75/hour true rate (after all costs)
  2. Passive income projects must show $50/hour effective rate by month 6
  3. If a stream drops below threshold for 3 months, kill it and redirect time elsewhere

This framework helped me:

  • Drop a low-paying consulting client ($45/hr true rate) and replace with higher-value work
  • Double down on course creation (effective rate climbing from $100/hr to projected $171/hr)
  • Say no to a new side project that would have paid $60/hr gross but only $30/hr true rate

Comparing Active vs Passive: The Real Trade-Offs

Here’s what my tracking revealed about the fundamental differences:

Metric Active Income Passive Income
Initial effort Low (client calls, proposals) High (50-200 hours)
Time to first dollar Fast (1-2 weeks) Slow (3-12 months)
Revenue ceiling Limited by hours (40-60/week max) Unlimited (24/7 earning)
Income stability High variance (project-based) Low variance (steady drip)
Hourly rate trajectory Flat or declining (burnout) Improving (asset compounds)
Scalability Low (trade time for money) High (one-to-many)
Tax efficiency Lower (SE tax + marginal rate) Higher (potentially long-term gains)

Key insight: Active income gives you cash flow today. Passive income gives you leverage tomorrow.

The optimal strategy isn’t choosing one — it’s balancing both based on your current needs and long-term goals.

Queries to Track the Metrics

Here’s how I query this data in Beancount:

True hourly rate by income stream:

SELECT
  account,
  SUM(COST(position)) as total_revenue,
  SUM(CAST(GET_META(account, 'hours') AS DECIMAL)) as total_hours,
  SUM(COST(position)) / NULLIF(SUM(CAST(GET_META(account, 'hours') AS DECIMAL)), 0) as hourly_rate
FROM entries
WHERE account ~ 'Income:Freelance'
  AND date >= 2026-01-01
GROUP BY account
ORDER BY hourly_rate DESC

Passive income ROI over time:

SELECT
  YEAR(date) as year,
  MONTH(date) as month,
  SUM(COST(position)) as monthly_revenue,
  SUM(SUM(COST(position))) OVER (ORDER BY YEAR(date), MONTH(date)) as cumulative_revenue,
  144 as total_hours_invested,
  SUM(SUM(COST(position))) OVER (ORDER BY YEAR(date), MONTH(date)) / 144 as effective_hourly_rate
FROM entries
WHERE account = 'Income:Passive:CourseSales'
GROUP BY YEAR(date), MONTH(date)
ORDER BY year, month

Income stream comparison:

SELECT
  CASE
    WHEN account ~ 'Income:Freelance' THEN 'Active'
    WHEN account ~ 'Income:Passive' THEN 'Passive'
  END as income_type,
  SUM(COST(position)) as total_income,
  AVG(COST(position) / NULLIF(CAST(GET_META(account, 'hours') AS DECIMAL), 0)) as avg_hourly_rate
FROM entries
WHERE account ~ 'Income'
  AND date >= 2026-01-01
GROUP BY income_type

My Questions for the Community

1. How do you track upfront time investment for passive income projects?

Do you use a separate Assets:TimeInvested account like I do? Or a different approach?

2. What’s your “kill threshold” for side hustles?

At what true hourly rate do you cut a project and redirect that time elsewhere?

3. Do you track opportunity cost of your time?

When I spend 2 hours on admin work, I record it at my $160/hr consulting rate (opportunity cost). Does this make sense or is it overthinking?

4. How do you handle tax differences between active and passive income?

Should I be tracking self-employment tax (15.3%) separately for active income since passive income doesn’t incur it?

5. What about passive income that takes YEARS to pay off?

I’m considering writing a book (300+ hours upfront), but the ROI timeline might be 3-5 years. How do you evaluate these long-horizon projects?


TL;DR: Active income and passive income have fundamentally different economics. If you track them the same way in Beancount, you’re flying blind on what’s actually profitable. Track true hourly rate for active work (including all hidden costs and time) and time-adjusted ROI for passive assets (upfront investment amortized over ongoing earnings). The data will change how you allocate your time.


Sources:

This hits close to home. I went through this exact same revelation about 18 months ago when I left my corporate consulting job to go freelance.

Your $150/hr → $78/hr calculation mirrors my experience almost exactly.

The “Billable Hours” Trap

When I was at a Big 4 firm, I thought I understood hourly rates. The firm billed me out at $250/hr, I saw ~$65/hr in salary, seemed straightforward.

But when I went freelance and started charging $175/hr, I thought I was almost tripling my income.

Then I tracked it properly for 3 months and realized my true rate was $92/hr after:

  • Self-employment tax (15.3% that my employer used to cover)
  • Health insurance ($850/month, used to be $120/month through employer)
  • Software licenses ($180/month for tools I used to get free)
  • Unbilled client management time (roughly 25% of total hours)
  • Business development and marketing (another 15% of my time with $0 revenue)

The math that shocked me:

Gross monthly revenue: $12,250 (70 billable hours × $175)
Total hours worked: 110 hours (70 billable + 40 unbillable)
Gross rate: $175/hr (what I charged)
True rate: $92/hr (after costs and unbilled time)

I was making more than my old salary in gross terms, but less per hour of actual work once I included all the hidden overhead.

How I Track True Hourly Rate in Beancount

Your approach is solid, but I’ve simplified mine over time. Here’s my current setup:

1. Track ALL Time, Not Just Billable Time

2026-02-01 * "Client A" "Financial model review" #hours:8 #billable:true
  Assets:AccountsReceivable:ClientA   1,400.00 USD
  Income:Freelance:Consulting        -1,400.00 USD

2026-02-01 * "Client Calls" "Non-billable client management" #hours:2 #billable:false
  Expenses:Business:UnbilledTime        350.00 USD
  Equity:OpportunityCost               -350.00 USD

2026-02-01 * "Marketing" "LinkedIn content, networking" #hours:3 #billable:false
  Expenses:Business:Marketing           525.00 USD
  Equity:OpportunityCost               -525.00 USD

I record unbilled time at my target hourly rate ($175) as an opportunity cost. This creates a clear picture of where my time actually goes.

2. Use Project-Level Profitability Tracking

Instead of global hourly rates, I track per-client profitability:

; Client A project
2026-02-15 * "Client A Invoice" "Q1 Financial Planning" #project:ClientA-Q1 #hours:24
  Assets:AccountsReceivable:ClientA   4,200.00 USD
  Income:Freelance:Consulting        -4,200.00 USD

; Client A unbilled time (same project tag)
2026-02-15 * "Client A Meetings" "Scope discussions" #project:ClientA-Q1 #hours:4
  Expenses:Business:UnbilledTime        700.00 USD
  Equity:OpportunityCost               -700.00 USD

Then I can query by project:

SELECT
  project_tag,
  SUM(CASE WHEN account ~ 'Income' THEN -COST(position) ELSE 0 END) as revenue,
  SUM(CASE WHEN account ~ 'Expenses' THEN COST(position) ELSE 0 END) as costs,
  SUM(hours) as total_hours,
  (SUM(CASE WHEN account ~ 'Income' THEN -COST(position) ELSE 0 END) -
   SUM(CASE WHEN account ~ 'Expenses' THEN COST(position) ELSE 0 END)) /
   NULLIF(SUM(hours), 0) as true_hourly_rate
FROM entries
WHERE project_tag IS NOT NULL
GROUP BY project_tag
ORDER BY true_hourly_rate DESC

This reveals which clients and project types are actually profitable.

3. The “Client Profitability Score”

I’ve developed a scoring system for evaluating clients based on true hourly rate:

Tier 1 clients (Keep & Grow): $120/hr+ true rate

  • Pay well, minimal scope creep, efficient communication
  • Example: Client A averages $132/hr after all costs

Tier 2 clients (Maintain): $80-120/hr true rate

  • Solid income but require more management overhead
  • Example: Client B at $95/hr (pays $150/hr but lots of unbilled calls)

Tier 3 clients (Phase Out): <$80/hr true rate

  • High maintenance, scope creep, late payments
  • Example: Client C was $68/hr — I didn’t renew the engagement

This framework helped me:

  • Raise rates with Tier 1 clients (they’re profitable, I can afford to risk it)
  • Set boundaries with Tier 2 clients (fewer unbilled meetings)
  • Fire Tier 3 clients and replace them with better fits

Result: My average true hourly rate went from $92/hr to $117/hr in 6 months.

Your Passive Income Tracking is Brilliant

I love your Assets:TimeInvested approach. I’ve been trying to figure out how to track this and your solution is elegant.

One addition I’d suggest: Track ongoing maintenance time separately from initial investment.

; Initial investment (one-time)
2025-06-01 * "Course Creation" "Video recording and editing" #hours:120 #phase:creation
  Assets:TimeInvested:Course:Creation    120.00 HOURS
  Equity:TimeBank                       -120.00 HOURS

; Ongoing maintenance (monthly)
2026-02-01 * "Course Maintenance" "Update videos, answer emails" #hours:2 #phase:maintenance
  Assets:TimeInvested:Course:Maintenance   2.00 HOURS
  Equity:TimeBank                         -2.00 HOURS

; Revenue
2026-02-01 * "Gumroad" "Course sales - February"
  Assets:Checking                        1,200.00 USD
  Income:Passive:CourseSales            -1,200.00 USD

Then calculate two different ROI metrics:

  1. Initial ROI = Revenue ÷ Creation Hours Only

    • Month 12: $14,400 ÷ 120 = $120/hr
  2. Total ROI = Revenue ÷ (Creation + Maintenance Hours)

    • Month 12: $14,400 ÷ (120 + 24) = $100/hr

This helps you decide: Is ongoing maintenance worth it?

If maintenance ROI drops too low, you might choose to let the product “decay” gracefully rather than keep updating it.

Answering Your Questions

Q: What’s your “kill threshold” for side hustles?

My rule: $75/hr true rate minimum for any ongoing work.

I track quarterly, and if something drops below $75/hr for 2 consecutive quarters, I phase it out.

Exception: Passive income projects in their first 6 months get a grace period since they take time to ramp.

Q: Do you track opportunity cost of your time?

Yes, and I think your $160/hr approach makes perfect sense.

I use my Tier 1 client average rate ($132/hr) as my opportunity cost benchmark. Any hour spent on unbilled work is costing me $132 in potential earnings.

This helps me make ruthless decisions about:

  • Whether to automate a task (pay $500 for automation vs. spend 4 hours = $528 opportunity cost)
  • Whether to hire help (pay assistant $40/hr to save me 1 hour = $92 net gain)

Q: How do you handle tax differences between active and passive income?

I track them separately because the tax treatment is completely different:

; Active income - self-employment tax applies
2026-02-01 * "Client Payment" "Consulting income"
  Assets:Checking                        4,200.00 USD
  Income:Freelance:Consulting           -4,200.00 USD

2026-02-01 * "Tax Reserve - Active" "SE tax (15.3%) + income (22%)"
  Assets:Checking                       -1,563.00 USD  ; 37.2% total
  Assets:Savings:TaxReserve              1,563.00 USD

; Passive income - no SE tax, just income tax
2026-02-01 * "Course Sales" "Passive income"
  Assets:Checking                        1,200.00 USD
  Income:Passive:CourseSales            -1,200.00 USD

2026-02-01 * "Tax Reserve - Passive" "Income tax only (22%)"
  Assets:Checking                         -264.00 USD
  Assets:Savings:TaxReserve                264.00 USD

This makes a huge difference in true profitability. That extra 15.3% SE tax on active income means passive income is inherently more tax-efficient.

The Active-to-Passive Transition Strategy

Based on 18 months of data, here’s my recommended allocation strategy:

Phase 1: Cash Flow Building (Months 1-12)

  • 80% active income (need cash flow to live)
  • 20% passive income development (plant seeds)
  • Goal: Stable $8K/month from consulting

Phase 2: Asset Building (Months 13-24)

  • 60% active income (maintain cash flow)
  • 40% passive income development (build assets)
  • Goal: First passive income stream hits $2K/month

Phase 3: Leverage Building (Months 25+)

  • 40% active income (maintain best clients only)
  • 60% passive income development (scale assets)
  • Goal: Passive income = 50%+ of total income

I’m currently in Phase 2. My passive income is at $1,400/month (from two courses and some affiliate revenue), and I’m targeting $3K/month by end of year.

The beauty of tracking these metrics properly in Beancount is that I can make data-driven decisions about when to shift from one phase to the next.

One More Tool: The “Effective Retirement Date” Calculator

Once you have reliable passive income data, you can project when passive income will replace active income entirely.

; Current state
Active income: $8,200/month (requires 140 hours/month)
Passive income: $1,400/month (requires 6 hours/month)
Total expenses: $6,500/month

; Passive income growth rate: 15% per month (based on last 6 months)
; When does passive income = expenses?

Month 1: $1,400
Month 6: $2,812
Month 12: $5,648
Month 18: $11,350 ← Passive income > expenses

Effective retirement date: ~18 months from now

This is the ultimate goal: passive income exceeds expenses = you’re financially independent from active work.

Your Beancount tracking makes this calculation possible with real data instead of hopeful guesses.


Thanks for sharing this framework. I’m stealing your Assets:TimeInvested approach and refining my queries based on your examples.

One final thought: The real power of tracking active vs. passive income separately is that it forces you to think like an investor about your own time, not just an employee trading hours for dollars.

This is exactly the kind of analysis I need to see more of in the financial planning world.

I work with small business owners and solo consultants, and the number one mistake I see is conflating revenue with profit and gross rate with take-home earnings.

Your post perfectly captures why this matters.

The “Hidden Costs” Iceberg

From my client work, here’s the breakdown of where that $150/hr → $78/hr gap typically comes from:

1. Self-Employment Tax (15.3%)

Impact: -$23/hr on a $150 rate

This is the big one that W-2 employees never see. When you’re self-employed, you pay both the employee AND employer portions of Social Security and Medicare taxes.

On $150/hr, that’s $22.95/hr going straight to FICA before you even touch income tax.

Many freelancers forget to account for this when they compare their consulting rate to their old W-2 salary. A $150/hr freelance rate is really $127/hr before income taxes — comparable to a $127/hr W-2 rate, not $150/hr.

2. Unbilled Time (25-40% of total hours)

Impact: -$37.50 to -60/hr on effective rate

Your calculation included this, but I want to emphasize how massive this factor is.

From my client data, here’s the typical time breakdown for freelance consultants:

  • 60-75% billable client work (actual service delivery)
  • 15-25% unbilled client management (calls, emails, scope discussions)
  • 10-15% business development (proposals, networking, content creation)
  • 5-10% administration (invoicing, bookkeeping, taxes)

If you bill 70 hours at $150/hr but work 110 total hours, your effective rate is $95/hr, not $150/hr.

The trap: Most freelancers calculate their rate as “revenue ÷ billable hours” instead of “revenue ÷ total hours worked.”

3. Business Expenses (5-15% of revenue)

Impact: -$7.50 to -22.50/hr on a $150 rate

These add up faster than people expect:

  • Software subscriptions: $100-300/month
  • Professional insurance: $50-150/month
  • Health insurance: $400-1,200/month (if you lost employer coverage)
  • Home office costs: $100-300/month
  • Professional development: $100-500/month
  • Accounting/legal fees: $200-500/month

Average monthly overhead: $1,000-3,000 depending on your field and setup.

On 70 billable hours/month, that’s $14-43/hr in expenses before you see a dime of take-home income.

4. Income Tax Delta (Variable)

Impact: Depends on your marginal rate

If you’re earning $150K+ annually from freelancing, you’re likely in the 24-32% federal bracket plus state taxes.

The difference between having taxes withheld automatically (W-2) and owing quarterly estimated taxes (1099) creates a cash flow challenge that many new freelancers underestimate.

How I Help Clients Track This in QuickBooks (Beancount Equivalent)

For clients who want detailed cost tracking, I set up a similar structure to what you’ve described:

Revenue Tracking

Income:Consulting:Billable
Income:Consulting:RetainerFees
Income:Products:DigitalCourses
Income:Products:Templates

Cost Tracking by Type

Expenses:DirectCosts:Software
Expenses:DirectCosts:Contractors
Expenses:DirectCosts:Materials

Expenses:Overhead:Insurance
Expenses:Overhead:OfficeExpenses
Expenses:Overhead:ProfessionalDevelopment

Expenses:UnbilledTime:ClientManagement
Expenses:UnbilledTime:BusinessDevelopment
Expenses:UnbilledTime:Administration

Tax Reserve Strategy

Assets:Business:Checking
Assets:Business:TaxReserve (separate savings account)

Every payment in:
- Move 30-40% immediately to TaxReserve
- Track monthly to ensure coverage for quarterly estimated payments

This creates a true cost of goods sold calculation for service businesses, which is rarely done properly.

The Passive Income ROI Shift

Your insight about passive income having an improving effective hourly rate over time is spot-on.

I have clients who’ve created:

  • Online courses: 100-200 hours upfront, $500-3,000/month ongoing
  • Productized services: 50-100 hours to systematize, $1,000-5,000/month recurring
  • Digital templates: 20-40 hours to create, $200-1,000/month in sales
  • Affiliate partnerships: 10-30 hours to build relationships, $100-800/month passive

The math works out like this for a typical course:

Month 1: 120 hours invested, $0 revenue → Effective rate: -$0/hr (investment phase)
Month 6: 120 + 12 maintenance hours = 132 total, $3,600 revenue → $27/hr
Month 12: 120 + 24 maintenance hours = 144 total, $12,000 revenue → $83/hr
Month 24: 120 + 48 maintenance hours = 168 total, $28,800 revenue → $171/hr
Month 36: 120 + 72 maintenance hours = 192 total, $43,200 revenue → $225/hr

By month 36, the effective rate has climbed to $225/hr for an asset that required 120 hours of upfront work.

Compare this to active consulting where your rate is capped by the hours you can physically work (40-60/week max before burnout).

The “Blended Rate” Portfolio Strategy

For my most sophisticated clients, I help them build a portfolio approach with target allocations:

Target Income Mix (Year 3+)

  • 40% Tier 1 Active Income (high-value consulting, $120+/hr true rate)
  • 30% Recurring Retainers (semi-passive, predictable monthly revenue)
  • 20% Digital Products (passive, improving ROI over time)
  • 10% Opportunistic Projects (high-margin one-offs, seasonal work)

This creates:

  • Stable cash flow from retainers
  • High earnings from Tier 1 active work
  • Leverage from digital products
  • Flexibility to take on interesting opportunistic work

The Beancount tracking you’ve outlined makes this portfolio management possible with real-time visibility into:

  • Which income streams are growing vs. declining
  • Which are most profitable per hour invested
  • Which are most tax-efficient
  • Which are most scalable

Answering Your Tax Question

Should I be tracking self-employment tax (15.3%) separately for active income since passive income doesn’t incur it?

Yes, absolutely.

This is a critical distinction that affects your true profitability calculation.

Self-employment tax applies to:

  • Freelance/consulting income (Schedule C)
  • Partnership income (Schedule K-1)
  • Independent contractor work (1099-NEC)

Self-employment tax does NOT apply to:

  • Investment income (dividends, capital gains)
  • Rental income (unless you’re a real estate professional)
  • Royalties (book, course, product sales)
  • Interest income

So if you earn:

  • $100K from consulting → Pay $15,300 SE tax + income tax
  • $100K from course sales → Pay $0 SE tax + income tax only

That $15,300 difference is a massive hidden advantage of passive income that most people overlook.

Recommended Beancount Structure

; Active income with SE tax
2026-02-01 * "Consulting Payment"
  Assets:Checking                        10,000.00 USD
  Income:Freelance:Consulting           -10,000.00 USD

2026-02-01 * "Tax Reserve - Active" "SE (15.3%) + Income (24%)"
  Assets:Checking                        -3,930.00 USD  ; 39.3% total
  Assets:Savings:TaxReserve               3,930.00 USD
    se-tax: 1,530.00 USD
    income-tax: 2,400.00 USD

; Passive income without SE tax
2026-02-01 * "Course Sales"
  Assets:Checking                        10,000.00 USD
  Income:Passive:CourseSales            -10,000.00 USD

2026-02-01 * "Tax Reserve - Passive" "Income tax only (24%)"
  Assets:Checking                        -2,400.00 USD
  Assets:Savings:TaxReserve               2,400.00 USD
    income-tax: 2,400.00 USD

This tracking shows you the true tax-adjusted profitability:

  • $10K active income → $6,070 take-home (39.3% tax)
  • $10K passive income → $7,600 take-home (24% tax)

Passive income is 25% more tax-efficient than active income in this example.

The “Break-Even Timeline” Analysis

For your book project question (300 hours upfront, 3-5 year payback), here’s how I’d help a client evaluate it:

Option 1: Conservative Case (Slow Sales)

Year 1: $2,400 in sales (avg $200/month)
Year 2: $3,600 in sales (avg $300/month)
Year 3: $4,800 in sales (avg $400/month)
Total 3-year revenue: $10,800
Total hours: 300 initial + 36 maintenance = 336 hours
Effective rate: $10,800 ÷ 336 = $32/hr

Verdict: Below your $75/hr threshold — don’t do it unless there are non-financial benefits (credibility, lead generation, personal fulfillment).

Option 2: Moderate Case (Steady Growth)

Year 1: $6,000 in sales (avg $500/month)
Year 2: $12,000 in sales (avg $1,000/month)
Year 3: $18,000 in sales (avg $1,500/month)
Total 3-year revenue: $36,000
Total hours: 300 initial + 36 maintenance = 336 hours
Effective rate: $36,000 ÷ 336 = $107/hr

Verdict: Above threshold by year 3, with improving ROI trajectory — worth considering.

Option 3: Success Case (Strong Marketing)

Year 1: $12,000 in sales (avg $1,000/month)
Year 2: $24,000 in sales (avg $2,000/month)
Year 3: $36,000 in sales (avg $3,000/month)
Total 3-year revenue: $72,000
Total hours: 300 initial + 36 maintenance = 336 hours
Effective rate: $72,000 ÷ 336 = $214/hr

Verdict: Significantly exceeds threshold — this would be a home run.

Key question: Which scenario is most realistic based on your audience size, email list, marketing plan, and comparable book sales in your niche?

I’d recommend building a sensitivity analysis in Beancount with three scenarios and tracking actual performance against projections quarterly.

The Real Value: Time Allocation Decisions

The ultimate benefit of tracking active vs. passive income with different metrics is that it enables strategic time allocation.

Every hour you have is an investment. The question is: Where does that hour generate the highest return?

With proper tracking, you can answer:

  • “Should I take on this new consulting client at $140/hr, or invest that time in creating a new digital product?”
  • “Is maintaining this course worth 2 hours/month, or should I let it sunset and focus on a new project?”
  • “Should I raise my consulting rates to $200/hr and risk losing some clients, or keep rates steady and build passive income on the side?”

These aren’t just financial questions — they’re life design questions.

A $120/hr active income gig requires you to show up every week. A $120/hr effective passive income asset can run while you sleep, travel, or spend time with family.

Your Beancount tracking framework makes these trade-offs visible and quantifiable.


One suggestion: Consider adding a “time freedom” metric alongside financial ROI.

I have clients who track:

  • Financial ROI: Revenue ÷ Time Invested
  • Freedom ROI: (Revenue ÷ Ongoing Hours Required) × (1 - Management Intensity)

Example:

  • Consulting: $10K/month, requires 60 hours/month, high management → Freedom ROI: Low
  • Course sales: $2K/month, requires 3 hours/month, low management → Freedom ROI: High

Sometimes the lower-revenue but higher-freedom option is the better long-term choice, especially if you value lifestyle flexibility.


Thanks for this detailed breakdown. I’m sharing this with several clients who need to see these calculations in their own businesses.