Skip to the main content.

Logiframe is an Equal Opportunity Employer.

All qualified applicants will receive consideration for employment without regard to race, color, age, religion, sex, sexual orientation, gender identity / expression, national origin, protected veteran status, or any other characteristic protected under federal, state or local law, where applicable, and those with criminal histories will be considered in a manner consistent with applicable state and local laws.

Managed Services
Streamline your finance, tax, and payroll with reliable managed services built for scale.

 

Accounting Platforms
Xero - set up, migrated, optimized. 


7 min read

Deal Stage Tracking & Revenue Recognition Timing

Deal Stage Tracking & Revenue Recognition Timing

 

Table of Contents:

1. The Misalignment: Sales Stages vs. Revenue Recognition
2. The Problem This Creates
3. Building the Stage-to-Revenue Map
4. Mapping HubSpot Stages to Revenue Recognition
5
. Using Stage Progression to Predict Revenue Timing
6. Deal Stage Velocity: Predicting When Deals Close 
7. Handling Stage Changes
8. The Contract Metadata That Revenue Recognition Requires
9. Common Mistakes in Mapping Stages to Revenue
10. Building a Deal Stage Dashboard for Finance
11. How Logiframe Approaches Stage-to-Revenue Mapping
12. Frequently Asked Questions

The Misalignment: Sales Stages vs. Revenue Recognition

Sales defines deal stages based on what's happened in the sales process. Finance defines revenue recognition based on what's been delivered and earned.

These are completely different frameworks.

Sales perspective:

Prospecting: Initial conversation, interested but no budget yet
Qualification: Budget confirmed, need established
Proposal: Sent a proposal, waiting for response
Negotiation: They're interested, negotiating terms
Closed Won: They signed, deal is done

Finance perspective (ASC 606):

Contract signed: We have a binding agreement
Identified performance obligations: We know what we're delivering
Determined transaction price: We know the payment
Allocated transaction price: We know how much to recognize
Recognized revenue: As we fulfill obligations

These don't line up. A deal can be "Closed Won" in HubSpot, but revenue might not be recognized for months (if service delivery is delayed).

The Problem This Creates

Scenario 1: Service Start Date is After Close Date

Sales closes deal in August. Service starts October 1. Revenue recognized monthly from October to next September.

Sales says August is a win (correct). Finance says August revenue is $0 (also correct). But if you're not careful with the mapping, finance looks like they're arguing with sales about whether the deal closed.

Scenario 2: Multi-Year Contracts

Sales closes $300K, 3-year enterprise contract in Q1. All cash comes in Q1 ($100K upfront, rest Net 30).

Finance recognizes $100K ÷ 36 months = $2.78K/month.

Sales forecast said Q1 = $300K. Finance P&L shows Q1 = $2.78K. Board is confused.

Scenario 3: Milestone-Based Revenue

Contract is $100K, but revenue is recognized in three milestones: kickoff ($25K), implementation complete ($50K), go-live ($25K).

When does revenue actually get recognized? When we complete each milestone, not when the deal closes.

If you tie revenue recognition to "Closed Won" stage, you'll get it wrong.

Building the Stage-to-Revenue Map

For each deal stage, define:

  1. What needs to happen for revenue to be recognized?

  2. When will that likely happen?

  3. What's the accounting treatment?

Example 1: Consulting Services (Project-Based)

Deal Stage: Prospecting
  Revenue impact: $0
  Reason: No contract yet, no revenue recognized

Deal Stage: Proposal
  Revenue impact: $0
  Reason: Contract not signed, no obligation

Deal Stage: Negotiation
  Revenue impact: $0
  Reason: Still negotiating; could fall apart

Deal Stage: Closed Won
  Revenue impact: $0 (initially)
  Reason: Signed, but we haven't started the project yet

(After Closed Won, project begins)

Project Started: 
  Revenue impact: Begins recognizing as services delivered
  Reason: ASC 606: revenue recognized as performance obligations are satisfied

Project Completion:
  Revenue impact: All remaining revenue recognized
  Reason: Project complete, revenue has been earned

Key insight: Revenue doesn't start at "Closed Won." It starts when service delivery begins.

Example 2: SaaS Subscription

Deal Stage: Prospecting
  Revenue impact: $0
  Reason: No contract

Deal Stage: Decision
  Revenue impact: $0
  Reason: Not yet signed

