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 |
JSON Schema
{
"$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
}