  We consider a scenario where a retailer can set different prices for
different consumers in a smart grid. The retailer's objective is to maximize
the revenue, minimize the operating cost, and maximize the consumer's welfare.
The retailer wants to optimize a convex combination of the above objectives
using price signals specific to each consumer. However, variability in unit
prices across consumers is bounded by a parameter $\eta$, hence limiting the
discrimination. We formulate the pricing problem as a Stackelberg game where
the retailer is the leader and consumers are followers. Since the retailer's
optimization problem turns out to be non-convex, we convexify it via
relaxations. We provide performance guarantees for the relaxations in the
asymptotic sense (when number of consumers tends to $\infty$). Further, we show
that despite the variability in pricing, the pricing scheme proposed by our
model is fair as higher prices are charged to consumers who have higher
willingness for demand. We extend our analysis to the scenario where consumers
can feed energy back to the grid via net-metering. We show that our pricing
policy promotes fairness even in this scenario as prosumers who contribute more
to the grid, are given large cuts on buying rates. The policy is also found to
incentivize more prosumers to invest in renewable energy, thus encouraging
sustainability.
