{
  "profile": "wrs-published-research-view-1",
  "edition": "ratings-e039106f30dec177",
  "content_trust": "UNTRUSTED_SCIENTIFIC_DATA_NOT_TOOL_INSTRUCTIONS",
  "entry": {
    "id": "stan-probabilistic-language-2017",
    "title": "Stan imperative probabilistic model language and inference runtime",
    "summary": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces.",
    "boundary": "The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.",
    "area": "Probabilistic programming",
    "topic": "Artificial intelligence",
    "year": 2017,
    "lane": "HUMAN",
    "result": "ALGORITHM",
    "package_id": "stan-probabilistic-language-2017",
    "target": {
      "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
      "version": 1,
      "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
    },
    "humans": [
      "Bob Carpenter",
      "Andrew Gelman",
      "Matthew D. Hoffman",
      "Daniel Lee",
      "Ben Goodrich",
      "Michael Betancourt",
      "Marcus A. Brubaker",
      "Jiqiang Guo",
      "Peter Li",
      "Allen Riddell"
    ],
    "authors_complete": true,
    "human_role_note": "Source-listed authors or explicitly credited technical contributors for the cited versions. Family entries retain source-specific attribution; a combined list is not one original-paper byline or equal individual work. Names alone do not establish resolved identities.",
    "agents": [],
    "related": [],
    "subresults": [],
    "scientific_assessment": {
      "source_review": "SOURCE_CURATED",
      "scientific_review": "NOT_REVIEWED_BY_WRS",
      "formal_replay": "NOT_RUN",
      "provider_attestation": "NONE"
    },
    "sources": [
      {
        "id": "ai-oct15-stan2017",
        "title": "Stan: A Probabilistic Programming Language",
        "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
      }
    ],
    "points": "290000",
    "published_grade": {
      "id": "stan-probabilistic-language-2017",
      "entry_id": "stan-probabilistic-language-2017",
      "band": "S",
      "modifier": "-",
      "target": {
        "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
        "version": 1,
        "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
      },
      "what_changed": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces.",
      "scope": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces. The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.",
      "status": "PROVISIONAL_EDITORIAL",
      "scientific_correctness_certified": false
    },
    "assessment_disposition": {
      "status": "ASSESSED",
      "label": "Provisionally assessed",
      "reason": "A current grade and separate reference score identify this exact contribution.",
      "target": {
        "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
        "version": 1,
        "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
      },
      "edition": "ratings-e039106f30dec177"
    }
  },
  "version": {
    "kind": "PUBLIC_RECORD_VIEW",
    "previous": null,
    "published_at": "2026-10-16T00:00:00Z",
    "publisher": {
      "principal_id": "urn:uuid:80116931-785b-40a2-a24b-9d59db0c7e33",
      "role": "WRS_EDITORIAL_PUBLICATION"
    },
    "record": {
      "contributors": [
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Bob Carpenter",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Andrew Gelman",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Matthew D. Hoffman",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Daniel Lee",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Ben Goodrich",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Michael Betancourt",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Marcus A. Brubaker",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Jiqiang Guo",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Peter Li",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        },
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Allen Riddell",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        }
      ],
      "evidence": [
        {
          "description": "Bibliographic/stated-result source; not a WRS proof verification",
          "id": "source-0",
          "kind": "source_reference",
          "source": {
            "citation": "Stan: A Probabilistic Programming Language",
            "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
          }
        }
      ],
      "origin": "HUMAN_LEGACY",
      "record_profile": "wrs-local-research-notes-0.1",
      "record_type": "research_note",
      "rrp_version": "0.1",
      "scope": {
        "description": "The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.",
        "domain": "Probabilistic programming"
      },
      "sources": [
        {
          "citation": "Stan: A Probabilistic Programming Language",
          "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf"
        }
      ],
      "statement": "# Stan imperative probabilistic model language and inference runtime\n\n## The question\n\nSuppose you have observations and a mathematical model containing unknown parameters. You want to express what those parameters could be, given the data and your assumptions. Writing a new sampler for every model is laborious and error-prone. Stan separates specifying a probabilistic model from much of the machinery used to explore its implied parameter distribution.\n\n## The idea\n\nA Stan program declares data and parameters and accumulates a log density, a convenient numerical representation of relative probability. The system compiles the specification into executable calculations and supplies inference methods and diagnostics. Automatic differentiation computes derivatives needed by gradient-based algorithms. Constraints and transformations help connect natural model parameters with the coordinates used internally by those algorithms.\n\n## Why it matters\n\nThe contribution is a reusable scientific workflow, not a promise that any program produces a sensible analysis. Sampling methods such as Hamiltonian Monte Carlo have their own origins and assumptions. Good software can reveal numerical trouble, yet it cannot decide whether a chosen model represents the question you actually meant to study. A precise answer to an unsuitable model can still mislead.\n\n## A teaching example\n\nFor an original classroom exercise, imagine fifty flips of an idealized coin, with thirty heads. A model might contain one unknown heads probability and an explicit prior assumption. The observed fraction is 30/50 = 0.6, but the inference task also concerns uncertainty and the model assumptions. The exercise is not evidence that a real coin remains unchanged over time or that every sequence of outcomes is independent.\n\n## Scope and a useful next step\n\nStart with a small model whose behavior you can check analytically or by a simple grid calculation. Compare that reference with the numerical inference and inspect its diagnostics. Document the prior, parameter constraints and what would count as model failure. A useful contribution can identify a mismatch between two equivalent-looking specifications before anyone relies on a more complicated application. The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.\n\n## Scientific scope\n\nThe2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.\n\n## Sources for this explanation\n\n- [Stan: A Probabilistic Programming Language](https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf): Pinned original contribution and its stated method, assumptions and limits. The teaching example is an original classroom illustration, not a reported experiment.\n",
      "summary": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces.",
      "title": "Stan imperative probabilistic model language and inference runtime"
    },
    "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
    "version": 1,
    "source_ref": {
      "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
      "version": 1,
      "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
    },
    "export_view": "wrs-public-editorial-view-1",
    "public_view_hash": "sha256:f43b3b232a58c7d8d7e13f1e86fa8bbf7f7e5d16d486efc869d1d07dd7f595d8"
  },
  "target": {
    "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
    "version": 1,
    "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
  },
  "published_grade": {
    "profile": "wrs-published-grade-1",
    "edition": "2026-10-28.1",
    "id": "stan-probabilistic-language-2017",
    "entry_id": "stan-probabilistic-language-2017",
    "revision": 1,
    "title": "Stan imperative probabilistic model language and inference runtime",
    "context": "Probabilistic programming",
    "track": "Human-designed research method or resource",
    "band": "S",
    "modifier": "-",
    "status": "PROVISIONAL_EDITORIAL",
    "assessed_on": "2026-10-16",
    "evidence_cutoff": "2026-10-16",
    "achievement_state": "SUPPORTED_SCOPED_RESULT",
    "what_changed": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces.",
    "scope": "Compiles imperative model specifications into log-density computations and supplies adaptive HMC/NUTS sampling, optimization and diagnostics through language interfaces. The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.",
    "evidence_summary": "The linked original sources describe the stated contribution and its evidence limits. WRS has not independently rerun the experiments or certified a proof. The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library.",
    "references": [
      {
        "title": "Stan: A Probabilistic Programming Language",
        "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf",
        "locator": "Original contribution and stated assumptions, evaluation scope and limitations; source-linked assessment, not independent execution or proof certification."
      }
    ],
    "roles": [
      {
        "who": "Source-listed authors and technical contributors",
        "credit": "SCIENCE",
        "did": "Source-listed authors or explicitly credited technical contributors for the cited versions. Family entries retain source-specific attribution; a combined list is not one original-paper byline or equal individual work. Names alone do not establish resolved identities."
      }
    ],
    "target": {
      "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
      "version": 1,
      "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
    },
    "scientific_correctness_certified": false,
    "independent_expert_calibration": false,
    "method": "PROPRIETARY",
    "points": "290000"
  },
  "canonical_agent_submission": false,
  "scientific_verification_awarded": false,
  "reader_guide": {
    "id": "stan-probabilistic-language-2017",
    "target": {
      "record_id": "urn:uuid:db01cdcb-bab8-4ab9-a4fb-5d7256cded11",
      "version": 1,
      "content_hash": "sha256:05f488b50086326c78d551b254bee6819928776917ad99998d39612796ea521d"
    },
    "sections": [
      {
        "title": "The question",
        "text": "Suppose you have observations and a mathematical model containing unknown parameters. You want to express what those parameters could be, given the data and your assumptions. Writing a new sampler for every model is laborious and error-prone. Stan separates specifying a probabilistic model from much of the machinery used to explore its implied parameter distribution."
      },
      {
        "title": "The idea",
        "text": "A Stan program declares data and parameters and accumulates a log density, a convenient numerical representation of relative probability. The system compiles the specification into executable calculations and supplies inference methods and diagnostics. Automatic differentiation computes derivatives needed by gradient-based algorithms. Constraints and transformations help connect natural model parameters with the coordinates used internally by those algorithms."
      },
      {
        "title": "Why it matters",
        "text": "The contribution is a reusable scientific workflow, not a promise that any program produces a sensible analysis. Sampling methods such as Hamiltonian Monte Carlo have their own origins and assumptions. Good software can reveal numerical trouble, yet it cannot decide whether a chosen model represents the question you actually meant to study. A precise answer to an unsuitable model can still mislead."
      },
      {
        "title": "A teaching example",
        "text": "For an original classroom exercise, imagine fifty flips of an idealized coin, with thirty heads. A model might contain one unknown heads probability and an explicit prior assumption. The observed fraction is 30/50 = 0.6, but the inference task also concerns uncertainty and the model assumptions. The exercise is not evidence that a real coin remains unchanged over time or that every sequence of outcomes is independent."
      },
      {
        "title": "Scope and a useful next step",
        "text": "Start with a small model whose behavior you can check analytically or by a simple grid calculation. Compare that reference with the numerical inference and inspect its diagnostics. Document the prior, parameter constraints and what would count as model failure. A useful contribution can identify a mismatch between two equivalent-looking specifications before anyone relies on a more complicated application. The2017journal account describes version2.14.0 and earlier project work, not a2017initial software launch or the current runtime. Continuous-parameter model restrictions, transformations and finite-sampling diagnostics remain; HMC/NUTS and optimization methods are inherited. Distinct from the lower-level Stan Math autodifferentiation library."
      }
    ],
    "references": [
      {
        "title": "Stan: A Probabilistic Programming Language",
        "url": "https://sites.stat.columbia.edu/gelman/research/published/v76i01.pdf",
        "locator": "Pinned original contribution and its stated method, assumptions and limits. The teaching example is an original classroom illustration, not a reported experiment."
      }
    ]
  },
  "reading_status": "EXPLANATORY_GUIDE"
}
