{
  "slug": "pt-clinic-visits-per-therapist",
  "title": "PT Clinic Visits Per Therapist Calculator",
  "heading": "Physical Therapy Visits Per Therapist Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/pt-clinic-visits-per-therapist",
  "summary": "Find the visit throughput and revenue capacity of each therapist on staff.",
  "description": "Physical therapy clinics are staffing-constrained businesses — revenue capacity is capped by how many patients each licensed therapist can see per hour, not by demand alone. This calculator converts scheduled hours, target units per hour (a PT typically bills 2-4 15-minute CPT units per visit under time-based codes), and average reimbursement per unit into visits per day, visits per week, and annual revenue capacity per therapist. It also compares that capacity against your current patient panel to show whether you're understaffed, overstaffed, or right-sized. Many clinics run 1:1 model (one therapist, one patient) while others run 2:1 or 3:1 concurrent care with aide support — this tool lets you set a concurrency multiplier to model either. The output is useful for hiring decisions: if a fully loaded therapist costs $95,000 a year in salary and benefits and this calculator shows they can generate $220,000 in collected revenue at full schedule, you have real margin to justify the hire, but only if you can actually fill the schedule with referrals. Cross-check the capacity number against your actual no-show rate, since a 15% no-show rate effectively removes that percentage of capacity from every projection.",
  "formula": "Visits per day = scheduled hours × 60 ÷ minutes per visit × concurrency. Revenue capacity = visits per day × units per visit × reimbursement per unit × working days per year.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=pt-clinic-visits-per-therapist",
  "inputs": [
    {
      "id": "scheduledHours",
      "label": "Scheduled patient-care hours per day",
      "kind": "number",
      "hint": null,
      "default": 7,
      "unit": "hrs",
      "min": 1,
      "max": null
    },
    {
      "id": "minutesPerVisit",
      "label": "Minutes per visit slot",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "min",
      "min": 10,
      "max": null
    },
    {
      "id": "unitsPerVisit",
      "label": "Billable units per visit",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "reimbursementPerUnit",
      "label": "Average net reimbursement per unit",
      "kind": "number",
      "hint": null,
      "default": 28,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "concurrency",
      "label": "Concurrency multiplier (1 = 1:1 care)",
      "kind": "number",
      "hint": null,
      "default": 1.3,
      "unit": null,
      "min": 1,
      "max": 3
    },
    {
      "id": "workingDays",
      "label": "Working days per year",
      "kind": "number",
      "hint": null,
      "default": 230,
      "unit": null,
      "min": 100,
      "max": null
    },
    {
      "id": "noShowRate",
      "label": "No-show / cancellation rate",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "%",
      "min": 0,
      "max": 60
    }
  ],
  "outputs": [
    {
      "id": "annualActual",
      "label": "Realistic annual revenue per therapist",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "effectiveVisitsPerDay",
      "label": "Effective visits per day",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "revenuePerVisit",
      "label": "Net revenue per visit",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "annualCapacity",
      "label": "Theoretical max annual revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "lostToNoShow",
      "label": "Revenue lost to no-shows/cancellations",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Scheduled patient-care hours per day: 7 hrs",
      "Minutes per visit slot: 45 min",
      "Billable units per visit: 3",
      "Average net reimbursement per unit: 28 $",
      "Concurrency multiplier (1 = 1:1 care): 1.3",
      "Working days per year: 230",
      "No-show / cancellation rate: 12 %"
    ],
    "outputs": [
      "Realistic annual revenue per therapist: $206,286",
      "Effective visits per day: 10.7",
      "Net revenue per visit: $84.00",
      "Theoretical max annual revenue: $234,416",
      "Revenue lost to no-shows/cancellations: $28,130"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter scheduled patient-care hours per day (hrs).",
      "Enter minutes per visit slot (min).",
      "Enter billable units per visit.",
      "Enter average net reimbursement per unit ($).",
      "Enter concurrency multiplier (1 = 1:1 care).",
      "Enter working days per year.",
      "Enter no-show / cancellation rate (%).",
      "Read your realistic annual revenue per therapist on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "scheduledHours": 4.2,
        "minutesPerVisit": 25,
        "unitsPerVisit": 1.7999999999999998,
        "reimbursementPerUnit": 17,
        "concurrency": 1,
        "workingDays": 140,
        "noShowRate": 7
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "scheduledHours": 7,
        "minutesPerVisit": 45,
        "unitsPerVisit": 3,
        "reimbursementPerUnit": 28,
        "concurrency": 1.3,
        "workingDays": 230,
        "noShowRate": 12
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "scheduledHours": 11.200000000000001,
        "minutesPerVisit": 70,
        "unitsPerVisit": 4.800000000000001,
        "reimbursementPerUnit": 45,
        "concurrency": 2.08,
        "workingDays": 370,
        "noShowRate": 19
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "What concurrency ratio is realistic for outpatient ortho PT?",
      "a": "Most cash-based and insurance-based outpatient ortho clinics run 1.2-1.5 concurrency with a PT aide handling modalities and exercise setup while the therapist moves between two patients. Pure 1:1 model drops this to 1.0. Going above 2.0 usually hurts outcomes and patient satisfaction scores."
    },
    {
      "q": "How much does no-show rate actually cost a clinic?",
      "a": "A 15% no-show rate on a $220,000 capacity therapist removes roughly $33,000 in annual revenue with zero corresponding cost reduction, since the therapist and rent are still paid. Reminder calls, deposit policies, and overbooking by 10% in the schedule are the standard countermeasures."
    },
    {
      "q": "Why use net reimbursement per unit instead of billed rate?",
      "a": "Billed rates are meaningless once contractual adjustments hit — Medicare pays roughly $25-32 per unit depending on locality, while commercial payers vary from $20 to $45. Use your actual EOB data averaged over the last quarter for an accurate number."
    },
    {
      "q": "What salary-to-revenue ratio signals a good hire?",
      "a": "A common rule of thumb in outpatient PT is that fully loaded therapist compensation should run 30-40% of the revenue they generate. If this calculator shows a therapist generating under 2.5x their salary, the hire is marginal unless referral volume is expected to grow."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/urgent-care-visit-margin",
    "https://www.revenuelab.fyi/toolbox/locum-tenens-vs-hire-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — PT Clinic Visits Per Therapist Calculator (https://www.revenuelab.fyi/toolbox/pt-clinic-visits-per-therapist)"
}