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
📊 Track Giving Trends
- 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:
| Table | What It Contains | Key Use Cases |
|---|---|---|
giving_donations | Individual donation transactions | Transaction history, payment methods, amounts |
giving_people | Donor information | Donor profiles, giving units, donor numbers |
giving_funds | Fund definitions | Fund names, descriptions, default settings |
giving_designations | How donations are allocated | Fund allocation within donations |
giving_batches | Donation batches | Batch processing, deposit tracking |
giving_pledges | Pledge commitments | Capital campaigns, pledge tracking |
giving_recurring_donations | Recurring giving setups | Subscription 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, campusesgiving_designations_relationships- Links designations to donationsgiving_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_idGetting 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.
Planning Center Check-ins Report Examples
Production-ready Check-ins reports for church leadership: weekly attendance trends, guest follow-up, and volunteer management, ready to schedule.
Planning Center Giving Data Model
Complete reference for Planning Center Giving tables in Parable: donations, designations, funds, batches, pledges, and the relationships between them.