Deal Stage: Closed Won
  Revenue impact: $0
  Reason: Signed, but contract might start in future month

Contract Start Month (e.g., "Service starts June 1"):
  Revenue impact: $833/month for 12-month contract
  Reason: Performance obligation is delivering software access monthly

Month 1-12:
  Revenue impact: $833/month (recurring)

Contract Renewal Month:
  Revenue impact: New $833/month (if renewed)
  Reason: New contract term, new performance obligation

Key insight: SaaS revenue is tied to "contract start date," not "deal close date."

Mapping HubSpot Stages to Revenue Recognition

Step 1: Define Your Stages

Be specific about what each stage means:

Stage: Initial Contact
  Criteria: First call/demo completed, no decision yet

Stage: Qualified Prospect
  Criteria: Budget and timeline confirmed, stakeholders identified, pain point understood

Stage: Proposal Sent
  Criteria: Formal proposal given, waiting for decision

Stage: Negotiation
  Criteria: Customer engaged in pricing/terms discussion, likely to decide in next 30 days

Stage: Legal Review (if applicable)
  Criteria: Contract with legal team (enterprise deals)

Stage: Closed Won
  Criteria: Fully signed contract

Stage: (Optional) Implementation/Onboarding
  Criteria: Customer onboarded, service delivery started (if different from close date)

Step 2: For Each Stage, Document Revenue Impact

Stage: Closed Won
  Question 1: What needs to happen before revenue is recognized?
    Answer: Service delivery start (per ASC 606, revenue recognized as performance obligations are satisfied)
  
  Question 2: When does service delivery typically start?
    Answer: 30 days after close (on average; check your data)
  
  Question 3: What's the revenue treatment?
    Answer: Revenue deferred until service starts, then recognized monthly/annually depending on contract
  
  Question 4: What contract terms must we know?
    Answer: Service start date, service end date, payment terms, billing frequency

  Question 5: What happens if service start is delayed?
    Answer: Revenue is deferred even longer; close date doesn't trigger revenue

Step 3: Build Historical Close Rate by Stage

Track what percentage of deals in each stage eventually close (and when):

Initial Contact stage:
  20% eventually close
  Average time to close: 180 days

Qualified Prospect stage:
  50% eventually close
  Average time to close: 90 days

Proposal Sent stage:
  70% eventually close
  Average time to close: 45 days

Negotiation stage:
  85% eventually close
  Average time to close: 20 days

Legal Review stage:
  95% eventually close
  Average time to close: 10 days

Closed Won stage:
  100% close (by definition)

When forecasting Q3 revenue, apply these probabilities and timelines to deals in each stage.

Using Stage Progression to Predict Revenue Timing

Scenario: Q3 Revenue Forecast

You have a HubSpot pipeline:

Deal
Value
Stage
Days in Stage
Prob
Expected Close
Service Start
Revenue Recognition
A
$100K
Closed Won
5
100%
Aug 20
Sept 15
Oct-Sept (12 months)
B
$50K
Negotiation
15
85%
Sept 4
Oct 1
Oct-Sept (12 months)
C
$75K
Proposal

10

70%

Sept 24

Nov 1

Nov-Oct (12 months)


Revenue by month:

