{
  "version": "0.20.13",
  "count": 6,
  "generatedAt": "2026-09-06",
  "workflows": [
    {
      "id": "home-buying",
      "title": "Home Buying Planner",
      "notices": [
        "Rent-versus-buy now transfers the loan term, closing cost, tax, insurance, HOA and extra-payment assumptions. It compares terminal wealth with equal upfront capital and monthly resources. Nominal returns are scenarios; mortgage insurance, investment taxes and personal preferences are excluded. Qualified review is pending."
      ],
      "description": "Move from affordability to cash needed, mortgage cost, and rent-versus-buy review.",
      "version": 3,
      "category": "Finance",
      "steps": [
        {
          "id": "affordability",
          "title": "Estimate affordability",
          "description": "Estimate a price and monthly housing budget from income and debts.",
          "calculatorId": "house-affordability-calculator",
          "inputs": {
            "annualIncome": "income.annualGross",
            "monthlyDebts": "debts.monthlyTotal",
            "downPayment": "home.downPayment",
            "annualRate": "loan.interestRate",
            "years": "loan.termYears",
            "propertyTaxRate": "home.propertyTaxRate",
            "insuranceRate": "home.insuranceRate",
            "maxDti": "home.maximumDti"
          },
          "outputs": {
            "maxHomePrice": "home.purchasePrice",
            "maxHousingPayment": "home.maximumPayment",
            "loanAmount": "home.loanAmount"
          }
        },
        {
          "id": "down-payment",
          "title": "Plan cash needed",
          "description": "Compare down payment and closing cash requirements.",
          "calculatorId": "down-payment-calculator",
          "inputs": {
            "homePrice": "home.purchasePrice",
            "closingCostRate": "home.closingCostRate"
          },
          "prefill": {
            "mode": {
              "kind": "literal",
              "value": "amount"
            },
            "downPaymentValue": {
              "kind": "value",
              "source": "context",
              "key": "home.downPayment"
            }
          },
          "outputs": {
            "downPaymentAmount": "home.downPayment",
            "loanAmount": "home.loanAmount",
            "cashNeeded": "home.cashNeeded",
            "closingCosts": "home.closingCosts"
          }
        },
        {
          "id": "mortgage",
          "title": "Model the mortgage",
          "description": "Calculate payment, interest, payoff time, and the effect of extra payments.",
          "calculatorId": "mortgage-calculator",
          "inputs": {
            "homePrice": "home.purchasePrice",
            "downPayment": "home.downPayment",
            "annualRate": "loan.interestRate",
            "years": "loan.termYears",
            "propertyTax": "home.annualPropertyTax",
            "insurance": "home.annualInsurance",
            "hoa": "home.monthlyHoa",
            "extraPayment": "loan.extraPayment"
          },
          "prefill": {
            "propertyTax": {
              "kind": "calculate",
              "operation": "percentOf",
              "values": [
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.purchasePrice"
                },
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.propertyTaxRate"
                }
              ],
              "round": false
            },
            "insurance": {
              "kind": "calculate",
              "operation": "percentOf",
              "values": [
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.purchasePrice"
                },
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.insuranceRate"
                }
              ],
              "round": false
            }
          },
          "capture": {
            "home.annualPropertyTax": {
              "kind": "value",
              "source": "inputs",
              "key": "propertyTax",
              "emptyDefault": 0
            },
            "home.annualInsurance": {
              "kind": "value",
              "source": "inputs",
              "key": "insurance",
              "emptyDefault": 0
            },
            "home.monthlyHoa": {
              "kind": "value",
              "source": "inputs",
              "key": "hoa",
              "emptyDefault": 0
            },
            "loan.extraPayment": {
              "kind": "value",
              "source": "inputs",
              "key": "extraPayment",
              "emptyDefault": 0
            }
          },
          "outputs": {
            "monthlyPayment": "loan.monthlyPayment",
            "totalInterest": "loan.totalInterest",
            "payoffTime": "loan.payoffTime",
            "totalLoanCost": "loan.totalCost"
          }
        },
        {
          "id": "rent-or-buy",
          "title": "Review rent versus buy",
          "description": "Compare the ownership plan with a rental alternative.",
          "calculatorId": "rent-vs-buy-calculator",
          "inputs": {
            "homePrice": "home.purchasePrice",
            "interestRate": "loan.interestRate",
            "monthlyRent": "rent.monthly",
            "term": "loan.termYears",
            "buyingCosts": "home.closingCostRate",
            "propertyTax": "home.annualPropertyTax",
            "insurance": "home.annualInsurance",
            "hoa": "home.monthlyHoa",
            "extraPayment": "loan.extraPayment"
          },
          "prefill": {
            "downPayment": {
              "kind": "calculate",
              "operation": "percentage",
              "values": [
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.downPayment"
                },
                {
                  "kind": "value",
                  "source": "context",
                  "key": "home.purchasePrice"
                }
              ],
              "round": false
            }
          },
          "outputs": {
            "result": "decision.rentVsBuy",
            "ownerWealth": "decision.ownerWealth",
            "renterWealth": "decision.renterWealth",
            "difference": "decision.wealthDifference"
          }
        }
      ]
    },
    {
      "id": "debt-payoff",
      "title": "Debt Payoff Planner",
      "notices": [
        "The debt-to-income step uses the obligations you enter. Credit-card and installment-loan scenarios are not combined or automatically treated as paid off."
      ],
      "description": "Model credit-card and installment-loan payments, then review a manually entered debt-to-income position.",
      "version": 2,
      "category": "Finance",
      "steps": [
        {
          "id": "credit-card",
          "title": "Plan credit-card payoff",
          "description": "Estimate payment, interest, and payoff time.",
          "calculatorId": "credit-card-payoff-calculator",
          "inputs": {
            "balance": "debt.card.balance",
            "apr": "debt.card.apr",
            "monthlyPayment": "debt.card.payment"
          },
          "outputs": {
            "monthlyPaymentResult": "debt.card.payment",
            "totalInterest": "debt.card.interest",
            "payoffTime": "debt.card.payoffTime",
            "totalPaid": "debt.card.totalPaid"
          }
        },
        {
          "id": "installment-loan",
          "title": "Model an installment loan",
          "description": "Compare scheduled and accelerated repayment.",
          "calculatorId": "loan-calculator",
          "inputs": {
            "amount": "debt.loan.balance",
            "annualRate": "debt.loan.rate",
            "years": "debt.loan.years",
            "extraPayment": "debt.loan.extraPayment"
          },
          "outputs": {
            "monthlyPayment": "debt.loan.payment",
            "totalInterest": "debt.loan.interest",
            "payoffTime": "debt.loan.payoffTime",
            "interestSaved": "debt.loan.interestSaved"
          }
        },
        {
          "id": "dti",
          "title": "Check debt-to-income",
          "description": "Enter the monthly obligations you want to assess; payoff scenarios are not automatically subtracted.",
          "calculatorId": "debt-to-income-calculator",
          "inputs": {
            "grossIncome": "income.monthlyGross",
            "housingPayment": "housing.monthly",
            "debtPayments": "debt.nonHousingPayments",
            "otherDebt": "debt.additionalMonthly"
          },
          "outputs": {
            "backEndRatio": "debt.dti.backEnd",
            "frontEndRatio": "debt.dti.frontEnd",
            "totalMonthlyDebt": "debt.monthlyTotal"
          }
        }
      ]
    },
    {
      "id": "retirement",
      "title": "Retirement Planner",
      "notices": [
        "The horizon uses the retirement calculator's rounded difference between retirement age and current age. The linked growth step uses monthly compounding to match the retirement and savings steps. These calculators assume constant returns and do not model taxes, inflation, Social Security, or a withdrawal sequence."
      ],
      "description": "Connect retirement needs, long-term compounding, and a savings target.",
      "version": 3,
      "category": "Finance",
      "steps": [
        {
          "id": "retirement-target",
          "title": "Estimate retirement target",
          "description": "Project savings and compare the result with a target nest egg.",
          "calculatorId": "retirement-calculator",
          "inputs": {
            "currentAge": "person.currentAge",
            "retirementAge": "retirement.age",
            "currentSavings": "retirement.currentSavings",
            "monthlyContribution": "retirement.monthlyContribution",
            "annualReturn": "retirement.returnRate",
            "targetAnnualIncome": "retirement.targetIncome",
            "withdrawalRate": "retirement.withdrawalRate"
          },
          "capture": {
            "retirement.horizonYears": {
              "kind": "calculate",
              "operation": "difference",
              "values": [
                {
                  "kind": "value",
                  "source": "inputs",
                  "key": "retirementAge"
                },
                {
                  "kind": "value",
                  "source": "inputs",
                  "key": "currentAge"
                }
              ],
              "round": true
            }
          },
          "outputs": {
            "projectedSavings": "retirement.projectedSavings",
            "targetNestEgg": "retirement.targetNestEgg",
            "surplusGap": "retirement.surplusGap"
          }
        },
        {
          "id": "growth-scenario",
          "title": "Test a growth scenario",
          "description": "Inspect contributions and compound growth over the remaining horizon.",
          "calculatorId": "compound-interest-calculator",
          "requiredInputs": {
            "frequency": 12
          },
          "prefill": {
            "frequency": {
              "kind": "literal",
              "value": 12
            }
          },
          "inputs": {
            "initial": "retirement.currentSavings",
            "monthly": "retirement.monthlyContribution",
            "annualRate": "retirement.returnRate",
            "years": "retirement.horizonYears"
          },
          "outputs": {
            "futureValue": "retirement.growthFutureValue",
            "contributions": "retirement.totalContributions",
            "interestEarned": "retirement.growthEarned"
          }
        },
        {
          "id": "savings-goal",
          "title": "Create the savings goal",
          "description": "Compare the current savings schedule with the target.",
          "calculatorId": "savings-calculator",
          "inputs": {
            "initial": "retirement.currentSavings",
            "monthly": "retirement.monthlyContribution",
            "annualRate": "retirement.returnRate",
            "years": "retirement.horizonYears",
            "goal": "retirement.targetNestEgg"
          },
          "outputs": {
            "futureBalance": "retirement.savingsFutureBalance",
            "goalStatus": "retirement.goalStatus"
          }
        }
      ]
    },
    {
      "id": "fitness-goal",
      "title": "Fitness Goal Planner",
      "notices": [
        "Adult-only educational estimates; not a diagnosis, treatment plan, or personalized diet. Body composition and activity equations have limitations. Pregnancy, children and medical conditions need appropriate qualified guidance. The body-fat step follows calories and does not automatically recalculate an earlier calorie result."
      ],
      "description": "Build a local profile from BMI, calories, body composition, and training heart-rate zones.",
      "version": 2,
      "category": "Health & Fitness",
      "steps": [
        {
          "id": "bmi",
          "title": "Calculate BMI",
          "description": "Establish baseline height, weight, and screening result.",
          "calculatorId": "bmi-calculator",
          "inputs": {
            "age": "person.age",
            "weightKg": "body.weightKg",
            "heightCm": "body.heightCm",
            "weightLb": "body.weightLb",
            "feet": "body.feet",
            "inches": "body.inches",
            "sex": "person.sex",
            "unitSystem": "preferences.unitSystem"
          },
          "outputs": {
            "bmi": "body.bmi",
            "category": "body.bmiCategory",
            "healthyRange": "body.healthyWeightRange"
          }
        },
        {
          "id": "calories",
          "title": "Set calorie target",
          "description": "Estimate energy needs for the selected activity level and goal.",
          "calculatorId": "calorie-calculator",
          "inputs": {
            "age": "person.age",
            "weightKg": "body.weightKg",
            "heightCm": "body.heightCm",
            "weightLb": "body.weightLb",
            "feet": "body.feet",
            "inches": "body.inches",
            "sex": "person.sex",
            "unitSystem": "preferences.unitSystem",
            "bodyFatPercent": "body.fatPercent"
          },
          "outputs": {
            "targetCalories": "nutrition.targetCalories",
            "tdee": "nutrition.tdee",
            "bmr": "nutrition.bmr"
          }
        },
        {
          "id": "body-fat",
          "title": "Estimate body composition",
          "description": "Estimate fat mass and lean mass from circumference measurements.",
          "calculatorId": "body-fat-calculator",
          "inputs": {
            "age": "person.age",
            "weightKg": "body.weightKg",
            "heightCm": "body.heightCm",
            "weightLb": "body.weightLb",
            "feet": "body.feet",
            "inches": "body.inches",
            "sex": "person.sex",
            "unitSystem": "preferences.unitSystem"
          },
          "outputs": {
            "bodyFat": "body.fatPercent",
            "fatMass": "body.fatMass",
            "leanMass": "body.leanMass"
          }
        },
        {
          "id": "heart-rate",
          "title": "Set heart-rate zones",
          "description": "Calculate training ranges using age and optional resting heart rate.",
          "calculatorId": "target-heart-rate-calculator",
          "inputs": {
            "age": "person.age",
            "restingHeartRate": "fitness.restingHeartRate"
          },
          "outputs": {
            "maxHeartRate": "fitness.maxHeartRate",
            "zone2": "fitness.zone2",
            "vigorous": "fitness.vigorousZone"
          }
        }
      ]
    },
    {
      "id": "statistics-analysis",
      "title": "Statistics Analysis Workflow",
      "description": "Move from descriptive statistics to dispersion, confidence intervals, and probability analysis.",
      "version": 2,
      "category": "Math & Statistics",
      "steps": [
        {
          "id": "descriptive",
          "title": "Summarize the dataset",
          "description": "Calculate center, spread, range, and totals.",
          "calculatorId": "statistics-calculator",
          "inputs": {
            "values": "statistics.values"
          },
          "outputs": {
            "count": "statistics.count",
            "mean": "statistics.mean",
            "median": "statistics.median",
            "sampleStandardDeviation": "statistics.sampleStandardDeviation"
          }
        },
        {
          "id": "dispersion",
          "title": "Inspect standard deviation",
          "description": "Calculate variance, standard error, and margin of error.",
          "calculatorId": "standard-deviation-calculator",
          "inputs": {
            "values": "statistics.values",
            "confidenceLevel": "statistics.confidenceLevel"
          },
          "prefill": {
            "sample": {
              "kind": "literal",
              "value": true
            }
          },
          "requiredInputs": {
            "sample": true
          },
          "outputs": {
            "standardDeviation": "statistics.standardDeviation",
            "variance": "statistics.variance",
            "standardError": "statistics.standardError",
            "marginOfError": "statistics.marginOfError"
          }
        },
        {
          "id": "confidence",
          "title": "Build a confidence interval",
          "description": "Estimate a normal-approximation interval. For unknown population variance or small samples use a validated t method instead.",
          "calculatorId": "confidence-interval-calculator",
          "inputs": {
            "sampleSize": "statistics.count",
            "sampleMean": "statistics.mean",
            "standardDeviation": "statistics.standardDeviation",
            "confidenceLevel": "statistics.confidenceLevel"
          },
          "outputs": {
            "lowerBound": "statistics.confidenceLower",
            "upperBound": "statistics.confidenceUpper",
            "interval": "statistics.confidenceInterval"
          }
        },
        {
          "id": "probability",
          "title": "Model probability",
          "description": "Run an event, series, normal, or binomial probability calculation.",
          "calculatorId": "probability-calculator",
          "outputs": {
            "primaryProbability": "statistics.probability"
          }
        }
      ]
    },
    {
      "id": "construction-estimate",
      "title": "Construction Estimate Planner",
      "description": "Estimate repeated rectangular slabs in feet with depth in inches; include waste and an optional priced material report.",
      "notices": [
        "This workflow is for equal rectangular slabs. Area dimensions are feet, depth is inches. The final volume check covers one slab; multiply by quantity for total net volume. Other shapes remain available as standalone tools. This is not structural design."
      ],
      "version": 2,
      "category": "Home & Construction",
      "steps": [
        {
          "id": "area",
          "title": "Calculate project area",
          "description": "Measure the primary shape and perimeter.",
          "calculatorId": "area-calculator",
          "inputs": {
            "length": "project.length",
            "width": "project.width",
            "height": "project.height"
          },
          "prefill": {
            "shape": {
              "kind": "literal",
              "value": "rectangle"
            }
          },
          "requiredInputs": {
            "shape": "rectangle"
          },
          "outputs": {
            "area": "project.area",
            "perimeter": "project.perimeter"
          }
        },
        {
          "id": "square-footage",
          "title": "Confirm square footage",
          "description": "Convert repeated rectangular areas into total square footage.",
          "calculatorId": "square-footage-calculator",
          "inputs": {
            "length": "project.length",
            "width": "project.width",
            "quantity": "project.quantity"
          },
          "outputs": {
            "totalSquareFeet": "project.squareFeet",
            "squareYards": "project.squareYards",
            "acres": "project.acres"
          }
        },
        {
          "id": "concrete",
          "title": "Estimate concrete",
          "description": "Calculate cubic yards and common bag quantities.",
          "calculatorId": "concrete-calculator",
          "inputs": {
            "length": "project.length",
            "width": "project.width",
            "quantity": "project.quantity",
            "depthInches": "project.depthInches",
            "wastePercent": "project.wastePercent",
            "unitCost": "project.unitCost",
            "laborCost": "project.laborCost",
            "minimumOrderYards": "project.minimumOrderYards",
            "orderIncrementYards": "project.orderIncrementYards",
            "deliveryCost": "project.deliveryCost"
          },
          "outputs": {
            "orderCubicYards": "project.orderCubicYards",
            "materialCost": "project.materialCost",
            "estimatedTotal": "project.estimatedTotal",
            "cubicYards": "project.concreteCubicYards",
            "cubicFeet": "project.concreteCubicFeet",
            "bags60": "project.bags60",
            "bags80": "project.bags80"
          }
        },
        {
          "id": "volume",
          "title": "Run a volume check",
          "description": "Verify a three-dimensional quantity for the selected shape.",
          "calculatorId": "volume-calculator",
          "inputs": {
            "boxLength": "project.length",
            "boxWidth": "project.width"
          },
          "prefill": {
            "shape": {
              "kind": "literal",
              "value": "box"
            },
            "boxHeight": {
              "kind": "calculate",
              "operation": "quotient",
              "values": [
                {
                  "kind": "value",
                  "source": "context",
                  "key": "project.depthInches"
                },
                {
                  "kind": "literal",
                  "value": 12
                }
              ],
              "round": false
            }
          },
          "requiredInputs": {
            "shape": "box"
          },
          "outputs": {
            "volume": "project.volume",
            "surfaceArea": "project.surfaceArea"
          }
        }
      ]
    }
  ]
}
