Sastrify · Schema

SaaSSubscription

Schema for a SaaS application subscription managed within the Sastrify platform

Cost OptimizationLicense ManagementProcurementSaaS ManagementSoftware SpendVendor Management

Properties

Name Type Description
id string Unique identifier for the subscription record in Sastrify
applicationName string Name of the SaaS application
vendorName string Name of the SaaS vendor or publisher
category string Functional category of the SaaS tool
annualCost number Annual cost of the subscription in the contract currency
currency string ISO 4217 currency code for the annual cost
licenseCount integer Total number of licenses or seats in the current contract
activeUsers integer Number of users active in the past 30 days
utilizationRate number Percentage of provisioned licenses actively used (activeUsers / licenseCount)
renewalDate string Contract renewal date
contractStartDate string Start date of the current contract term
paymentTerms string Payment schedule for the subscription
autoRenew boolean Whether the contract auto-renews at expiration
contractOwner string Name or email of the internal owner responsible for this subscription
department string Primary business department using this tool
benchmarkData object Market pricing benchmark for this tool category
discoverySource string How the subscription was discovered by Sastrify
status string Current status of the subscription in Sastrify
View JSON Schema on GitHub

JSON Schema

sastrify-saas-subscription-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/sastrify/main/json-schema/sastrify-saas-subscription-schema.json",
  "title": "SaaSSubscription",
  "description": "Schema for a SaaS application subscription managed within the Sastrify platform",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the subscription record in Sastrify",
      "example": "sub_01HXYZ1234567890"
    },
    "applicationName": {
      "type": "string",
      "description": "Name of the SaaS application",
      "example": "Salesforce"
    },
    "vendorName": {
      "type": "string",
      "description": "Name of the SaaS vendor or publisher",
      "example": "Salesforce, Inc."
    },
    "category": {
      "type": "string",
      "description": "Functional category of the SaaS tool",
      "example": "CRM",
      "enum": [
        "CRM",
        "Communication",
        "Project Management",
        "HR",
        "Finance",
        "Security",
        "Analytics",
        "Design",
        "Development",
        "Marketing",
        "Legal",
        "IT Operations",
        "Document Management",
        "Collaboration",
        "Other"
      ]
    },
    "annualCost": {
      "type": "number",
      "description": "Annual cost of the subscription in the contract currency",
      "minimum": 0,
      "example": 120000
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 currency code for the annual cost",
      "pattern": "^[A-Z]{3}$",
      "example": "USD"
    },
    "licenseCount": {
      "type": "integer",
      "description": "Total number of licenses or seats in the current contract",
      "minimum": 1,
      "example": 200
    },
    "activeUsers": {
      "type": "integer",
      "description": "Number of users active in the past 30 days",
      "minimum": 0,
      "example": 145
    },
    "utilizationRate": {
      "type": "number",
      "description": "Percentage of provisioned licenses actively used (activeUsers / licenseCount)",
      "minimum": 0,
      "maximum": 100,
      "example": 72.5
    },
    "renewalDate": {
      "type": "string",
      "format": "date",
      "description": "Contract renewal date",
      "example": "2026-12-31"
    },
    "contractStartDate": {
      "type": "string",
      "format": "date",
      "description": "Start date of the current contract term",
      "example": "2025-01-01"
    },
    "paymentTerms": {
      "type": "string",
      "description": "Payment schedule for the subscription",
      "example": "Annual Prepaid",
      "enum": ["Annual Prepaid", "Monthly", "Quarterly", "Multi-Year"]
    },
    "autoRenew": {
      "type": "boolean",
      "description": "Whether the contract auto-renews at expiration",
      "example": true
    },
    "contractOwner": {
      "type": "string",
      "description": "Name or email of the internal owner responsible for this subscription",
      "example": "[email protected]"
    },
    "department": {
      "type": "string",
      "description": "Primary business department using this tool",
      "example": "Sales"
    },
    "benchmarkData": {
      "type": "object",
      "description": "Market pricing benchmark for this tool category",
      "properties": {
        "medianPricePerSeat": {
          "type": "number",
          "description": "Median market price per seat per year for this tool category",
          "example": 560
        },
        "organizationPricePerSeat": {
          "type": "number",
          "description": "Current price per seat per year paid by the organization",
          "example": 600
        },
        "savingsOpportunity": {
          "type": "number",
          "description": "Estimated annual savings if price is brought to benchmark",
          "example": 8000
        },
        "percentile": {
          "type": "integer",
          "description": "Price percentile (e.g., 75 means paying more than 75% of similar companies)",
          "minimum": 0,
          "maximum": 100,
          "example": 72
        }
      }
    },
    "discoverySource": {
      "type": "string",
      "description": "How the subscription was discovered by Sastrify",
      "example": "SSO Integration",
      "enum": [
        "SSO Integration",
        "Accounting Integration",
        "Browser Extension",
        "Manual Entry",
        "Email Integration"
      ]
    },
    "status": {
      "type": "string",
      "description": "Current status of the subscription in Sastrify",
      "example": "Active",
      "enum": ["Active", "Pending Renewal", "Cancelled", "Under Review", "In Negotiation"]
    }
  },
  "required": ["applicationName", "vendorName", "annualCost", "currency", "licenseCount", "renewalDate"],
  "additionalProperties": false
}