Skip to main content
Grain: GIFTS — one row per posted gift transaction. GIFT_DESIGNATIONS — one row per project split within a gift (a gift can have multiple rows).
GIFTS is the central financial fact table. This page maps every table that connects to it — how money arrives (recurring commitments, pledges), where it goes (designations to projects), and what is attached to it (grant records, tributes, premium fulfillments, entry batches).
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).

Table columns

Tables on this page: GIFTS · GIFT_DESIGNATIONS · PROJECTS · GIFT_BATCHES · GIFT_ASKS · PLEDGES · PLEDGE_PAYMENTS · RECURRING_GIFTS · RECURRING_GIFT_PAYMENTS · RECURRING_GIFT_DESIGNATIONS · GRANTS · TRIBUTES · GIFT_PREMIUMS

GIFTS

One row per posted gift transaction. The amount on GIFTS is the total; split across projects via GIFT_DESIGNATIONS.

GIFT_DESIGNATIONS

One row per project split within a gift. A single gift can have multiple designation rows. AMOUNT_DESIGNATED across all rows for a gift sums to GIFTS.AMOUNT.

PROJECTS

One row per fund or program. The destination for gift designations and recurring gift designations.

GIFT_BATCHES

One row per entry batch — a named group of gifts entered together. Useful for reconciliation and audit workflows.

GIFT_ASKS

One row per formal solicitation made to a contact. Linked optionally to GIFTS (when the ask is fulfilled) and PLEDGES (when the ask results in a pledge).

PLEDGES

One row per pledge commitment. A pledge can exist without a gift ask — always use LEFT JOIN when connecting to GIFT_ASKS. Track fulfillment via PLEDGE_PAYMENTS.

PLEDGE_PAYMENTS

One row per scheduled installment against a pledge. A null GIFT_KEY means the installment was expected but not yet received.

RECURRING_GIFTS

One row per standing recurring commitment — the amount, frequency, and current status. Individual payment instances are tracked in RECURRING_GIFT_PAYMENTS.

RECURRING_GIFT_PAYMENTS

One row per scheduled payment instance against a recurring gift. A null GIFT_KEY means a payment was expected but not received — the primary signal for lapsed giving.

RECURRING_GIFT_DESIGNATIONS

One row per project split on a recurring gift commitment. Mirrors GIFT_DESIGNATIONS but lives on the commitment, not individual transactions.

GRANTS

One row per grant record. Grants are linked to a gift (GIFT_KEY) when funds are received, and to a project (PROJECT_KEY) for the purpose.

TRIBUTES

One row per tribute record — gifts made in honor of or in memory of an individual. Linked to the honoree via CONTACT_INDIVIDUAL_KEY.

GIFT_PREMIUMS

One row per premium item fulfilled as part of a gift (e.g. a thank-you gift sent to the donor). Links the gift to the premium catalog item.
Data freshness: These tables sync continuously from Virtuous CRM. Typical lag is under 4 hours. To check when a record was last updated, inspect the SF__ROW_SYNCED_DATE_TIME_UTC column on any table.
Last modified on May 22, 2026