Calculators
Product-led-growth (PLG) readiness score API
Transparent weighted PLG-readiness rubric (0-100) over five 0-1 factors with explicit weights — timeToValue 0.25, selfServeConversion 0.25, activationRate 0.20, virality 0.15, expansionMotion 0.15 — returning a rating bucket (plg-ready/capable/needs-work/sales-led) and per-factor contribution breakdown. Answers 'am I ready for product-led growth','what is my PLG readiness','which PLG lever is weakest'.
Price$0.01per request
MethodPOST
Route/v1/calc/saas-plg-readiness-score
StatusLive
MIME typeapplication/json
Rate limit120/minute
CacheNo cache
saasplgproduct-led-growthscorestartuprubricactivationcalc
API URL
Integration docshttps://x402.hexl.dev/v1/calc/saas-plg-readiness-scoreExample request
{
"timeToValue": 0.7,
"selfServeConversion": 0.6,
"activationRate": 0.65,
"virality": 0.4,
"expansionMotion": 0.5
}Example response
{
"score": 59,
"rating": "needs-work",
"weights": {
"timeToValue": 0.25,
"selfServeConversion": 0.25,
"activationRate": 0.2,
"virality": 0.15,
"expansionMotion": 0.15
},
"breakdown": [
{
"factor": "timeToValue",
"label": "speed to first value (normalised)",
"value": 0.7,
"weight": 0.25,
"contribution": 17.5
},
{
"factor": "selfServeConversion",
"label": "free-to-paid self-serve conversion",
"value": 0.6,
"weight": 0.25,
"contribution": 15
},
{
"factor": "activationRate",
"label": "new-user activation rate",
"value": 0.65,
"weight": 0.2,
"contribution": 13
},
{
"factor": "virality",
"label": "viral / invite coefficient (normalised)",
"value": 0.4,
"weight": 0.15,
"contribution": 6
},
{
"factor": "expansionMotion",
"label": "in-product expansion motion",
"value": 0.5,
"weight": 0.15,
"contribution": 7.5
}
],
"formula": "score = 100 * (0.25*timeToValue + 0.25*selfServeConversion + 0.20*activationRate + 0.15*virality + 0.15*expansionMotion)"
}Input schema
{
"type": "object",
"required": [
"timeToValue",
"selfServeConversion",
"activationRate",
"virality",
"expansionMotion"
],
"properties": {
"timeToValue": {
"type": "number",
"description": "speed to first value, normalised 0-1",
"examples": [
0.7
]
},
"selfServeConversion": {
"type": "number",
"description": "free-to-paid self-serve conversion 0-1",
"examples": [
0.6
]
},
"activationRate": {
"type": "number",
"description": "new-user activation rate 0-1",
"examples": [
0.65
]
},
"virality": {
"type": "number",
"description": "viral/invite coefficient normalised 0-1",
"examples": [
0.4
]
},
"expansionMotion": {
"type": "number",
"description": "in-product expansion motion 0-1",
"examples": [
0.5
]
}
}
}Output schema
{
"type": "object",
"additionalProperties": true
}