Skip to main content

Planning Center Giving SQL Queries

Query Planning Center Giving data with SQL to track donation trends, analyze fund performance, and understand your congregation's generosity.

Transform Your Giving Data Into Ministry Impact

Your church's generosity tells a powerful story. With Parable's SQL access to Planning Center Giving data, you can uncover insights that help you understand your congregation's generosity and make data-driven ministry decisions.

Quick Start

Ready to start querying your giving data? Here's your first query to see recent donations:

-- See your most recent 10 donations
SELECT
    d.donation_id,
    d.amount_cents / 100.0 as amount,  -- Convert cents to dollars
    d.amount_currency,
    d.payment_method,
    d.received_at,
    d.created_at
FROM planning_center.giving_donations d
WHERE d.received_at IS NOT NULL
ORDER BY d.received_at DESC
LIMIT 10;

What You Can Do With Giving Queries

  • Monitor weekly, monthly, and annual giving patterns
  • Identify seasonal trends in your congregation's generosity
  • Compare year-over-year growth

👥 Understand Your Donors

  • Segment donors by giving frequency and amount
  • Identify first-time givers for follow-up
  • Track donor retention and engagement

💰 Analyze Fund Performance

  • See which funds are meeting their goals
  • Track designated giving vs general fund
  • Monitor campaign progress with nightly updates

📈 Generate Ministry Reports

  • Create custom giving statements
  • Build dashboard metrics for leadership
  • Export data for board meetings and annual reports

Available Tables

Your Planning Center Giving data is organized into these main tables:

TableWhat It ContainsKey Use Cases
giving_donationsIndividual donation transactionsTransaction history, payment methods, amounts
giving_peopleDonor informationDonor profiles, giving units, donor numbers
giving_fundsFund definitionsFund names, descriptions, default settings
giving_designationsHow donations are allocatedFund allocation within donations
giving_batchesDonation batchesBatch processing, deposit tracking
giving_pledgesPledge commitmentsCapital campaigns, pledge tracking
giving_recurring_donationsRecurring giving setupsSubscription giving analysis

Understanding Relationships

Parable stores Planning Center relationships in a special way to maintain data integrity. Instead of foreign keys directly in tables, relationships are stored in separate relationship tables:

  • giving_donations_relationships - Links donations to people, batches, campuses
  • giving_designations_relationships - Links designations to donations
  • giving_people_relationships - Links people to campuses and other entities

Don't worry - we'll show you exactly how to join these tables in our examples!

Next Steps

📚 New to SQL? Start with Basic Queries for simple, powerful queries you can use today.

🚀 Ready for More? Check out Advanced Queries for complex analysis and reporting.

📊 Need Reports? See Reporting Examples for complete, production-ready reports.

🔍 Want Details? Review the Data Model for complete table documentation.

Common Questions

Why are amounts stored in cents?

Planning Center stores all monetary values in cents to avoid floating-point precision issues. Simply divide by 100 to get dollar amounts:

SELECT donation_id, amount_cents / 100.0 as amount_dollars
FROM planning_center.giving_donations;

How do I filter by date?

Use the received_at field for when donations were received, or created_at for when they were entered:

SELECT donation_id, received_at, amount_cents / 100.0 as amount_dollars
FROM planning_center.giving_donations
WHERE received_at >= DATE_TRUNC('year', CURRENT_DATE)
  AND received_at < DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '1 year';

What's the difference between a donation and a designation?

  • A donation is the complete transaction from a donor
  • A designation shows how that donation is split between funds
  • One donation can have multiple designations

How do I join to get donor names?

Join through the relationship table:

SELECT
    d.amount_cents / 100.0 as amount,
    p.first_name,
    p.last_name
FROM planning_center.giving_donations d
JOIN planning_center.giving_donations_relationships dr
    ON d.donation_id = dr.donation_id
    AND dr.relationship_type = 'Person'
JOIN planning_center.giving_people p
    ON dr.relationship_id = p.person_id

Getting Help

  • 🐛 Found an issue? Report it at github.com/getparable/parable-api/issues
  • 📖 Need more examples? Check our other query guides in this folder
  • 💬 Have questions? Reach out to your Parable support team

Remember: Your data tells a story. Let us help you discover it.

On this page