What is a good model for revenue managment / price optimization problem I am trying to create a dynamic pricing model to optimize revenue for a hypothetical business. Lets say I have an application that connects dog walkers to people who want to pay for their dog to get walked. 
Since the demand and supply fluctuate, If I have a uniform price certain times get over booked and some under booked. Right now I have a simple model that raises the price discretely to a very high level once a time slot is about to be over booked. Obviously this solution isn't optimal and I would like to have some sort of algorithm that can adjust the price in a continuous fashion to balance supply and demand.
I have all the data you would expect, such as historical prices, number of bookings cancelled, how much capacity was filled, etc.
Is there a typical way to construct a model for this situation?
 A: I'm not sure of a typical way but here is an example solution to help you get orientated. Otherwise Google "pricing algorithms" for more examples.
Ok, lots of things to assume first. I assume slots pertain to the availability of dog walkers. I assume that dog walkers are not exchangeable and that demand for them changes independently of each other. I assume that you're wanting to maximise profit overall.
For a particular dog walker, the task is then to relate the price to the probability that they'll be booked at any given time such that profit is maximised. Probability needs to be derived from demand. Supply is assumed constant.
Let $s_i$ be a dog walker's availability slot in $(s_1,...,s_n)$. Let $b$ stand for the base price of the dog walker's service. Let $p(s_i)$ indicate the probability of slot $s_i$ being booked. We could model the relationship between price and probability at a particular slot in various ways dependent on the response of demand to price. Here are two basic examples:


*

*Simple Linear: $price(s_i) = b + c \times p(s_i)$ where $c$ is a scaling constant. Implies that price and probability are linearly related.

*Simple Non-Linear: $price(s_i) = b + c/[1-p(s_i)]$ where a change in probability leads to an exponentially change in price. It might help to think of it as $b + c^{p(s_i)-1}$ which is equivalent.
Determining the one to go for is a matter of trying. For now, let's pick the linear one for simplicity, so $price(s_i) = b + c \times p(s_i)$. We can set $p(s_i)$ if various ways. If we know nothing at all about which slots are then we can start with $p(s_i) = 1/n$ and update the probabilities when we know more. We could also just set the slots according to the booking frequency so that $p(s_i) = N_{s_i}/N_{t}$ where $N_{s_i}$ represents the number of booking at a particular slot time and $N_{t}$ represents the total number of bookings. Bayesian updating may be used to change the slot probabilities over time.
In order to maximise your profit with the linear price all you have left to tweak is $b$ and $c$. You might start with whatever seems reasonable to you initially (e.g. $b=\$10$ and $c=\$5$) which would make the minimum and maximum prices \$10 and \$15 respectively. A simple online way to tweak $b$ and $c$ thereafter would be to use a gradient descent algorithm to change the values from week to week, constantly trying to converge on a bigger overall revenue. You'd be optimising $\underset{a,b}{\operatorname{argmax}}[\sum_{i=1}^N{b + c \times p(s_i)}]$ where $N$ is the total number of bookings. The optimisation would be local but this is may be ok for pricing dog walkers.
I hope that gives you a good starting point from which to ask more particular questions. If you're interested in modelling generally, maybe have a look at my blog: http://prescientmuse.blogspot.co.uk
A: The most typical approach is to fit a revenue prediction model that uses prices and other available signals (number of cancelled booking, etc.) as input features. This model then can be used to do what-if analysis of different pricing scenarios and, consequently, price optimization. 
This process can either be continuously repeated in batch mode (offer the price, observe the demand, optimize and offer new price, repeat) or more specialized online learning algorithms can be used as described, for example, in this post -  https://blog.griddynamics.com/dynamic-pricing-algorithms/
