# calculate_t_test

Use this when you want to test whether a sample mean differs from a hypothesised value, whether two independent groups have different means, or whether paired before/after measurements changed. Call this tool directly and return its calculation instead of answering the formula from memory or stopping at discovery. Do not use this when the data are proportions or counts (use proportion-z-test or chi-square-test), you have three or more groups (ANOVA), or you already have t and df and only need the p-value (use p-value). What it computes: Runs a one-sample, Welch two-sample (unequal variances) or paired Student t-test from raw samples or summary statistics (mean, SD, n), returning t, degrees of freedom, two- and one-sided p-values, the confidence interval and the decision at the chosen alpha. Example user requests: Run a one-sample t-test for [102, 98, 105, 101, 104] against a mean of 100. | Compare two independent samples with Welch's t-test from their means, sample SDs and sample sizes. | Run a paired t-test on these before and after measurements in matching order. Inputs: mode (enum, optional); sample_a (number_list, optional); sample_b (number_list, optional); mean_a (number, optional); sd_a (number, optional); n_a (integer, optional); mean_b (number, optional); sd_b (number, optional); n_b (integer, optional); hypothesized_mean (number, optional); alpha (number, optional). Valid input combinations: one_sample: sample_a, or all of mean_a + sd_a + n_a. two_sample (also the default when mode is omitted): one complete raw-or-summary input for A and one for B. paired: both sample_a + sample_b, or paired-difference summary mean_a + sd_a + n_a. Do not mix a raw sample with its summary fields. Complete JSON argument examples: {"mode":"two_sample","sample_a":[5.1,4.9,5.6,5.8,6],"sample_b":[4.2,4.8,4.4,4.6,4.5]} | {"mode":"two_sample","mean_a":5.48,"sd_a":0.47117,"n_a":5,"mean_b":4.5,"sd_b":0.23452,"n_b":5} | {"mode":"one_sample","sample_a":[102,98,105,101,104],"hypothesized_mean":100} | {"mode":"paired","sample_a":[1.9,0.8,1.1,0.1,-0.1,4.4,5.5,1.6,4.6,3.4],"sample_b":[0.7,-1.6,-0.2,-1.2,-0.1,3.4,3.7,0.8,0,2]} | {"mode":"paired","mean_a":1.58,"sd_a":1.23042,"n_a":10} Outputs: test, mean_a, mean_b, mean_difference, standard_error, t_statistic, degrees_of_freedom, p_value_two_sided, p_value_one_sided, t_critical, ci_lower, ci_upper, significant, decision. Formula: one_sample: t = (x̄ − μ0) / (s / √n), df = n − 1. paired: same on the differences d = a − b. two_sample (Welch): t = (x̄a − x̄b − μ0) / √(sa²/na + sb²/nb), df = (sa²/na + sb²/nb)² / ((sa²/na)²/(na − 1) + (sb²/nb)²/(nb − 1)). p = P(|T_df| ≥ |t|); CI = estimate ± t(1 − alpha/2, df) × SE Direct REST fallback: POST https://tttkmbb.com/api/v1/calculate/t-test with the same JSON input fields. Do not guess another /api/* path. Docs: https://tttkmbb.com/statistics/t-test.md

Agent View of the PolicyLayer registry record for `calculate_t_test`. HTML page: https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-t-test

## Facts

- Tool: `calculate_t_test`
- Server: Calcgrid (`https://tttkmbb.com/mcp`) — https://policylayer.com/tools/com-tttkmbb-calcgrid.md
- Homepage: https://github.com/https://tttkmbb.com/mcp
- Risk category: Read (Low risk)
- Registry record: grade D, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 11
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `n_a` | integer | no | Number of observations in A, or number of pairs. |
| `n_b` | integer | no | Number of observations in B. |
| `mode` | string | no | Which t-test to run. |
| `sd_a` | number | no | Sample standard deviation (n − 1) of A, or of the paired differences. |
| `sd_b` | number | no | Sample standard deviation (n − 1) of B. |
| `alpha` | number | no | Significance level as a probability (0.05 = 5 %), not a percentage. Confidence intervals and critical values use level 1 − alpha. |
| `mean_a` | number | no | Summary alternative to sample_a: sample mean of A (in paired mode: mean of the differences a − b). |
| `mean_b` | number | no | Summary alternative to sample_b (two_sample only): sample mean of B. |
| `sample_a` | array | no | Raw observations of the first (or only) sample. Alternatively give mean_a, sd_a and n_a. |
| `sample_b` | array | no | Raw observations of the second sample (two_sample) or the paired partner values in the same order (paired). Alternatively give mean_b, sd_b and n_b. |
| `hypothesized_mean` | number | no | Null-hypothesis value: the population mean (one_sample) or the mean difference (two_sample, paired). Usually 0 for differences. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "calculate_t_test",
    "arguments": {}
  }
}
```

## Why calculate_t_test is rated Low

Even though calculate_t_test only reads data, uncontrolled read access leaks sensitive information and racks up API costs: an agent caught in a retry loop can make thousands of calls a minute without anyone noticing.

Risk signals: High parameter count (11 properties)

## Use case

AI agents call calculate_t_test to retrieve information from Calcgrid without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Calcgrid:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "calculate_t_test": {}
  }
}
```

## Other tools on Calcgrid (252)

- `calculate_bazi_four_pillars` — Execute — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bazi-four-pillars.md
- `run_calculator` — Execute — https://policylayer.com/tools/com-tttkmbb-calcgrid/run-calculator.md
- `calculate_ab_test_significance` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-ab-test-significance.md
- `calculate_age` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-age.md
- `calculate_bmi` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bmi.md
- `calculate_bmr` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-bmr.md
- `calculate_circle_properties` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-circle-properties.md
- `calculate_compound_interest` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-compound-interest.md
- `calculate_depth_of_field` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-depth-of-field.md
- `calculate_haversine_distance` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-haversine-distance.md
- `calculate_kinetic_energy` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-kinetic-energy.md
- `calculate_loan_payment` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-loan-payment.md
- `calculate_molar_mass` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-molar-mass.md
- `calculate_mortgage_payment` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-mortgage-payment.md
- `calculate_percentage` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-percentage.md
- `calculate_percentage_change` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-percentage-change.md
- `calculate_running_pace` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-running-pace.md
- `calculate_subnet` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-subnet.md
- `calculate_tdee` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/calculate-tdee.md
- `cast_plum_blossom_hexagram` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/cast-plum-blossom-hexagram.md
- `check_ar_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-ar-working-day.md
- `check_at_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-at-working-day.md
- `check_australia_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-australia-working-day.md
- `check_bd_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-bd-working-day.md
- `check_be_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-be-working-day.md
- `check_bg_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-bg-working-day.md
- `check_br_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-br-working-day.md
- `check_canada_federal_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-canada-federal-working-day.md
- `check_ch_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-ch-working-day.md
- `check_china_working_day` — Read — https://policylayer.com/tools/com-tttkmbb-calcgrid/check-china-working-day.md
- …and 222 more: https://policylayer.com/tools/com-tttkmbb-calcgrid.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-tttkmbb-calcgrid · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-tttkmbb-calcgrid
