March 2014 Summaries
2 posts from Heap
Filter
Month:
Year:
Post Summaries
Back to Blog
A friend's startup experienced a significant increase in average revenue per customer, jumping from $230 to over $600, primarily due to acquiring a large client rather than changes in pricing or upselling. This situation illustrates that average revenue per customer can be misleading, especially in businesses where revenue follows a power law distribution rather than a normal distribution, as seen in datasets like the weights of pandas or SAT scores. Such businesses often see a small fraction of their customer base accounting for a large portion of their revenue, highlighting the importance of examining the overall revenue distribution rather than relying solely on averages. For companies whose revenue does not yet follow a power law, factors like a small customer base or suboptimal pricing models that fail to capture the full value provided could be at play. Businesses are encouraged to adopt value-based pricing to optimize revenue capture from high-value customers while recognizing that much of their revenue and customer interactions, such as support tickets and feature usage, may be concentrated among a few key clients. Understanding these dynamics can lead to better business strategies and decision-making.
Mar 31, 2014
803 words in the original blog post.
Heap relies on PostgreSQL for backend processing, storing events as hstore blobs and maintaining arrays of user events to enhance performance in funnel queries. The company discovered inefficiencies in a PostgreSQL function that used array_append in loops, leading to quadratic runtime increases, as evidenced by a function that took 36 seconds to generate a 100,000-element array. The inefficiency arises because PostgreSQL creates a new array and copies data with each append operation, unlike other languages that handle such operations more efficiently. The solution involves using the array_agg function, which aggregates a set into an array in linear time, drastically reducing the runtime to 300 milliseconds for the same task. This experience emphasizes the need to avoid procedural idioms in relational databases and highlights the importance of understanding expected runtimes for operations. Heap encourages feedback and further PostgreSQL discussions, hinting at future content about their use of Citus Data.
Mar 12, 2014
561 words in the original blog post.