How to write the best product requirement documentation (PRD)

How to write the best product requirement documentation (PRD)

Product requirement document or a PRD is the most important document a PM can ever own and maintain. 

PRD defines the value and the purpose of the product of the feature that is being built. The PM communicates what the product is, what we are building, who we are building for and what are the benefits for the end-user through the PRD. An important note about PRDis that the document defines the what and NOT the HOW. The implementation is best left to the developer teams. 

There is no one defined template for the PRD but any template should cover certain high-level topics such as the objectives, release features, milestones, dependencies, release criteria and features not covered.

Failure to clearly define PRD would lead to widely different assumptions from the stakeholders including business partners, developers, testers, and the UX folks.

Now that we have seen the importance of a good PRD let’s look at a template for a PRD.


Title: Product title

Vision: Vision is defining the product vision for the future.

  • Goal: What are the goals of the products in terms of specific time frame.
  • Background:
  • Assumptions:

Release Details:

  • Release name:
  • Release Date:
  • Document Owner:
  • Stakeholders:


  • Name of the feature
  • Feature Description
  • Priority

Product Flow and user interaction: (use mockups or flowchart if needed or requested)

Release Criteria:

Not doing:


We will define a product and then apply this PRD template to that product definition. This should provide you a clear idea on how to use this template for your own PRD

Now that we have seen the importance of a good PRD let’s look at a template for a PRD.

Example requirements for a PRD:

You are tasked with launching a brand new product feature as a product lead at Yelp. The feature is to launch a food delivery component to Yelp. Customers should be able to look at the menu of a particular restaurant and then order food either for delivery or takeout.

Product or Feature: Add food order option to Yelp for take out or delivery



  • Offer customers the option to order food online
  • Offer customers the option for takeout or delivery
  • Integrate payment options into Yelp for seamless experience
  • Integrate system with delivery partner via API for order integration


Yelp is a social networking site that lets users rate and review businesses. Customers can review and rate the business and these ratings are visible to the public. One of the popular categories of businesses in Yelp is restaurants. Yelp includes a listing for the restaurant with a description of the business, the ratings, user reviews and the menu details with photos of the food. Customers create a profile and then check-in/rate the restaurants (5 stars), add product photos and write a review. 

Yelp does not have an option to order food. You have to leave the Yelp app and go order food through another food delivery provider. We are planning to integrate the food ordering service within Yelp to provide seamless customer service for the customer within the app. 


Yelp does not want to build a delivery network. Instead we would partner with an already existing delivery network such as GrubHub. Yelp will provide the menu information to the user with the price and the menu item clearly described. The customer should be able to add to cart any item desired. 

Yelp will provide an integrated payment option for the customer to pay and route delivery via a partner. All restaurants that already have an existing partnership with GrubHub will show an integrated order option for the menu items. Yelp customers are not expected to have a login or an account with GrubHub.  The whole ecosystem of ordering and payment happens within Yelp.

Release Details:

  • Release name: Food ordering option
  • Release Date: Aug 2020
  • Document Owner: Product Manager
  • Stakeholders: SDM, ste, marketing manager, sales manager, ux researcher, and QA.


Feature TitleFeature DescriptionPriority
API IntegrationNeed an interface API to get menu and pricing data for the restaurants from GrubHub Very High
Order buttonRestaurants that provide delivery should have an order button on the main listing. When clicked should take us to the menu page with pricing informationVery High
Menu Page Menu page that list all the menu items with the pricing and should be clickable to add to cart Very High
Customizer OptionWhen a menu item is added to cart, there should be an option to customize the menu item.Low
Shopping CartA shopping cart that shows the menu item added at the checkout buttonVery high
Checkout PageCheck out page should include contact details, payment information,  delivery address confirmation, delivery time, the order items, delivery fees, service fees, tax and the total. Once all the details are provided, the order button should be highlighted.Very High
Stripe IntegrationIntegrate stripe API for payment processing through the Yelp siteHigh
Delivery ConfirmationDelivery confirmation page after check out with the delivery timeMedium

Product flow:

The user can search for restaurants based on location or cuisine. The search results include a list of possible matches for restaurants. If the restaurant provides food delivery via GrubHub then an order button is shown with the listing. If the user clicks on the order button then it takes them to the menu page. The user should be able to add menu items and make an order. The user should be able to check out the order by providing the payment information. All of this happens through the Yelp platform and customers are required to have an Yelp login.

Release Criteria:

Functionality: All Very High and High priority features must be completed. 

Usability: All new requirements and new pages created must match the visual aesthetics and design of the existing page 

Reliability: Implementation of the new feature or product must not in any way affect the performance of the existing product such as login, search or review capabilities.

Not doing: 

We are not providing any other extra information about the ordering process or menu info other than what’s available as API from GrubHub. Yelp does not deliver the orders in-house and instead leverage GrubHub. We are not a payment processing unit instead and we are relying on our partner to process a payment. We are not adding any GPS tracking of the order and relying on our partner for delivery times which might not be accurate.


To be updated after the first stakeholder review.

We have seen the importance of a PRD along with the template that you could use to create a PRD. Review the Yelp example provided and adapt the example to your own product PRD. Feature description and assigning priority of the PRD is an integral part of PM and a critical skill to develop. Feature definition and user stories should be as accurate as possible so that the implementation can be carried out by the developers and the UX researchers.

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments