Business Glossary
This glossary defines every key term used across the SeedTrust platform — in the application, the codebase, and day-to-day operations. Terms are grouped by topic. If you encounter a word in the UI or code that isn’t here, it should be added.
People & Roles
Admin A SeedTrust employee with access to the internal operations platform. Admins have granular permissions and can be assigned one of four operational roles: Escrow Specialist, Payment Manager, Service Manager, or Sales Manager. Not to be confused with Agency Admin.
Code:
UserTypes.ADMIN,AdminTypes
Escrow Specialist An Admin role focused on managing the financial side of cases — funding, disbursements, ACH processing, and ledger accuracy.
Payment Manager An Admin role focused on processing and approving payment batches.
Service Manager An Admin role focused on case operations and client service.
Sales Manager An Admin role focused on agency relationships and new business.
Agency A surrogacy or egg donation agency that manages the relationship between Intended Parents and Surrogates/Donors. Agencies bring cases to SeedTrust and may have their own approval authority over disbursements.
Code:
Agency
Agency Owner (Agency Administrator)
Called Agency Administrator in the UI. A user who works at an agency and has access to all cases associated with that agency. They can view case status, payment history, and in some configurations approve disbursement requests. The code and database use the term agency_owner; the UI displays “Agency Administrator.”
Code:
UserTypes.AGENCY_OWNER,AgencyOwner
Agency Admin
A SeedTrust employee (Admin) assigned to an agency in a specific operational role — Escrow Specialist, Payment Manager, or Sales Manager. Not a person who works at the agency. Completely distinct from Agency Owner.
Code:
AgencyAdmin
Case Manager (CM) A user assigned to specific cases who oversees the surrogacy journey. Case Managers review disbursement requests before they go for final approval, particularly in the pre-GSA phase.
Code:
UserTypes.CASE_MANAGER
Intended Parent (IP) The individual or couple funding the escrow account. They are paying for the surrogacy or egg donation arrangement and are the source of escrow funds. IPs can view their case status and transaction history.
Code:
UserTypes.INTENDED_PARENT,IntendedParent
IP Representative (IP Rep)
An attorney or authorized representative who acts on behalf of Intended Parents. They can perform actions that IPs can perform, including signing escrow agreements and approving disbursements. Referred to as ip_rep throughout the platform. The FastAPI enum value ip_company is a legacy compatibility alias — use IP Rep as the standard term.
Code:
UserTypes.IP_COMPANY(FastAPI, legacy alias),ip_rep(Flask, preferred term)
Surrogate / Gestational Carrier The individual carrying the pregnancy for the Intended Parents. Surrogates receive payments from the escrow account and can submit disbursement requests depending on their access level.
Code:
UserTypes.SURROGATE,Surrogate
Egg Donor
The individual providing eggs for donation. Represented by the same Surrogate model in code; the distinction is the case type (EGG vs SURROGACY).
SPC Admin (Scheduled Payment Calendar Admin) An Admin user optionally assigned to a case to manage its payment calendar. Rarely used in practice.
Code:
Case.spc_admin_id
DR Approval Authority Configured in case settings, these three fields define who is required to approve disbursement requests at different stages:
approve_case_dr— default DR approver for the caseapprove_pre_gsa— who approves DRs while the case is pre-GSAapprove_post_gsa— who approves DRs after GSA is signed
Each field can be set to one of:
LEGAL— a SeedTrust legal/escrow adminAGENCY— the Agency Owner or Case ManagerIP— the Intended Parent themselvesIP_REP— the IP’s representativeCM— the Case ManagerIPCM— either the IP or the CM; whichever acts first satisfies the requirement
Code:
Case.approve_case_dr,Case.approve_pre_gsa,Case.approve_post_gsa
Cases
Case The central unit of the SeedTrust platform. A case represents a single surrogacy or egg donation arrangement and links together an Intended Parent, a Surrogate or Donor, and an Agency. All financial activity — escrow funds, disbursements, payment schedules — belongs to a case.
Code:
Case, database table:ip_case
Case Type Whether the case is a surrogacy arrangement or an egg donation arrangement. Affects which stages are available, what pregnancy tracking fields apply, and what compensation types are relevant.
Code:
CaseTypes.SURROGACY="SURROGACY",CaseTypes.EGG="EGG"
Case File Name The user-facing display name for a case. May be redacted for privacy depending on case settings.
Code:
case_file_name,is_redacted
Pre-GSA The period before the Gestational Surrogacy Agreement has been signed and executed. During this phase, stricter payment rules apply and the Case Manager must review disbursement requests before they can be approved.
Code:
Case.pre_gsa(boolean)
Post-GSA The period after the Gestational Surrogacy Agreement has been signed. Full payment capabilities are unlocked, compensation plans can be activated, and the standard approval workflow applies.
GSA (Gestational Surrogacy Agreement) The legal contract between the Intended Parents and the Surrogate. Signing this document is the critical legal threshold in a surrogacy case. In the platform, “Awaiting Executed GSA” is a case stage that precedes most payment activity.
Escrow Agreement The financial contract between the Intended Parents and SeedTrust that governs how escrow funds are held and disbursed. Both the IP and the Surrogate must sign this document. Stored as a PDF in S3.
Code:
CaseSurrogate.escrow_signed,CaseIP.escrow_signed,AdminContract
Surrogate Access Level Controls how much financial visibility a surrogate has into their case. Four levels:
NONE— No access to financial detailsPARTIAL— Limited financial visibilityPART_BAL— Can see partial balance informationFULL— Full financial visibility
Code:
SurrogateAccess
Ledger Status A summary indicator of the health of a case’s escrow account balance:
GOOD— Balance is above minimum thresholdsLOW— Balance is below the preferred minimum but above zeroINSUFFICIENT— Balance cannot cover pending or approved disbursements
Code:
LedgerStatus,Case.ledger_status
Minimum Account Balance The minimum escrow balance required on a case before disbursements can be processed. Configured per case and per agency.
Code:
Case.min_acct_balance
Pregnancy Funding Requirement An optional minimum balance that must be maintained once the surrogate is confirmed pregnant. Configured per case.
Code:
Case.pregnancy_funding_requirement,Case.include_pregnancy_requirements
Payment Halted A flag on a case that stops all outgoing payments. When set, no disbursements can be processed regardless of approval status.
Code:
Case.payment_halted
Auto-Approval A per-case setting that allows disbursement requests to bypass human review and be approved automatically after a configured number of days. Used for routine, low-risk payments.
Code:
Case.dr_auto_approve,DisbursementRequest.auto_authorize,DisbursementRequest.auto_authorize_date
Case Stages
Every case moves through a defined sequence of stages. The stages differ between surrogacy and egg donation cases.
Surrogacy Case Stages (in order)
| Stage | What It Means |
|---|---|
| Awaiting Escrow Agreement Execution | Case created; waiting for IP and Surrogate to sign the escrow agreement |
| Pending Funding | Escrow agreement signed; waiting for IP to wire initial funds |
| Awaiting Executed GSA | Funded; waiting for Gestational Surrogacy Agreement to be signed |
| Awaiting Heart Beat Confirmation | GSA signed; waiting for pregnancy confirmation (heartbeat ultrasound) |
| Pregnant | Pregnancy confirmed; full compensation plan is active |
| Post-Delivery Monitoring | Baby delivered; monitoring period before case closure |
| Awaiting Approval to Close | All parties have confirmed readiness to close |
| Final Accounting | Performing final financial reconciliation |
| Final Disbursement | Last payments being processed |
| Closed and Archived | Case fully closed |
Egg Donation Case Stages (in order)
| Stage | What It Means |
|---|---|
| Awaiting Escrow Agreement Execution | Waiting for escrow agreement signatures |
| Pending Funding | Waiting for initial funding |
| Egg Retrieval | Egg retrieval procedure scheduled or completed |
| Compensation Payment | Compensation being disbursed to donor |
| Awaiting Approval to Close | Parties ready to close |
| Final Accounting | Final financial reconciliation |
| Final Disbursement | Last payments processing |
| Closed and Archived | Case fully closed |
Disbursement Requests (DRs)
Disbursement Request (DR) A formal request to release money from the escrow account. Submitted by a surrogate, case manager, or IP, a DR must be reviewed and approved before any funds move. The DR is the primary payment mechanism in the platform.
Code:
DisbursementRequest,disbursement_requesttable
DR Status The current state of a disbursement request in the approval workflow:
| Status | Meaning |
|---|---|
Created | DR has been created but not yet submitted |
Submitted | Submitted by the requestor; awaiting initial review |
Pending | Under review by Case Manager or Admin |
Send for Approval / Sent for Approval | Routed to the designated approver |
Approved | Approved; ready for payment processing |
Awaiting ACH | Approved; waiting to be included in an ACH batch |
Send for Auto Authorization / Sent for Auto Authorization | Queued for auto-approval after the configured wait period |
Paid | Payment has been processed and sent |
Denied | Rejected by an approver |
Send Back | Returned to the submitter for corrections |
Deleted | Removed from the system |
Insufficient | Account balance is too low to process |
Code:
ApprovalAction
DR Type The category of expense being requested (e.g., medical escrow, surrogate base compensation, lost wages, legal fees). The type determines which approval rules apply and what documentation is required.
Code:
DisbursementRequest.type
DR Batch A group identifier linking related disbursement requests. Used to track sets of DRs that were created or processed together.
Code:
DisbursementRequest.dr_batch_id
Approval Users
The list of users who must approve a disbursement request before it proceeds. Stored as a comma-separated list of user_id:user_type pairs.
Code:
DisbursementRequest.approval_users
Invoice Number A reference number on a disbursement request linking it to an external invoice or bill. Used to prevent duplicate payments.
Code:
DisbursementRequest.invoice_num
Date of Occurrence The date the expense actually occurred, which may differ from the date the DR was submitted.
Code:
DisbursementRequest.date_of_occurrence
Scheduled Payments (SPC / Compensation)
Compensation Plan The structured schedule of payments a surrogate or donor is entitled to under their contract. Created when a case enters post-GSA. Includes one-time payments (embryo transfer bonus, delivery bonus) and recurring payments (monthly base compensation).
Code:
Compensation,CompensationGrouping
SPC (Scheduled Payment Calendar) The calendar-based payment schedule derived from the surrogacy contract. SPC items represent scheduled payments with defined due dates and amounts. They can automatically generate disbursement requests when they come due.
Important: The
Compensationmodel in code is overloaded — a singleCompensationrecord can represent either an SPC calendar entry or a DR type (a category of disbursement request that appears on a case). These are conceptually different things sharing the same table. This is a known design problem in the codebase. Code:Compensation,Case.spc_admin_id
Compensation Template A reusable template that pre-populates a compensation plan for a new case. Agencies often have standard templates that define their typical payment structure.
Code:
CompensationTemplate
SPC Change An audit record created whenever the SPC Admin (the Admin managing the payment schedule) changes. Maintains a history of who was responsible for the schedule at each point in time.
Code:
SPCChange
Lost Wages Compensation for income a surrogate loses due to pregnancy-related inability to work. A separate tracked category within the compensation plan.
Code:
Case.lost_wages_active
1099 US tax form for reporting non-employee compensation over $600 in a calendar year. The platform tracks which transactions are 1099-eligible and can generate 1099 reports.
Code:
Case.active_1099,DisbursementRequest.eligible_1099,LedgerTransaction.amount_1099
Banking & Payments
ACH (Automated Clearing House) The US electronic bank transfer network used to move money between bank accounts. SeedTrust uses ACH to send disbursements directly to surrogates’ bank accounts. Takes 1–3 business days to settle.
ACH Form (Master ACH Form) The banking details form that a party (surrogate, vendor, agency) submits so they can receive ACH payments. Contains account number, routing number, account type, and identity information. Sensitive fields are encrypted in the database.
Code:
MasterACHForm
Account Type
Whether an ACH bank account is CHECKING or SAVINGS.
Code:
MasterACHForm.account_type
Transaction Type (ACH) Classifies the ACH transfer:
PPD— Prearranged Payment and Deposit (person-to-person)CCD— Corporate Credit or Debit (business-to-business)
Code:
MasterACHForm.transaction_type
NACHA / M&T Bank NACHA is the organization that governs the ACH network and defines the file format used to submit ACH batches to banks. SeedTrust’s non-California cases use M&T Bank as the banking partner, and payments are processed by generating a NACHA-format file and uploading it via SFTP. “NACHA” and “M&T” are often used interchangeably in this context — both refer to the same ACH payment path for these cases. The file format is extremely strict — a single formatting error rejects the entire batch.
NACHA Batch A collection of ACH transactions grouped together and submitted to the bank in a single NACHA file. Processed at scheduled intervals (typically end of business day).
Code:
NachaBatch
Huntington Bank The banking partner used for escrow accounts belonging to California-based Intended Parents. Routing is determined by the IP’s state at ACH form submission time and stored on the case. Huntington holds the actual escrow funds and provides APIs for account creation, wire funding, and disbursement.
Code:
BankAccountEnum.HUNTINGTON,HuntingtonAccount
Huntington Managed Account A bank account held at Huntington on behalf of SeedTrust. Escrow funds flow through these accounts. Each case is associated with a specific managed account.
Code:
HuntingtonManagedAccount,HuntingtonAccount
Huntington Batch A collection of transactions sent to Huntington for processing. Similar in concept to a NACHA Batch but uses the Huntington API instead of a NACHA file.
Code:
HuntingtonBatch
CIP (Customer Identification Program) A regulatory compliance requirement that Huntington enforces before activating accounts. Intended Parents must pass CIP verification before their Huntington account is fully active.
Code:
IntendedParent.person_status— values:PENDING,CLEARED,ERROR
Wire Transfer (WT) A same-day bank-to-bank transfer. Used primarily for incoming escrow funding from Intended Parents. Faster than ACH but not used for outgoing disbursements.
Code:
payment_method = "WT"onMasterACHForm
E-Check An electronic check — an ACH debit that pulls funds from a bank account. Used as an alternative to wire transfers for Intended Parents to fund their escrow account.
Code:
Case.e_check_enabled,ECheckAuthorization
Alacriti A third-party payment processor used for credit card funding of escrow accounts. Intended Parents can use a credit card to add funds via Alacriti.
Code:
AlacritiPayment
Payment Method How a disbursement or deposit is being processed. Values include:
ACH— Direct deposit via ACH networkCHK— Paper checkWT— Wire transferAT— Account transfer (internal between SeedTrust accounts)- Credit card (via Alacriti)
Code:
LedgerTransaction.payment_method,MasterACHForm.payment_method
Financial Ledger
Ledger The complete financial history of a case. Every dollar that enters or leaves the escrow account is recorded as a ledger entry. The ledger is append-only — entries are never deleted or modified, only new entries are added to correct mistakes.
Code:
LedgerTransaction
Ledger Transaction A single financial event on a case. Can be a deposit (money in), a disbursement (money out), a refund, or a scheduled payment.
Transaction Status
| Status | Meaning |
|---|---|
CREATED | Transaction record created but not yet active |
PENDING | In progress |
PROCESSING | Being processed by payment provider |
WAITING-ON-ACH | Queued for inclusion in next ACH batch |
CC PROCESSING | Credit card payment being processed |
PAID | Successfully completed |
PAID|CREDIT | Paid and credited back to escrow |
RETURN | Payment returned by receiving bank |
DELETED | Voided/cancelled |
Code:
LedgerTransaction.status
Deposit Notification A record created when an incoming wire transfer or deposit is received. Allows Admins to track expected vs. received funding and notify relevant parties.
Code:
DepositNotification
Ledger Transfer A movement of funds between two cases within SeedTrust. Creates two linked ledger transactions — one debit and one credit.
Code:
LedgerTransfer
Post-Transaction Balance The escrow account balance recorded immediately after a transaction completes. Stored on the transaction for audit purposes.
Code:
LedgerTransaction.post_transaction_balance
Remittance Data Additional payment reference information sent alongside an ACH transfer to identify the payment purpose. Required by some recipients.
Code:
LedgerTransaction.remittance_data
Documents
Escrow Agreement The legally binding financial contract between SeedTrust and the parties in a case. Must be signed by both the Intended Parent and the Surrogate before the case can proceed. Stored as a PDF in AWS S3.
Case Card A physical or virtual payment card associated with a case, used for specific expense types (e.g., insurance card, credit card for medical expenses). Each card is encrypted in the database.
Code:
CaseCard, card types:INSURANCE,CREDIT,DEBIT
Transaction File A document uploaded and attached to a disbursement request or transaction — receipts, invoices, medical bills, etc. Files are stored in AWS S3 and served via CloudFront signed URLs that expire.
Code:
TransactionFiles
Two-Factor Authentication (2FA / TFA)
TFA Type The method used for two-factor authentication at login:
email— Code sent to emailsms— Code sent via SMS (Twilio)app— TOTP authenticator app (e.g., Google Authenticator)
Code:
TFATypes
Integrations & External Systems
JMS
An external case management system used by some agencies. Cases can have a jms_ip_case_id and jms_gc_case_id linking them to the corresponding JMS records.
Code:
Case.jms_ip_case_id,Case.jms_gc_case_id
SendGrid The email delivery service used for all outgoing emails — notifications, approval requests, deposit confirmations, etc.
Twilio The SMS delivery service used for text message notifications and 2FA codes.
PostHog The analytics and session recording platform. Used for user behavior analytics and error tracking across all three services.
AWS S3 / CloudFront Amazon’s cloud storage (S3) and content delivery (CloudFront) services. All uploaded documents are stored in S3 and served through CloudFront. Document URLs are signed and expire after a set period.
SFTP The secure file transfer protocol used to deliver NACHA files to the bank for ACH processing.
Webhooks
Webhook An automated HTTP callback sent to an agency’s system when specific events occur in SeedTrust (e.g., a disbursement is approved, a case stage changes). Allows agencies to integrate their own systems with SeedTrust.
Code:
Webhook,WebhookEvent,WebhookDelivery
Audit & Compliance
Action Log A record of every significant action taken on an entity (case, disbursement request, transaction). Captures who did what, when, what the data looked like before, and what it looked like after. Critical for financial audits and dispute resolution.
Code:
CaseAction,DisbursementActionLog,LedgerTransactionActionLog,BankingActionLog
Redaction A privacy setting that hides the names of parties in a case from certain views. Agencies and cases can have redaction enabled to protect surrogate and IP identities.
Code:
Case.is_redacted,Agency.is_redacted
Out of Scope (OOS) Items or requests that fall outside the defined scope of the escrow agreement. The platform tracks which contact (Agency, CM, or IP) should handle OOS items per case.
Code:
Case.contact_out_of_scope