Glossary
This glossary is for everyone — developers, product managers, and agency staff. If a term is used in the codebase or in a meeting and you are not sure what it means, start here.
People
Intended Parent (IP)
A person or couple who wants to have a child using a third party (an egg donor, sperm donor, or gestational carrier). Also called the “recipient” in some medical contexts. In the code, the user type is 'IP'. “IP rep” refers to a representative acting on behalf of an intended parent.
Egg Donor (ED)
A woman who donates her eggs to be fertilized and used by an intended parent. In the code: user type 'donor', profile model EDProfile.
Gestational Carrier (GC)
A woman who carries a pregnancy for an intended parent. The embryo is not genetically related to her. Sometimes called a “surrogate” in everyday language, though “gestational carrier” is the clinically precise term. In the code: user type 'surrogate'.
Sperm Donor (SD)
A man who donates sperm for use by an intended parent. In the code: user type 'sperm_donor'.
Admin
An agency staff member — a coordinator, case manager, or manager who uses the admin portal at /admin. Admins manage cases, review applications, and communicate with clients.
Provider
An external medical or legal professional who works on cases — typically an IVF clinic, reproductive attorney, genetic counselor, or escrow agency. Providers access the system through the /provider portal and can only see the cases assigned to them.
Non-Participating User (NP User) A user who is connected to a case but has no active role in it — for example, a former spouse or a past egg donor whose embryos are being used. They have read-only access.
Third-Party User A user external to the agency who has been granted limited access to specific case information.
Matching concepts
Match / Matching The process of finding and pairing an intended parent with an egg donor, gestational carrier, or sperm donor. Matching is one of the core services an agency provides.
Match Break
When a match that was initially agreed upon falls apart before or during treatment. The system records why (MatchBreakDetails).
Match Sheet A structured document that summarizes both parties in a potential match — their key characteristics, test results, and preferences — presented to the IP for review.
Matching Queue The ordered list of donor/carrier candidates that an agency presents to a specific IP. The IP works through the queue one candidate at a time.
Favorite A candidate that an IP has marked as a preferred option, saving them for later consideration.
DQ / Disqualification (DQ Settings) Automatic rules that screen out applicants who do not meet an agency’s minimum requirements (e.g., age, BMI, medical history). Agencies configure their own DQ thresholds.
Case concepts
Case The central record in Orchid. A case represents one complete fertility journey — from matching through delivery. Everything (documents, notes, tasks, contracts, medical cycles) belongs to a case.
Case Type What kind of case it is:
surrogate→ GC case (gestational carrier)donor→ ED case (egg donation)sperm_donor→ SD case (sperm donation)IP→ IP case (intended parent receiving services)
Case Party / CaseParty A record linking a User to a Case with a specific role. An IP and their GC are both CaseParty records on the same Case.
Case Stage / Status
Where in the lifecycle a case currently is. Stages progress from intake through screening, matching, legal, medical, and delivery. Each stage is a string key defined in large_dicts.py.
GC Case (GCCase) A supplemental record attached to gestational carrier cases, storing GC-specific data.
Medical concepts
Transfer
The medical procedure where an embryo is placed into the gestational carrier’s uterus. One of the key events tracked in the cycle module.
Retrieval
The procedure to collect eggs from an egg donor. Also tracked in the cycle module.
Cycle A single round of fertility treatment — from stimulation through retrieval or transfer. Multiple cycles may occur in one case.
SD Retrieval
Sperm retrieval — tracked separately from egg retrieval with its own model (SDRetrieval).
Pregnancy / Delivery Model records that track a confirmed pregnancy and the eventual delivery outcome.
Lab A medical lab test result attached to a cycle.
Legal and financial concepts
Contract A legal agreement between parties (e.g., a surrogacy agreement between IP and GC). Contracts are created and signed electronically through HelloSign (now called Dropbox Sign).
HelloSign / Dropbox Sign The e-signature service Orchid uses for contracts. Templates are set up in HelloSign’s dashboard and linked to Orchid by template ID.
Escrow A financial arrangement where the agency or a third party holds funds on behalf of the IP and disburses them at defined milestones. Some providers in the provider network are escrow agencies.
Technical abbreviations
EB AWS Elastic Beanstalk — the hosting platform. Each agency runs on its own EB instance.
S3 Amazon S3 — cloud file storage. All documents, profile photos, videos, and match sheets are stored in S3.
CloudFront Amazon CloudFront — CDN (content delivery network) that serves S3 files faster by caching them at edge locations.
g object
Flask’s per-request context object. Populated by before_request, it carries the current agency, admin, user, and other request-scoped state. See Key Concepts.
Blueprint Flask’s way of organizing routes into modules. Orchid has 50+ blueprints. See Architecture.
Crudler
A utility class in orchid/utils/flaskutils.py that wraps database create/read/update/delete operations with automatic change tracking.
large_dicts
orchid/large_dicts.py — a 653 KB Python file containing lookup tables, status labels, and config data used across the entire app.
Tood / Tood
The spelling used in the codebase for “To-Do” — the model file is tood.py and the concept is referenced as “tood” throughout. This is a legacy typo that became permanent.
Gurgle
The in-app messaging system. It is a separate service with its own client library (gurgleclient/). Orchid integrates with it for in-app chat between agency staff and clients.