Services Catalog
Services Catalog
Section titled “Services Catalog”Who this is for: PMs, sales/GTM, support staff, new hires.
What a “service” is
Section titled “What a “service” is”A “service” is one type of paperwork/certification the platform helps a patient obtain. Buying a service creates one case for that patient. Each service has:
- A public marketing page and a multi-step “get started” funnel (see Onboarding & signup)
- A price (which can vary by state and brand)
- A flag for whether it requires a live appointment with a doctor, and if so the appointment length/buffer
- A set of pre-qualification and intake questions (which can also vary by state)
- A government or official form that ultimately gets filled in and signed (see Document generation & e-signature)
The current services (confirmed in code)
Section titled “The current services (confirmed in code)”| Service | Plain description |
|---|---|
| Disability Parking Placard | Standard disabled-parking placard certification |
| Expectant Mother Parking Permit | Pregnancy-specific parking placard |
| National Park Pass | Access pass for national parks |
| Doctor’s Note | General doctor’s note (work, school, travel, or other reason) |
| Schedule R Tax Credit | Tax-credit eligibility documentation |
| Property Tax Exemption | Property tax exemption eligibility documentation |
| Utility Discounts | Utility discount eligibility documentation |
| Tinted Window Medical Exemption | Medical exemption certificate for tinted vehicle windows |
| Medical Marijuana Card | Medical marijuana card certification (routed under its own section of the site, but uses the same underlying case type as the state paperwork it maps to) |
| FMLA Medical Certification | Family/medical leave certification. Splits into several specific reasons once the patient selects one: adoption, caring for family, military family care, military caregiver, military exigency, mental health, patient’s own health, other, or pregnancy |
| Other Document | A catch-all for an additional supporting document a patient needs filled out |
FMLA add-on services
Section titled “FMLA add-on services”Once a patient’s FMLA case is under review, the platform can offer several add-on services from that case’s status page. Each add-on becomes its own separate, independently-tracked case for a returning patient:
- ACA Documentation
- Return to Work
- Employer Forms
- Short-Term Disability
- ADA Accommodations
- Follow-ups & Extensions
How state-by-state differences work
Section titled “How state-by-state differences work”Government paperwork differs by state, so almost every service has state-specific variations:
- The care portal’s document-generation system has close to 90 separate per-state form processors for parking-placard-style certifications alone, plus separate sets of per-state processors for tinted-window medical exemption certificates and for prescription paperwork.
- Some states support more than one form variant for the same service (for example, a placard form vs. a license-plate form, or separate forms for permanent vs. temporary disability, or a pregnancy-specific variant). The system supports a doctor choosing between form variants for the same state where more than one applies, and can suggest that an additional form is also needed based on the patient’s answers.
- Pricing, whether an appointment is required, appointment length, and whether file uploads are optional can all be configured per state (or set as a fallback that applies to every state where no state-specific override exists) for each service.
Cross-sell to an outside treatment catalog
Section titled “Cross-sell to an outside treatment catalog”A separate “Treatments” page on the patient dashboard shows the patient additional doctor-guided treatments (offered at member pricing) that are pulled from an outside product catalog, not the platform’s own service list — clicking through sends the patient off-platform to complete that purchase. This is a member-benefit cross-sell, not a service the platform itself fulfills.
How a service is configured (the “behavior engine”)
Section titled “How a service is configured (the “behavior engine”)”Behind each service/state/case-type combination is a configuration record that acts like a settings profile — it decides things like: is this service active in this state right now, what does it cost, does it need an appointment (and how long), and various processing flags used later by the care team. New services or new state coverage are turned on by adding one of these configuration records — not by writing new application code for pricing/availability.
Two services with a materially different funnel shape
Section titled “Two services with a materially different funnel shape”Most services follow the same welcome → choose-state → why → onboarding → register → processing shape described in Onboarding & signup. Two don’t:
- Disability Parking Placard’s alternate funnel — a second placard funnel skips the welcome page entirely (it starts directly at choosing a state) and uses a hand-built, branching qualification quiz instead of the standard question-by-question form. Based on the patient’s answers it can end in three different ways: qualified, veteran-qualified, or not qualified. A “not qualified” outcome doesn’t create a case at all — instead the patient is offered a free downloadable guide as a lead-capture step. Patients who do qualify are always routed to the alternate-design summary and checkout pages described above, not the standard ones.
- Property Tax Exemption’s savings-estimate funnel — after intake, this service inserts a monetization detour not used by any other service: it estimates the patient’s dollar savings, shows that estimate, then asks the patient to choose a plan (with a second plan option that includes filing help, if that’s enabled) before registering. Two additional pages built for this funnel (a value-proposition page and a plan-comparison page) exist in the code but nothing currently links to them — they may be an unfinished or abandoned addition; flagged below rather than assumed.
Open questions
Section titled “Open questions”- The exact criteria used to determine “which form variant applies” for multi-form states (beyond doctor selection) were not fully traced for every state.
- Whether “Utility Discounts” and “Schedule R Tax Credit” are currently live/purchasable in production or still in a limited/beta state was not confirmed from the code alone.
- Property Tax Exemption’s value-proposition and plan-comparison pages exist in the codebase with no live links into them — whether this is an unfinished feature, an intentionally-disabled page, or dead code was not confirmed.
Where this comes from
Section titled “Where this comes from”parkingmd-patient-portal/src/constants/task.ts(the authoritative list of case types and display names)parkingmd-patient-portal/src/app/(services)/(folders confirm which service funnels currently exist)parkingmd-patient-portal/documentation/add-new-service.md(used only to understand the checklist/structure, not as a source of the current service list)parkingmd-patient-portal/documentation/service-flow.mdparkingmd-care-portal/docs/MULTI_FORM_SYSTEM.mdparkingmd-care-portal/docs/care-portal-kt-guide.md(serviceConfiguration/,services/,state-forms/,tinted-state-forms/,prescription-forms/)parkingmd-care-portal/src/lib/state-forms/(folder listing — one folder per state/form)parkingmd-care-portal/src/lib/tinted-state-forms/,parkingmd-care-portal/src/lib/prescription-forms/parkingmd-patient-portal/src/app/(services)/placard-flow/(onboarding/content.ts,qualified/,veteran-qualified/,not-qualified/,ProcessingContent.tsx)parkingmd-patient-portal/src/app/api/placard-flow/free-guide/route.tsparkingmd-patient-portal/src/app/(services)/property-tax-exemption/(loading/,savings/,choose-plan/,why/,comparison/,ProcessingContent.tsx)parkingmd-patient-portal/src/services/propertyTaxSavings.tsparkingmd-patient-portal/src/components/property-tax/PropertyTaxSearchSection.tsx,propertyTaxAddressCookie.tsparkingmd-patient-portal/src/app/(dashboard)/treatments/page.tsx,parkingmd-patient-portal/src/models/app-settings.ts(getTreatmentsContent),config.minimal.catalogApiUrl