is_dupe_experiment

Check whether a proposed experiment has already been run in this project. Embeds the name and hypothesis, then Jev scores the nearest stored experiments. Returns only those Jev scores above 0.9, most similar first.

Operation ID: is_dupe_experiment

Check whether a proposed experiment has already been run in this project. Embeds the name and hypothesis, then Jev scores the nearest stored experiments. Returns only those Jev scores above 0.9, most similar first.

When to use: You have a new experiment spec and need to know if this project already ran it. An empty list means it has not been run.

Returns: { experiments: [{ id, project_id, name, hypothesis, start_date, end_date, variant_keys, control_variant_key, metadata, headline, processed_results, related_learning_ids, related_learnings, similarity, created_at, updated_at, source_url }] }

FieldTypeRequiredDescription
project_iduuidYesProject id from list_projects.
experiment_specobjectYesThe proposed experiment. The embedding uses name and hypothesis. Jev also reads content when you send it.

experiment_spec fields:

FieldTypeRequiredDescription
namestringYesDisplay title. Max 200 characters. title is accepted as an alias.
hypothesisstringYesWhat the test would change and why. 1–8000 characters.
contentstringNoOptional fuller spec, such as variants and the primary metric. Max 12000 characters.

Function schema:

{
  "name": "is_dupe_experiment",
  "description": "Check whether a proposed experiment has already been run in this project. Embeds the name and hypothesis, then Jev scores the nearest stored experiments. Returns only those Jev scores above 0.9, most similar first. You have a new experiment spec and need to know if this project already ran it. An empty list means it has not been run.",
  "parameters": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "project_id": {
        "type": "string",
        "format": "uuid",
        "description": "Project id from list_projects."
      },
      "experiment_spec": {
        "type": "object",
        "description": "The proposed experiment. The embedding uses name and hypothesis. Jev also reads content when you send it.",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Display title. Max 200 characters. title is accepted as an alias."
          },
          "hypothesis": {
            "type": "string",
            "description": "What the test would change and why. 1–8000 characters."
          },
          "content": {
            "type": "string",
            "description": "Optional fuller spec, such as variants and the primary metric. Max 12000 characters."
          }
        },
        "required": [
          "name",
          "hypothesis"
        ]
      }
    },
    "required": [
      "project_id",
      "experiment_spec"
    ]
  }
}

Request:

{
  "project_id": "11111111-1111-4111-8111-111111111111",
  "experiment_spec": {
    "name": "Cart shipping estimate",
    "hypothesis": "If we show an estimated shipping range on cart, checkout completion will go up because people stop getting surprised by cost at payment."
  }
}

Response:

{
  "experiments": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "project_id": "11111111-1111-4111-8111-111111111111",
      "name": "Cart shipping estimate",
      "hypothesis": "If we show an estimated shipping range on cart, checkout completion will go up because people stop getting surprised by cost at payment.",
      "start_date": "2026-03-01",
      "end_date": "2026-03-28",
      "variant_keys": [
        "control",
        "estimate"
      ],
      "control_variant_key": "control",
      "metadata": {
        "source": "posthog",
        "source_id": "cart-shipping-estimate"
      },
      "headline": {
        "metric": "Checkout completion",
        "variant_key": "estimate",
        "lift_relative": 7.2993,
        "p_value": 0.1389,
        "control_n": 24105,
        "variant_n": 24105
      },
      "processed_results": [
        {
          "metric": "Checkout completion",
          "variant_key": "estimate",
          "control_variant_key": "control",
          "control_n": 24105,
          "variant_n": 24105,
          "control_mean": 0.034101,
          "variant_mean": 0.03659,
          "lift_absolute": 0.002489,
          "lift_relative": 7.2993,
          "p_value": 0.1389,
          "z_score": 1.4799,
          "post_hoc_power": 32,
          "mde80_relative": 13.8182,
          "kind": "rate",
          "control_variance": 0.032939,
          "variant_variance": 0.035251
        }
      ],
      "related_learning_ids": [
        "44444444-4444-4444-8444-444444444444",
        "55555555-5555-4555-8555-555555555555"
      ],
      "related_learnings": [
        {
          "id": "44444444-4444-4444-8444-444444444444",
          "title": "Shipping estimates lift checkout completion",
          "summary": "Showing an estimated shipping range on cart raised checkout completion. People dropped off when cost appeared for the first time at payment.",
          "strength_of_evidence": 0.72,
          "source_url": "https://garasu.co/app/77777777-7777-4777-8777-777777777777/projects/11111111-1111-4111-8111-111111111111/learnings/44444444-4444-4444-8444-444444444444"
        }
      ],
      "source_url": "https://garasu.co/app/77777777-7777-4777-8777-777777777777/projects/11111111-1111-4111-8111-111111111111/experiments/22222222-2222-4222-8222-222222222222",
      "created_at": "2026-03-29T14:12:00.000Z",
      "updated_at": "2026-03-29T14:12:00.000Z",
      "similarity": 0.94
    }
  ]
}