STUD.com
← Objectives

Calculate · Assess & Decide · Analysis & Finance

Market sizing (TAM / SAM / SOM) with the adequacy check

TAM grossed up from a partial-coverage database count, SAM and SOM by your fractions, and a check that SOM clears 2x your revenue objective.

You receive: A reviewed market-sizing calculator + the passing test report, run on your numbers.

Part of Pitch Investors

Opens soon

Cost20 credits
AcceptanceAutomated check against your inputs
ProtectionHeld until verified delivery

This objective is verified and ready. It opens soon, once sign-in and payments are live.

Deliverable interface

The exact vocabulary the automated check enforces: keys, tokens, entry points, and worked examples. Generated from the verification source.

{
 "constants": {},
 "entryName": "compute_tam_sam_som",
 "expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
 "hiddenCaseCount": 4,
 "hiddenCaseNames": [
  "inadequate_som",
  "half_obtainable",
  "exactly_2x_boundary",
  "invalid_zero_coverage"
 ],
 "inputKeys": [
  "avg_revenue_per_account",
  "db_account_count",
  "db_coverage_fraction",
  "obtainable_fraction",
  "revenue_objective",
  "serviceable_fraction"
 ],
 "normalizeSource": "def _tamsamsom_normalize(r):\n    if isinstance(r, str):\n        return r\n    try:\n        return {\"total_accounts\": round(float(r[\"total_accounts\"]), 2), \"tam\": round(float(r[\"tam\"]), 2),\n                \"sam\": round(float(r[\"sam\"]), 2), \"som\": round(float(r[\"som\"]), 2), \"som_adequate\": bool(r[\"som_adequate\"])}\n    except Exception:\n        return repr(r)\n",
 "returnShapes": [
  [
   "sam",
   "som",
   "som_adequate",
   "tam",
   "total_accounts"
  ],
  "invalid_coverage"
 ],
 "signature": "def compute_tam_sam_som(inp):",
 "submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
 "tier": "calculator",
 "visibleCases": [
  {
   "expect": {
    "sam": 10000000,
    "som": 10000000,
    "som_adequate": true,
    "tam": 10000000,
    "total_accounts": 1000
   },
   "input": {
    "avg_revenue_per_account": 10000,
    "db_account_count": 750,
    "db_coverage_fraction": 0.75,
    "obtainable_fraction": 1,
    "revenue_objective": 5000000,
    "serviceable_fraction": 1
   },
   "name": "full_coverage_adequate"
  }
 ],
 "vocabulary": [
  "avg_revenue_per_account",
  "db_account_count",
  "db_coverage_fraction",
  "invalid_coverage",
  "obtainable_fraction",
  "revenue_objective",
  "sam",
  "serviceable_fraction",
  "som",
  "som_adequate",
  "tam",
  "total_accounts"
 ]
}

Example

A sample of what this objective produces. Your result is generated for your inputs.

Tam

480000000

Sam

192000000

Som

38400000

Som clears 2x objective

true

Revenue objective

15000000

Inputs

Db account count12000
Db coverage fraction0.5
Avg revenue per account20000
Serviceable fraction0.4
Obtainable fraction0.2

Note

SOM of 38.4M clears 2x the 15M objective, so the market is adequate.

Get early access to STUD the day it goes live.