Problem definition: We present a data-driven pricing problem motivated from our collaboration with a satellite service provider. In particular, we study a variant of the two-part tariff pricing scheme. The firm offers a set of data plans consisting of a bundle of data at a fixed price plus additional data at a variable price. Most literature on two-part tariff problems focuses on models that assume full information. However, little attention has been devoted to this problem from a data-driven perspective without full information. One of the main challenges when working with data comes from missing data. Methodology/results: First, we develop a new method to address the missing data problem, which comes from different sources: (i) the number of unobserved customers, (ii) customers’ willingness to pay (WTP), and (iii) demand from unobserved customers. We introduce an iteration procedure to maximize the likelihood by combining the expectation maximization algorithm with a gradient ascent method. We also formulate the pricing optimization problem as a dynamic program (DP) using a discretized set of prices. From applying Sample Average Approximation, the DP obtains a solution within 3.8% of the optimal solution of the sampled instances, on average, and within 18% with 95% confidence from the optimal solution of the exact problem. By extending the DP formulation, we show that it is better to optimize on prices rather than bundles, obtaining revenues close to optimizing jointly on both. Managerial implications: The sensitivity analysis of the problem parameters is key for decision makers to understand the risks of their pricing decisions. Indeed, assuming a higher variability of customers’ WTP induces higher revenue risks. In addition, revenues are barely (highly) sensitive to the customers’ assumed WTP variability when considering a high (low) number of unobserved customers. Finally, we extend the model to incorporate price-dependent consumption.