Skip to main content

Overview

Pricing Intelligence uses the Pricing2Yaml format (formerly Yaml4SaaS) to represent SaaS pricing models in a structured, machine-readable format. This format enables rigorous mathematical analysis, validation, and optimization of pricing configurations. Pricing2Yaml is an implementation of the Pricing4SaaS conceptual model, designed to capture the complete pricing structure of SaaS platforms including plans, features, usage limits, and add-ons.

Document Structure

A Pricing2Yaml document consists of five main sections:
1

Metadata

Basic information about the SaaS and pricing model
2

Features

All functionalities and capabilities offered by the service
3

Usage Limits

Quantitative restrictions and quotas
4

Plans

Base subscription tiers with their pricing and included features
5

Add-Ons

Optional extensions that modify plan capabilities

Metadata Section

The top-level metadata provides context for the pricing model:
saasName: Buffer
version: '2.0'
createdAt: '2024-07-02'
currency: USD
hasAnnualPayment: true
saasName
string
required
The name of the SaaS platform
version
string
Version of the Pricing2Yaml specification used
createdAt
string
required
Date when this pricing model was captured
currency
string
required
ISO currency code for all prices (e.g., USD, EUR)
hasAnnualPayment
boolean
Whether annual payment options are available

Features

Features represent the functionalities offered by the SaaS. Each feature is classified according to the Pricing4SaaS taxonomy.

Feature Types

Pricing2Yaml defines eight feature types based on their purpose:

INFORMATION

Analytics, reports, dashboards, and data visualization capabilities

INTEGRATION

Connections to external services, APIs, or platforms

DOMAIN

Core business functionality specific to the platform

AUTOMATION

Automated workflows, bots, and task scheduling

MANAGEMENT

User management, permissions, and access control

GUARANTEE

SLAs, uptime guarantees, and quality assurances

SUPPORT

Customer support channels and service levels

PAYMENT

Payment methods and billing options

Feature Definition

Each feature includes:
features:
  bufferAIAssistant:
    description: >
      Generate new posts for your Buffer schedule, repurpose existing posts, and
      come up with an endless new ideas.
    valueType: BOOLEAN
    defaultValue: true
    type: AUTOMATION
    automationType: BOT
description
string
Human-readable explanation of the feature
valueType
enum
required
Data type: BOOLEAN, NUMERIC, or TEXT
defaultValue
any
required
Default value when not explicitly overridden. Type must match valueType
type
enum
required
Feature category from the Pricing4SaaS taxonomy

Extended Feature Properties

Certain feature types support additional properties: INTEGRATION features:
canva:
  type: INTEGRATION
  integrationType: WEB_SAAS
  # Optional: list of integrated SaaS pricing URLs
AUTOMATION features:
shuffleQueue:
  type: AUTOMATION
  automationType: TASK_AUTOMATION
GUARANTEE features:
uptimeSLA:
  type: GUARANTEE
  docURL: https://example.com/sla

Usage Limits

Usage limits define quantitative restrictions on features or resources.

Limit Types

Based on the Pricing4SaaS model:

NON_RENEWABLE

Fixed caps that don’t reset (e.g., maximum users, storage capacity)

RENEWABLE

Quotas that reset periodically (e.g., monthly API calls)

RESPONSE_DRIVEN

Limits based on system responses (e.g., concurrent requests)

TIME_DRIVEN

Temporal constraints (e.g., session duration)

Limit Definition

Example from Buffer’s pricing model:
usageLimits:
  socialChannelsLimit:
    description: The number of social accounts/pages you can connect to Buffer.
    valueType: NUMERIC
    defaultValue: 3
    unit: account
    type: NON_RENEWABLE
    linkedFeatures:
      - channels
description
string
Explanation of what the limit controls
valueType
enum
required
Always NUMERIC for usage limits
defaultValue
number
required
Default limit value
unit
string
Unit of measurement (e.g., “GB”, “users”, “API calls/month”)
type
enum
required
Limit classification (NON_RENEWABLE, RENEWABLE, etc.)
linkedFeatures
array
Features that this limit applies to

Plans

