Drink prices and specials are among the most common questions AI receives about bars. This blueprint structures your happy hour deals, drink specials, and event packages so AI can give accurate, direct answers instead of guessing from paragraph text.
When someone asks "which bars near me have happy hour" or "how much are drinks at this pub," AI needs structured pricing data to answer. Most bars bury this in social media posts or chalkboard photos. Structured data on a pricing page gives your bar an advantage over competitors who leave AI guessing.
Offer — happy hour specials, regular pricing, bottle service, and event packages are each separate offers that AI can index individually.Offer with a clear description mentioning happy hour times and discounted prices tells AI you have specials, which is one of the most searched bar pricing queries.Offer nodes let AI answer questions like "how much does it cost to rent this bar for a party."Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
nameurlpriceRangeCopy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a Bar or Pub Pricing page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Bar name 2. Bottle service description 3. Bottle service price 4. Domain 5. Drink special description 6. Drink special name 7. Drink special price 8. Event package description 9. Event package fee type 10. Event package price 11. Faq answer 12. Faq question 13. Happy hour description 14. Happy hour price 15. Price range 16. Pricing page description 17. Pricing page title OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org Bar or Pub Pricing" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy the template below and replace every YOUR_* value with your own data. Add or remove Offer nodes to match your actual pricing tiers.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/pricing/",
"name": "YOUR_PRICING_PAGE_TITLE",
"description": "YOUR_PRICING_PAGE_DESCRIPTION",
"url": "https://YOUR_DOMAIN.com/pricing/",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
},
"breadcrumb": {
"@id": "https://YOUR_DOMAIN.com/pricing/#breadcrumb"
}
},
{
"@type": "BarOrPub",
"@id": "https://YOUR_DOMAIN.com/#business",
"name": "YOUR_BAR_NAME",
"url": "https://YOUR_DOMAIN.com",
"priceRange": "YOUR_PRICE_RANGE",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Drink Specials and Packages",
"itemListElement": [
{
"@type": "Offer",
"name": "Happy Hour",
"description": "YOUR_HAPPY_HOUR_DESCRIPTION",
"price": "YOUR_HAPPY_HOUR_PRICE",
"priceCurrency": "USD"
},
{
"@type": "Offer",
"name": "YOUR_DRINK_SPECIAL_NAME",
"description": "YOUR_DRINK_SPECIAL_DESCRIPTION",
"price": "YOUR_DRINK_SPECIAL_PRICE",
"priceCurrency": "USD"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Private Event Package",
"description": "YOUR_EVENT_PACKAGE_DESCRIPTION"
},
"price": "YOUR_EVENT_PACKAGE_PRICE",
"priceCurrency": "USD",
"description": "YOUR_EVENT_PACKAGE_FEE_TYPE"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Bottle Service",
"description": "YOUR_BOTTLE_SERVICE_DESCRIPTION"
},
"price": "YOUR_BOTTLE_SERVICE_PRICE",
"priceCurrency": "USD"
}
]
}
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/pricing/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Pricing",
"item": "https://YOUR_DOMAIN.com/pricing/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_2"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_3",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_3"
}
}
]
}
]
}
Create a separate Offer for each happy hour variation. For example, one offer for "Monday $3 Pints" and another for "Friday $5 Margaritas." Include the day and time window in the description field so AI can match the right deal to the right query. More specific offers mean more chances for AI to surface your bar for day-specific searches.
Both have value. Individual drink prices as separate Offer nodes give AI the most precise data. If listing every drink is impractical, use priceRange on the organization node (like "$5-$15") and create Offer nodes for your signature specials and packages. Some structured pricing is always better than none.
Update the structured data when specials change. If you run a summer patio special, add it as an Offer when the season starts and remove it when it ends. AI systems re-crawl pages periodically, so keeping your pricing current means AI always has accurate information. Outdated specials in structured data are worse than no pricing data at all.