{"success":true,"version":"v1","request":{"tool":"get_calculator_schema","calculator_id":"punnett-square"},"result":{"entity_type":"calculator","id":"punnett-square","calculator_id":"punnett-square","canonical_url":"https://tttkmbb.com/science/punnett-square","name":"Punnett Square Calculator","title":"Punnett Square Calculator – Genotype and Phenotype Ratios for Monohybrid and Dihybrid Crosses","category":"science","category_name":"Biology, Earth & Space","tool_name":"calculate_punnett_square","featured_mcp_tool":false,"description":"Builds the Punnett square for a one-gene (monohybrid) or two-gene (dihybrid) cross from the parents' genotypes and reports the offspring genotype and phenotype ratios, assuming complete dominance and independent assortment.","use_when":"You need the expected offspring ratios (e.g. 3 : 1 or 9 : 3 : 3 : 1), genotype probabilities or the full grid for a Mendelian cross written with allele letters such as Aa × Aa or AaBb × AaBb.","do_not_use_when":"Genes are linked, sex-linked, codominant or incompletely dominant, polygenic or have more than two alleles, or you need allele frequencies in a population (use hardy-weinberg).","inputs":[{"name":"parent_1","label":"Parent 1 genotype","type":"string","required":true,"description":"Genotype of the first parent as allele letters, two per gene: upper case = dominant, lower case = recessive (Aa, AA, aa, AaBb, AABb). One or two genes.","example":"Aa"},{"name":"parent_2","label":"Parent 2 genotype","type":"string","required":true,"description":"Genotype of the second parent with the same gene letters as parent_1.","example":"Aa"}],"outputs":[{"name":"genotype_ratios","label":"Genotype ratios","type":"list","decimals":4,"description":"One row per offspring genotype: genotype, count (cells of the square), fraction and percent."},{"name":"phenotype_ratios","label":"Phenotype ratios","type":"list","decimals":4,"description":"One row per phenotype under complete dominance (A_ = shows the dominant trait, aa = recessive): phenotype, description, count, fraction, percent."},{"name":"ratio_text","label":"Genotype ratio","type":"string","decimals":4,"description":"Reduced genotype ratio in the order of genotype_ratios, e.g. 1 : 2 : 1."},{"name":"phenotype_ratio_text","label":"Phenotype ratio","type":"string","decimals":4,"description":"Reduced phenotype ratio in the order of phenotype_ratios, e.g. 3 : 1 or 9 : 3 : 3 : 1."},{"name":"gametes_parent_1","label":"Gametes of parent 1","type":"string_list","decimals":4,"description":"Possible gametes of parent 1 (2 for one gene, 4 for two genes; repeated when the parent is homozygous)."},{"name":"gametes_parent_2","label":"Gametes of parent 2","type":"string_list","decimals":4,"description":"Possible gametes of parent 2."},{"name":"grid","label":"Punnett square","type":"list","decimals":4,"description":"One row per cell of the square (row-major): parent_1_gamete, parent_2_gamete, offspring genotype and phenotype; 4 cells for one gene, 16 for two."},{"name":"total_cells","label":"Cells in the square","type":"integer","decimals":4,"description":"4 (monohybrid) or 16 (dihybrid); every cell is equally likely."}],"input_schema":{"type":"object","properties":{"parent_1":{"description":"Genotype of the first parent as allele letters, two per gene: upper case = dominant, lower case = recessive (Aa, AA, aa, AaBb, AABb). One or two genes.","type":"string","examples":["Aa"]},"parent_2":{"description":"Genotype of the second parent with the same gene letters as parent_1.","type":"string","examples":["Aa"]}},"additionalProperties":false,"required":["parent_1","parent_2"]},"output_schema":{"type":"object","properties":{"genotype_ratios":{"description":"One row per offspring genotype: genotype, count (cells of the square), fraction and percent.","type":"array"},"phenotype_ratios":{"description":"One row per phenotype under complete dominance (A_ = shows the dominant trait, aa = recessive): phenotype, description, count, fraction, percent.","type":"array"},"ratio_text":{"description":"Reduced genotype ratio in the order of genotype_ratios, e.g. 1 : 2 : 1.","type":"string"},"phenotype_ratio_text":{"description":"Reduced phenotype ratio in the order of phenotype_ratios, e.g. 3 : 1 or 9 : 3 : 3 : 1.","type":"string"},"gametes_parent_1":{"description":"Possible gametes of parent 1 (2 for one gene, 4 for two genes; repeated when the parent is homozygous).","type":"array","items":{"type":"string"}},"gametes_parent_2":{"description":"Possible gametes of parent 2.","type":"array","items":{"type":"string"}},"grid":{"description":"One row per cell of the square (row-major): parent_1_gamete, parent_2_gamete, offspring genotype and phenotype; 4 cells for one gene, 16 for two.","type":"array"},"total_cells":{"description":"4 (monohybrid) or 16 (dihybrid); every cell is equally likely.","type":"integer"}}},"formula":"Gametes = every combination of one allele per gene; offspring genotype = one gamete from each parent; P(genotype) = cells with that genotype / total cells; phenotype (complete dominance) = dominant when at least one upper-case allele is present for the gene","method":"Mendelian inheritance with complete dominance, independent assortment (unlinked genes) and equal gamete frequencies; the ratios are expected probabilities, not guaranteed counts in a small litter.","sources":[{"name":"Wikipedia – Punnett square","url":"https://en.wikipedia.org/wiki/Punnett_square","type":"reference","retrieved_at":"2026-09-24"},{"name":"OpenStax Biology 2e – 12.2 Characteristics and Traits","url":"https://openstax.org/books/biology-2e/pages/12-2-characteristics-and-traits","type":"textbook","retrieved_at":"2026-09-24"}],"freshness":{"type":"static","max_age_seconds":null,"note":"Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output."},"examples":[{"name":"Monohybrid Aa × Aa","inputs":{"parent_1":"Aa","parent_2":"Aa"},"expected":{"genotype_ratios":[{"genotype":"AA","count":1,"fraction":0.25,"percent":25},{"genotype":"Aa","count":2,"fraction":0.5,"percent":50},{"genotype":"aa","count":1,"percent":25}],"ratio_text":"1 : 2 : 1","phenotype_ratio_text":"3 : 1","total_cells":4},"url":"https://tttkmbb.com/api/v1/calculate/punnett-square?parent_1=Aa&parent_2=Aa"},{"name":"Dihybrid AaBb × AaBb","inputs":{"parent_1":"AaBb","parent_2":"AaBb"},"expected":{"phenotype_ratio_text":"9 : 3 : 3 : 1","ratio_text":"1 : 2 : 1 : 2 : 4 : 2 : 1 : 2 : 1","phenotype_ratios":[{"phenotype":"A_ B_","count":9,"percent":56.25},{"phenotype":"A_ bb","count":3},{"phenotype":"aa B_","count":3},{"phenotype":"aa bb","count":1,"percent":6.25}],"total_cells":16},"url":"https://tttkmbb.com/api/v1/calculate/punnett-square?parent_1=AaBb&parent_2=AaBb"}],"faq":[{"q":"How do I write the genotypes?","a":"Two letters per gene, upper case for the dominant allele: Aa is heterozygous, AA homozygous dominant, aa homozygous recessive; for two genes write them back to back (AaBb). Both parents must use the same gene letters."},{"q":"Why is the square 2×2 for AA × Aa instead of 1×2?","a":"Every gamete of each parent is listed, so a homozygous parent contributes two identical gametes; the ratios are the same either way (here 1 : 1 AA to Aa)."},{"q":"What does A_ mean?","a":"A phenotype label: at least one dominant allele (AA or Aa), so the dominant trait is shown; aa shows the recessive trait."}],"tags":["punnett square","genotype ratio","phenotype ratio","dihybrid cross","monohybrid cross","mendelian genetics"],"related":[{"calculator_id":"hardy-weinberg","reason":"Allele and genotype frequencies in a whole population instead of one cross."},{"calculator_id":"probability-of-events","reason":"Combine the offspring probabilities with other independent events."},{"calculator_id":"combinations-permutations","reason":"Count the possible gamete combinations for more genes."}],"links":{"html":"https://tttkmbb.com/science/punnett-square","markdown":"https://tttkmbb.com/science/punnett-square.md","json":"https://tttkmbb.com/science/punnett-square.json","api":"https://tttkmbb.com/api/v1/calculate/punnett-square","schema":"https://tttkmbb.com/api/v1/calculators/punnett-square","openapi":"https://tttkmbb.com/openapi.json","mcp":"https://tttkmbb.com/mcp"},"version":"v1","updated_at":"2026-09-24"},"timestamp":"2026-09-24T03:45:07Z"}