Plans are the base subscription tiers offered by the SaaS.
plans:
  ESSENTIALS:
    description: For professionals who use publishing, analytics & engagement tools.
    monthlyPrice: 6
    annualPrice: 5
    unit: channel/year
    features:
      hashtagManager:
        value: true
      videoScheduling:
        value: true
    usageLimits:
      socialChannelsLimit:
        value: 1
      postsPerScheduledQueuePerSocialAccountLimit:
        value: 10000000
    price: 6
description
string
Target audience or use case for this plan
monthlyPrice
number
required
Price when paid monthly
annualPrice
number
Price when paid annually (per month equivalent)
unit
string
Billing unit (e.g., “user/month”, “channel/year”)
features
object
Feature overrides for this plan. Only include features that differ from defaults.
usageLimits
object
Usage limit overrides for this plan
price
number
Effective price (typically matches monthlyPrice)
Inheritance Model: Plans inherit all default feature and limit values. Only specify overrides in the plan definition. Features/limits set to null in a plan explicitly disable those capabilities.

Add-Ons

Add-ons are optional purchases that extend plan capabilities.
addOns:
  essentialsExtraChannels:
    availableFor:
      - ESSENTIALS
    monthlyPrice: 6
    annualPrice: 5
    unit: channel/year
    features: null
    usageLimits: null
    usageLimitsExtensions:
      socialChannelsLimit:
        value: 1
    price: 6
availableFor
array
required
List of plan names that can purchase this add-on
monthlyPrice
number
required
Additional monthly cost
annualPrice
number
Additional annual cost (per month equivalent)
features
object
Additional features unlocked by this add-on
usageLimits
object
New usage limits added by this add-on
usageLimitsExtensions
object
Incremental increases to existing limits
Add-ons can either:
  • Add new features/limits (features, usageLimits)
  • Extend existing limits (usageLimitsExtensions)
An add-on should not do both simultaneously.

Real-World Example

Here’s a simplified excerpt from Buffer’s actual pricing model:
saasName: Buffer
version: '2.0'
createdAt: '2024-07-02'
currency: USD
hasAnnualPayment: true

features:
  channels:
    description: >
      Example: 2 Twitter profiles, 2 Facebook pages, and 2 Start Pages counts as
      6 channels
    valueType: BOOLEAN
    defaultValue: true
    type: DOMAIN
  
  bufferAIAssistant:
    description: >
      Generate new posts for your Buffer schedule, repurpose existing posts, and
      come up with an endless new ideas.
    valueType: BOOLEAN
    defaultValue: true
    type: AUTOMATION
    automationType: BOT
  
  hashtagManager:
    description: Create, save, reuse, and optimize groups of hashtags.
    valueType: BOOLEAN
    defaultValue: false
    type: DOMAIN

usageLimits:
  socialChannelsLimit:
    description: The number of social accounts/pages you can connect to Buffer.
    valueType: NUMERIC
    defaultValue: 3
    unit: account
    type: NON_RENEWABLE
    linkedFeatures:
      - channels

plans:
  FREE:
    description: For individuals getting started with social media.
    monthlyPrice: 0
    annualPrice: 0
    unit: channel/year
    features: null
    usageLimits: null
    price: 0
  
  ESSENTIALS:
    description: For professionals using analytics tools.
    monthlyPrice: 6
    annualPrice: 5
    unit: channel/year
    features:
      hashtagManager:
        value: true
    usageLimits:
      socialChannelsLimit:
        value: 1
    price: 6

addOns:
  essentialsExtraChannels:
    availableFor:
      - ESSENTIALS
    monthlyPrice: 6
    annualPrice: 5
    unit: channel/year
    usageLimitsExtensions:
      socialChannelsLimit:
        value: 1
    price: 6

Configuration Space

Each Pricing2Yaml model defines a configuration space — the set of all valid subscription combinations:
  • Base plan selection (exactly one)
  • Add-on selections (zero or more, subject to availableFor constraints)
  • Effective features and limits (computed from plan + add-ons)
The Analysis API and CSP solvers explore this configuration space to find valid, optimal, or filtered subscriptions.

Next: Harvey Agent

Learn how the Harvey agent reasons about pricing models using the ReAct pattern

Further Reading

MCP Tools

iPricing tool for fetching Pricing2Yaml documents

Validation

CSP-based validation and analysis

Real Examples

Browse real SaaS pricing models

Pricing4SaaS Paper

Academic foundation

Build docs developers (and LLMs) love