August: $0 (Deal A closes but service hasn't started)
September: $8.33K (Deal A, $100K ÷ 12 months)
October: $8.33K (A) + $4.17K (B, starts Oct) + $0 (C not closed yet)

Finance can now forecast accurately because they know:

  • Which deals close this quarter (Deal A for sure, B likely, C less likely)

  • When service starts for each (not the same as close date)

  • When revenue is recognized (tied to service start, not close date)

Deal Stage Velocity: Predicting When Deals Close

"Velocity" is how fast deals move through stages.

Track this:

Rep A's deals in Negotiation stage:
  Average time in Negotiation: 20 days
  Current: Deal X entered Negotiation on Aug 25
  Prediction: Close by Sept 15

Rep B's deals in Negotiation stage:
  Average time in Negotiation: 40 days (slower)
  Current: Deal Y entered Negotiation on Aug 25
  Prediction: Close by Oct 5

When you have a deal in a stage, check historical velocity to predict when it will close.

This is more accurate than "sales says it will close by X date."

Handling Stage Changes

When a deal moves stages, update predictions:

Deal X: Proposal stage → Negotiation stage (Aug 25)
  Old prediction: Close by Sept 20 (70% of proposals close, 45-day average)
  New prediction: Close by Sept 15 (85% of negotiations close, 20-day average)
  New revenue forecast: Sept revenue improves (more likely to close this month)

Deal Y: Negotiation → Legal Review (Sept 1)
  Old prediction: Close Sept 20
  New prediction: Close Sept 11 (95% of legal stage closes, 10-day average)
  Confidence goes up (95% vs. 85%)

Good CRM systems track stage changes and update forecasts automatically.

The Contract Metadata That Revenue Recognition Requires

HubSpot needs to capture deal-level contract details:

Custom field: Service Start Date
  Why: Revenue recognized starting this date, not close date

Custom field: Service End Date
  Why: Revenue recognized through this date (SaaS, subscriptions)

Custom field: Contract Value
  Why: Total value for multi-year contracts (not annual value)

Custom field: Billing Frequency
  Why: Monthly, quarterly, annual? Affects cash flow

Custom field: Payment Terms
  Why: Net 30, Net 60, upfront? Affects cash flow

Custom field: Revenue Recognition Method
  Why: Upfront, over time, milestone-based? Triggers different accounting

Custom field: Milestone Dates (if applicable)
  Why: When is revenue recognized for each milestone?

Without these fields, revenue forecasting is guesswork.

Common Mistakes in Mapping Stages to Revenue

Mistake 1: Assuming "Closed Won" = Revenue This Period

Deal closes in Q3. Service starts Q4. You count full revenue to Q3. Revenue miss when Q3 closes.

Fix: Separate "deal close date" from "service start date." Revenue is tied to service start, not deal close.

Mistake 2: Not Updating Forecast When Deal Moves Stages

Deal in Proposal stage; forecast says 45-day close. It moves to Negotiation (20-day close). You don't update the forecast.

Fix: Automate forecast updates when stages change. Use velocity data to predict close dates.

Mistake 3: Using Sales's Close Date Estimate Instead of Historical Velocity

Sales says "This deal will close by Sept 10." Historically, deals in this stage take 25 days (so Sept 20 is more realistic). You use Sept 10.

Fix: Trust historical data over optimistic sales estimates. Sales is often wrong about timing even when right about whether a deal closes.

Mistake 4: Not Accounting for Seasonal Patterns

Q4 has higher close rates (year-end push). Your forecast doesn't account for this.

Fix: Track seasonal patterns. If 60% of Negotiation deals close in Q4 vs. 40% in Q3, adjust forecast accordingly.

Building a Deal Stage Dashboard for Finance

A good dashboard for finance shows:

Stage View:

  • How much pipeline in each stage?

  • How long does each stage typically take?

  • What's the historical close rate for each stage?

Velocity View:

  • Which deals are moving fast (getting close to close)?

  • Which deals are stuck (haven't moved in 30+ days)?

  • Which ones should finance follow up on (at risk)?

Revenue Impact View:

  • Which stages will likely close this month?

  • When will service start for each?

  • When will revenue be recognized?

Forecast Variance View:

  • How accurate was last month's forecast?

  • Which reps' forecasts are most accurate?

  • Where are gaps between forecast and actual?

How Logiframe Approaches Stage-to-Revenue Mapping

We work with your sales and finance teams to:

  1. Define stages precisely

  2. Determine revenue impact of each stage (when revenue recognition starts)

  3. Build historical velocity and close rate data

  4. Set up HubSpot-to-NetSuite automation so revenue is recognized based on stage + contract terms (not just deal close)

Most clients see forecast accuracy improve significantly once stage progression is properly tied to revenue recognition.

Frequently Asked Questions

What if deals move between stages frequently (back and forth)?

Track the most recent stage change, not total time in stage. If a deal bounces from Negotiation to Decision and back to Negotiation, you count recent time in Negotiation for velocity.

How do we account for deals that get stuck in a stage?

They're stuck. Flag them for follow-up. Historically, deals stuck 60+ days are at risk. Don't count them in "likely to close this month" forecast.

Should we have different stages for different deal types (SaaS vs. services)?

You could, but better to have unified stages and use custom fields to mark deal type. Unified stages let you compare performance across deal types.

How often should we update stage definitions?

At least annually. If your sales process changes, stages should change. But don't change mid-year; you'll lose historical data.

Deal Stage Tracking & Revenue Recognition Timing-1

See our complete guide to HubSpot