{
  "title": "T test workspace",
  "human_url": "https://happytails.ai/en/calculators/t-test-workspace/",
  "agent_url": "https://happytails.ai/agents/en/calculators/t-test-workspace/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/t-test-workspace.md",
  "content": "T test workspace\nRun one-sample, paired, Welch or Student t tests from raw CSV values or summary statistics. Get the confidence interval for the difference, Cohen's d and Hedges' g with intervals, normality and variance checks, and QQ and interval charts.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use T test workspace\nChoose the design and whether you have raw values or a summary CSV.\nPaste the CSV and name the columns, or keep the default headers.\nSet the null value, the alternative and the confidence level. Tick equal variances only if you have a reason to.\nRun the test, review the interval, effect sizes and checks, and download the report.\nUseful next steps\nConfidence interval calculator\nPooled summary statistics\nSample size calculator\nHow the test works\nTwo independent groups use Welch's t test by default, which does not assume equal variances (Welch 1947, Biometrika 34:28). Student's pooled test is available when equal variances are justified. Paired data are tested as one sample of differences, first minus second. The confidence interval uses the t quantile; one-sided alternatives give one-sided intervals, as R t.test does.\nEffect sizes\nCohen's d uses the pooled standard deviation for two groups and the SD of the differences (d_z) for paired or one-sample data (Cohen 1988, Statistical Power Analysis, 2nd ed.). Its interval inverts the noncentral t distribution (Steiger and Fouladi 1997) and is always two-sided at the chosen confidence level, even for a one-sided alternative, so it is labelled two-sided and can include zero when a one-sided test is significant. Hedges' g applies the exact small-sample factor J (Hedges 1981, Journal of Educational Statistics 6:107).\nChecks and charts\nRaw data get the D'Agostino K squared normality test for samples of at least 8 (D'Agostino, Belanger and D'Agostino 1990, The American Statistician 44:316) and, for two groups, the Brown-Forsythe test (Brown and Forsythe 1974, JASA 69:364) and the variance ratio. The Brown-Forsythe test is left out when each group holds two values equally often (for example two values per group), because the absolute deviations then do not vary and the test is undefined. The QQ chart pairs sorted values with normal quantiles at the R ppoints positions. These checks describe the sample; they should not decide which test to use on their own.\nLimits\nThe t test assumes independent observations and is sensitive to strong outliers in small samples. A p-value is not the size of an effect, so read it with the interval and the effect size.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Confidence interval calculator",
      "url": "https://happytails.ai/en/calculators/confidence-interval-calculator/"
    },
    {
      "name": "Pooled summary statistics",
      "url": "https://happytails.ai/en/calculators/pooled-summary-statistics/"
    },
    {
      "name": "Sample size calculator",
      "url": "https://happytails.ai/en/calculators/sample-size-calculator/"
    }
  ],
  "tool": {
    "id": "t-test-workspace",
    "category": "calculators",
    "built": true,
    "requirements": "Runs locally in your browser in a background worker; nothing is uploaded. CSV up to 1,000,000 characters and 10,000 data rows, with dot-decimal numbers. Raw headers are group,value for two groups, before,after for paired data and value for one sample, or name your own columns. A summary CSV has the headers group,n,mean,sd with one row (one sample or paired differences) or two rows. Confidence level 0.5 to 0.9999. Setting numbers are plain decimals with a digit before the point, such as 0.95, without exponents. In CSV with two or more columns a blank line between rows is rejected, and in one-column CSV it is a blank cell; blank lines after the last row are ignored. Downloads: a JSON report, CSV tables (result, effect sizes, groups, checks and QQ points) and SVG charts.",
    "implementation": {
      "fields": [
        {
          "key": "design",
          "label": "Design",
          "value": "two-sample",
          "type": "select",
          "values": [
            "two-sample",
            "paired",
            "one-sample"
          ],
          "labels": {
            "two-sample": "Two independent groups",
            "paired": "Paired measurements",
            "one-sample": "One sample against a reference value"
          }
        },
        {
          "key": "data",
          "label": "Data",
          "value": "raw",
          "type": "select",
          "values": [
            "raw",
            "summary"
          ],
          "labels": {
            "raw": "Raw values in CSV",
            "summary": "Summary CSV with n, mean and sd"
          }
        },
        {
          "key": "groupColumn",
          "label": "Group column",
          "value": "group",
          "type": "text",
          "maxLength": 200,
          "help": "Exact header of the column that names the two groups.",
          "showWhen": {
            "design": [
              "two-sample"
            ],
            "data": [
              "raw"
            ]
          }
        },
        {
          "key": "valueColumn",
          "label": "Value column",
          "value": "value",
          "type": "text",
          "maxLength": 200,
          "help": "Exact header of the numeric column.",
          "showWhen": {
            "design": [
              "two-sample",
              "one-sample"
            ],
            "data": [
              "raw"
            ]
          }
        },
        {
          "key": "firstColumn",
          "label": "First measurement column",
          "value": "before",
          "type": "text",
          "maxLength": 200,
          "help": "Exact header. Differences are first minus second.",
          "showWhen": {
            "design": [
              "paired"
            ],
            "data": [
              "raw"
            ]
          }
        },
        {
          "key": "secondColumn",
          "label": "Second measurement column",
          "value": "after",
          "type": "text",
          "maxLength": 200,
          "help": "Exact header of the second measurement.",
          "showWhen": {
            "design": [
              "paired"
            ],
            "data": [
              "raw"
            ]
          }
        },
        {
          "key": "mu",
          "label": "Null value",
          "value": "0",
          "type": "text",
          "maxLength": 200,
          "help": "The difference (or mean) under the null hypothesis, for example 0."
        },
        {
          "key": "alternative",
          "label": "Alternative hypothesis",
          "value": "two-sided",
          "type": "select",
          "values": [
            "two-sided",
            "less",
            "greater"
          ],
          "labels": {
            "two-sided": "Two-sided",
            "less": "Less than the null value",
            "greater": "Greater than the null value"
          }
        },
        {
          "key": "confidence",
          "label": "Confidence level",
          "value": "0.95",
          "type": "text",
          "maxLength": 200,
          "help": "A proportion from 0.5 to 0.9999, for example 0.95."
        },
        {
          "key": "equalVariances",
          "label": "Assume equal variances (Student)",
          "value": false,
          "type": "checkbox",
          "showWhen": {
            "design": [
              "two-sample"
            ]
          }
        },
        {
          "key": "missing",
          "label": "Blank cells",
          "value": "reject",
          "type": "select",
          "values": [
            "reject",
            "drop"
          ],
          "labels": {
            "reject": "Stop and show an error",
            "drop": "Drop incomplete rows"
          },
          "showWhen": {
            "data": [
              "raw"
            ]
          }
        }
      ],
      "registrationFamily": "statistical-comparison-tests",
      "inputMaxLength": 1000000,
      "inputErrorCode": "STATISTICAL_COMPARISON_TESTS_TOO_LONG",
      "note": "Runs on your device in the background. Paste up to 1,000,000 characters of CSV with up to 10,000 values; Welch is the default for two groups.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "CSV data",
        "placeholder": "group,value",
        "help": "Paste raw values with a header row, or a summary CSV with group,n,mean,sd. Up to 1,000,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# T test workspace\n\n- Human page: https://happytails.ai/en/calculators/t-test-workspace/\n- Markdown: https://happytails.ai/en/calculators/t-test-workspace.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/t-test-workspace/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `t-test-workspace` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nRuns on your device in the background. Paste up to 1,000,000 characters of CSV with up to 10,000 values; Welch is the default for two groups.\n\n### Inputs and settings\n\nText input: CSV data.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\ngroup,value\n```\n\nPaste raw values with a header row, or a summary CSV with group,n,mean,sd. Up to 1,000,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `design` | Design | select | \"two-sample\" | Allowed: two-sample, paired, one-sample |\n| `data` | Data | select | \"raw\" | Allowed: raw, summary |\n| `groupColumn` | Group column | text | \"group\" |  |\n| `valueColumn` | Value column | text | \"value\" |  |\n| `firstColumn` | First measurement column | text | \"before\" |  |\n| `secondColumn` | Second measurement column | text | \"after\" |  |\n| `mu` | Null value | text | \"0\" |  |\n| `alternative` | Alternative hypothesis | select | \"two-sided\" | Allowed: two-sided, less, greater |\n| `confidence` | Confidence level | text | \"0.95\" |  |\n| `equalVariances` | Assume equal variances (Student) | checkbox | false |  |\n| `missing` | Blank cells | select | \"reject\" | Allowed: reject, drop |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nRuns locally in your browser in a background worker; nothing is uploaded. CSV up to 1,000,000 characters and 10,000 data rows, with dot-decimal numbers. Raw headers are group,value for two groups, before,after for paired data and value for one sample, or name your own columns. A summary CSV has the headers group,n,mean,sd with one row (one sample or paired differences) or two rows. Confidence level 0.5 to 0.9999. Setting numbers are plain decimals with a digit before the point, such as 0.95, without exponents. In CSV with two or more columns a blank line between rows is rejected, and in one-column CSV it is a blank cell; blank lines after the last row are ignored. Downloads: a JSON report, CSV tables (result, effect sizes, groups, checks and QQ points) and SVG charts.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"t-test-workspace\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Runs locally in your browser in a background worker; nothing is uploaded. CSV up to 1,000,000 characters and 10,000 data rows, with dot-decimal numbers. Raw headers are group,value for two groups, before,after for paired data and value for one sample, or name your own columns. A summary CSV has the headers group,n,mean,sd with one row (one sample or paired differences) or two rows. Confidence level 0.5 to 0.9999. Setting numbers are plain decimals with a digit before the point, such as 0.95, without exponents. In CSV with two or more columns a blank line between rows is rejected, and in one-column CSV it is a blank cell; blank lines after the last row are ignored. Downloads: a JSON report, CSV tables (result, effect sizes, groups, checks and QQ points) and SVG charts.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"design\",\n        \"label\": \"Design\",\n        \"value\": \"two-sample\",\n        \"type\": \"select\",\n        \"values\": [\n          \"two-sample\",\n          \"paired\",\n          \"one-sample\"\n        ],\n        \"labels\": {\n          \"two-sample\": \"Two independent groups\",\n          \"paired\": \"Paired measurements\",\n          \"one-sample\": \"One sample against a reference value\"\n        }\n      },\n      {\n        \"key\": \"data\",\n        \"label\": \"Data\",\n        \"value\": \"raw\",\n        \"type\": \"select\",\n        \"values\": [\n          \"raw\",\n          \"summary\"\n        ],\n        \"labels\": {\n          \"raw\": \"Raw values in CSV\",\n          \"summary\": \"Summary CSV with n, mean and sd\"\n        }\n      },\n      {\n        \"key\": \"groupColumn\",\n        \"label\": \"Group column\",\n        \"value\": \"group\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"Exact header of the column that names the two groups.\",\n        \"showWhen\": {\n          \"design\": [\n            \"two-sample\"\n          ],\n          \"data\": [\n            \"raw\"\n          ]\n        }\n      },\n      {\n        \"key\": \"valueColumn\",\n        \"label\": \"Value column\",\n        \"value\": \"value\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"Exact header of the numeric column.\",\n        \"showWhen\": {\n          \"design\": [\n            \"two-sample\",\n            \"one-sample\"\n          ],\n          \"data\": [\n            \"raw\"\n          ]\n        }\n      },\n      {\n        \"key\": \"firstColumn\",\n        \"label\": \"First measurement column\",\n        \"value\": \"before\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"Exact header. Differences are first minus second.\",\n        \"showWhen\": {\n          \"design\": [\n            \"paired\"\n          ],\n          \"data\": [\n            \"raw\"\n          ]\n        }\n      },\n      {\n        \"key\": \"secondColumn\",\n        \"label\": \"Second measurement column\",\n        \"value\": \"after\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"Exact header of the second measurement.\",\n        \"showWhen\": {\n          \"design\": [\n            \"paired\"\n          ],\n          \"data\": [\n            \"raw\"\n          ]\n        }\n      },\n      {\n        \"key\": \"mu\",\n        \"label\": \"Null value\",\n        \"value\": \"0\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"The difference (or mean) under the null hypothesis, for example 0.\"\n      },\n      {\n        \"key\": \"alternative\",\n        \"label\": \"Alternative hypothesis\",\n        \"value\": \"two-sided\",\n        \"type\": \"select\",\n        \"values\": [\n          \"two-sided\",\n          \"less\",\n          \"greater\"\n        ],\n        \"labels\": {\n          \"two-sided\": \"Two-sided\",\n          \"less\": \"Less than the null value\",\n          \"greater\": \"Greater than the null value\"\n        }\n      },\n      {\n        \"key\": \"confidence\",\n        \"label\": \"Confidence level\",\n        \"value\": \"0.95\",\n        \"type\": \"text\",\n        \"maxLength\": 200,\n        \"help\": \"A proportion from 0.5 to 0.9999, for example 0.95.\"\n      },\n      {\n        \"key\": \"equalVariances\",\n        \"label\": \"Assume equal variances (Student)\",\n        \"value\": false,\n        \"type\": \"checkbox\",\n        \"showWhen\": {\n          \"design\": [\n            \"two-sample\"\n          ]\n        }\n      },\n      {\n        \"key\": \"missing\",\n        \"label\": \"Blank cells\",\n        \"value\": \"reject\",\n        \"type\": \"select\",\n        \"values\": [\n          \"reject\",\n          \"drop\"\n        ],\n        \"labels\": {\n          \"reject\": \"Stop and show an error\",\n          \"drop\": \"Drop incomplete rows\"\n        },\n        \"showWhen\": {\n          \"data\": [\n            \"raw\"\n          ]\n        }\n      }\n    ],\n    \"registrationFamily\": \"statistical-comparison-tests\",\n    \"inputMaxLength\": 1000000,\n    \"inputErrorCode\": \"STATISTICAL_COMPARISON_TESTS_TOO_LONG\",\n    \"note\": \"Runs on your device in the background. Paste up to 1,000,000 characters of CSV with up to 10,000 values; Welch is the default for two groups.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"CSV data\",\n      \"placeholder\": \"group,value\",\n      \"help\": \"Paste raw values with a header row, or a summary CSV with group,n,mean,sd. Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nRun one-sample, paired, Welch or Student t tests from raw CSV values or summary statistics. Get the confidence interval for the difference, Cohen's d and Hedges' g with intervals, normality and variance checks, and QQ and interval charts.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use T test workspace\n\n1. Choose the design and whether you have raw values or a summary CSV.\n2. Paste the CSV and name the columns, or keep the default headers.\n3. Set the null value, the alternative and the confidence level. Tick equal variances only if you have a reason to.\n4. Run the test, review the interval, effect sizes and checks, and download the report.\n\n## Useful next steps\n\n- [Confidence interval calculator](https://happytails.ai/en/calculators/confidence-interval-calculator/) ([Markdown](https://happytails.ai/en/calculators/confidence-interval-calculator.md))\n\n- [Pooled summary statistics](https://happytails.ai/en/calculators/pooled-summary-statistics/) ([Markdown](https://happytails.ai/en/calculators/pooled-summary-statistics.md))\n\n- [Sample size calculator](https://happytails.ai/en/calculators/sample-size-calculator/) ([Markdown](https://happytails.ai/en/calculators/sample-size-calculator.md))\n\n## How the test works\n\nTwo independent groups use Welch's t test by default, which does not assume equal variances (Welch 1947, Biometrika 34:28). Student's pooled test is available when equal variances are justified. Paired data are tested as one sample of differences, first minus second. The confidence interval uses the t quantile; one-sided alternatives give one-sided intervals, as R t.test does.\n\n### Effect sizes\n\nCohen's d uses the pooled standard deviation for two groups and the SD of the differences (d\\_z) for paired or one-sample data (Cohen 1988, Statistical Power Analysis, 2nd ed.). Its interval inverts the noncentral t distribution (Steiger and Fouladi 1997) and is always two-sided at the chosen confidence level, even for a one-sided alternative, so it is labelled two-sided and can include zero when a one-sided test is significant. Hedges' g applies the exact small-sample factor J (Hedges 1981, Journal of Educational Statistics 6:107).\n\n### Checks and charts\n\nRaw data get the D'Agostino K squared normality test for samples of at least 8 (D'Agostino, Belanger and D'Agostino 1990, The American Statistician 44:316) and, for two groups, the Brown-Forsythe test (Brown and Forsythe 1974, JASA 69:364) and the variance ratio. The Brown-Forsythe test is left out when each group holds two values equally often (for example two values per group), because the absolute deviations then do not vary and the test is undefined. The QQ chart pairs sorted values with normal quantiles at the R ppoints positions. These checks describe the sample; they should not decide which test to use on their own.\n\n### Limits\n\nThe t test assumes independent observations and is sensitive to strong outliers in small samples. A p-value is not the size of an effect, so read it with the interval and the effect size.\n"
}