Skip to content

Pullpay Analytics Project

Background

Pullpay is a vertically integrated SaaS and payments business, serving over 10,000 customers. Pullpay has established itself as a market leader providing Donor Management Systems (“DMS”) and Church Management Systems (“CHMS”) to large (~25% share) and medium sized churches (~10% share), which account for over 85% of total market donations. Customers in the medium and large segments are growing and have a high level of digital maturity. The small church segment has a very high customer count but lower donation volume; and while Pullpay does sell into this segment it is no longer a primary focus. The DMS product has two parts to the pricing structure: a fixed monthly SaaS fee, plus a percentage of processing fee applied to the donation volume. Some sales reps have reported that portions of the DMS market have become increasingly price competitive on the SaaS Fee.

Objective

Use the data to determine the answer to the following question:

How is Pullpay’s win rate and deal velocity influenced by pricing and competition?

  • How significant a factor is MRR pricing on our win rate? Does it impact deal velocity?
  • Which competitors represent the biggest threat in target segments?

Key Takeaways

  • MRR pricing negatively impacts win rate and deal velocity
  • Across both MM and ENT segments, deals with higher MRR were significantly more likely to be lost, and they also took longer to close. In contrast, higher blended rates did not appear to slow deal velocity, and were actually more common in won deals.
  • Customer sensitivity appears stronger to MRR than to overall pricing. This suggests that buyers are more averse to visible fixed costs than to variable rates determined by their own successes.

Competitive Landscape:

  • PCO was the greatest threat, beating Pullpay in 153 instances, followed by Subsplash and Tithe.ly
  • Approximately 36% of losses in MM and ENT segments were to smaller, fragmented competitors, suggesting a still very fragmented market and the opportunity to gain market share.

Recommendation:

  • Consider testing a revised pricing model with reduced MRR and increased blended rates to better align with customer spending sensitivities without reducing potential revenue.
  • Use the combined Annual Recurring Revenue and Blended Rate revenue to help determine new rates.

Assumptions

  • Combined Planning Center Online data with PCO
  • Combined Tithely data with Tithe.ly
  • With the exception of Tithe.ly and PCO, I focused on the story told by the distribution of existing data points rather than trying to interpret missing or incorrectly entered inputs. Using the median shows a clearer picture than the average which was heavily impacted by outliers. This includes inputs associated with dates and mrr.
  • All graphs and charts show include both MM and ENT unless stated otherwise.
  • NPO was not included due to its relatively low estimated volume and MRR.
  • Wins were determined by cb_date being present.

Impacts of MRR

Midmarket and enterprise MRR distribution show that higher mrr results in lower conversion. Customers appear to be price sensative with paying a monthly SaaS fee.

Spinner
DataFrameas
df
variable
SELECT 
    result,
    PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY mrr) AS percentile_25,
    PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY mrr) AS 'median mrr',
    PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY mrr) AS percentile_75
FROM "PushPay.csv"    
WHERE segment in ('MM','ENT')
GROUP BY result

UNION ALL

SELECT 
    'total' AS result,    
    PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY mrr) AS percentile_25,
    PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY mrr) AS 'median mrr',
    PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY mrr) AS percentile_75
FROM "PushPay.csv"    
WHERE segment in ('MM','ENT')

Within the midmarket segment the trend shows higher monthly recurring revenues increase time required to close a deal close.

Hidden code df3

Interestingly, customers don't seem to be as concerned with the blended rate. Successful coversions had rates which skewed higher in both enterprise and midmarket segments.

Spinner
DataFrameas
df2
variable
WITH seg AS (
	SELECT *
	FROM "PushPay.csv"	
	WHERE segment in ('MM','ENT') AND blended_rate IS NOT NULL
)

SELECT 
    segment, 
    PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY  blended_rate) AS percentile_25,
    PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY  blended_rate) AS 'median blended rate',
    PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY  blended_rate) AS percentile_75,
	result
FROM seg
GROUP BY segment, result

UNION ALL

SELECT 
	'ENT and MM combined' AS segment,
	PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY blended_rate) AS percentile_25,
	PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY blended_rate) AS 'median blended rate',
	PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY blended_rate) AS percentile_75,
	result
FROM seg
GROUP BY result
ORDER BY segment, result;

Competitors

PCO was the greatest competitve threat to Pullpay over the given time period, though smaller players accounted for 36% of losses.