Compare grant application success rates
The problem
You apply for dozens of grants each year but don't systematically track which types succeed. You're repeating patterns that don't work (small asks to big funders, wrong themes for specific funders) and missing patterns that do work. Each application takes days of effort - you need to focus that effort where it's most likely to pay off.
The solution
Track all grant applications with key attributes (funder, amount, theme, outcome) and analyse which combinations have higher success rates. Identify patterns: which funders say yes to you, which application sizes work best, which themes resonate. Use this to prioritise future applications and improve your hit rate.
What you get
A grant success analysis dashboard showing: (1) Overall success rate and trends over time, (2) Success rates by funder type, amount band, and theme, (3) Your 'sweet spot' applications (combinations that work), (4) Patterns to avoid (combinations that consistently fail), (5) Recommended focus areas for future applications.
Before you start
- At least 12 months of grant application history (20+ applications for meaningful patterns)
- Basic tracking of: funder name, amount requested, theme/purpose, outcome (funded/rejected)
- Willingness to be honest about failures (don't just track wins)
- Secure storage for your grant tracking spreadsheet - limit access to relevant fundraising staff as this contains sensitive funding information
When to use this
- You submit 20+ grant applications per year (enough for patterns to emerge)
- Success rate feels low but you're not sure why
- Team debates which funders to prioritise - need data to inform the decision
- You've been applying for 12+ months so have a track record
- Want to focus fundraising effort where it's most likely to succeed
When not to use this
- Fewer than 20 applications (sample size too small for patterns)
- Less than 12 months of track record (trends not yet meaningful)
- Each application is completely unique (no patterns to find)
- You already know exactly what works and consistently hit 70%+ success rate
- Reluctance to track and analyse failures (you need honest data)
Steps
- 1
Set up application tracking system
Create a spreadsheet (or upgrade existing tracker) with columns: Date submitted, Funder name, Funder type (trust, lottery, corporate, etc.), Amount requested, Theme/programme funded, Outcome (pending/funded/rejected), Amount awarded (if different from request), Notes. Include ALL applications, not just successes.
- 2
Backfill historical data
Go through records from the last 12-24 months and add past applications. You need both successes and failures for meaningful analysis. If you can't remember rejection reasons, add what you know. Even partial data is better than none.
- 3
Categorise applications consistently
Create consistent categories: Funder types (e.g., local trust, national trust, lottery, corporate, government). Amount bands (e.g., <£5k, £5-25k, £25-100k, >£100k). Themes (e.g., core costs, specific programme, capital, research). Standardise your language so you can compare like with like.
- 4
Calculate overall success rate and trends
Simple first cut: what % of applications succeed? How has this changed over time (is fundraising getting easier or harder)? Group by quarter or year. This gives you the baseline. If you're at 10% success, you need a very different strategy than 60%.
- 5
Analyse success rates by key attributes
Break down success rate by: (1) Funder type - which categories say yes more often? (2) Amount requested - do you win more small or large grants? (3) Theme - which programmes funders prefer to fund? Create pivot tables or charts showing success rate for each category.
- 6
Identify your sweet spot combinations
Look for winning combinations: e.g., 'Local trusts + £10-25k requests + youth programme = 70% success rate' vs 'National trusts + core costs + any amount = 15% success rate'. These combinations tell you where to focus effort. Flag combinations where you've applied fewer than 5 times (not enough data yet).
- 7
Spot patterns to avoid
Identify combinations with consistently poor success: e.g., if you've applied to corporate funders 10 times with zero successes, maybe stop (or radically change approach). If requests over £100k never work, focus on smaller asks. These are hypotheses to discuss with team, not absolute rules.
- 8
Create recommendations for team
Summarise findings: (1) Our current overall success rate is X%, (2) We're strongest at [funder types / amounts / themes], (3) We consistently struggle with [categories], (4) Recommend: focus on [sweet spot], reduce effort on [weak areas], test [hypotheses]. Update quarterly as new data comes in.
Example code
Analyse grant application success patterns
Analyse grant application patterns to identify which funder types, amounts, and themes have highest success rates.
import pandas as pd
import matplotlib.pyplot as plt
# Load application data
df = pd.read_csv('grant_applications.csv')
# Calculate overall success rate
total_apps = len(df[df['outcome'] != 'pending'])
funded = len(df[df['outcome'] == 'funded'])
overall_rate = funded / total_apps * 100
print(f"Overall Success Rate: {overall_rate:.1f}% ({funded}/{total_apps})")
# Success rate by funder type
funder_success = df[df['outcome'] != 'pending'].groupby('funder_type').apply(
lambda x: (x['outcome'] == 'funded').sum() / len(x) * 100
).sort_values(ascending=False)
print("\nSuccess Rate by Funder Type:")
print(funder_success)
# Success rate by amount band
amount_success = df[df['outcome'] != 'pending'].groupby('amount_band').apply(
lambda x: (x['outcome'] == 'funded').sum() / len(x) * 100
).sort_values(ascending=False)
print("\nSuccess Rate by Amount Band:")
print(amount_success)
# Success rate by theme
theme_success = df[df['outcome'] != 'pending'].groupby('theme').apply(
lambda x: (x['outcome'] == 'funded').sum() / len(x) * 100
).sort_values(ascending=False)
print("\nSuccess Rate by Theme:")
print(theme_success)
# Identify sweet spot combinations
combos = df[df['outcome'] != 'pending'].groupby(['funder_type', 'amount_band', 'theme']).agg(
applications=('outcome', 'count'),
funded=('outcome', lambda x: (x == 'funded').sum()),
success_rate=('outcome', lambda x: (x == 'funded').sum() / len(x) * 100)
).reset_index()
# Filter to combinations with at least 5 applications
reliable_combos = combos[combos['applications'] >= 5]
sweet_spots = reliable_combos[reliable_combos['success_rate'] >= 50].sort_values('success_rate', ascending=False)
print("\nSweet Spot Combinations (5+ applications, 50%+ success):")
print(sweet_spots.to_string(index=False))
# Visualise trends over time
df['quarter'] = pd.to_datetime(df['date_submitted']).dt.to_period('Q')
quarterly = df[df['outcome'] != 'pending'].groupby('quarter').apply(
lambda x: (x['outcome'] == 'funded').sum() / len(x) * 100
)
quarterly.plot(kind='line', marker='o', figsize=(10, 6))
plt.title('Grant Application Success Rate Over Time')
plt.ylabel('Success Rate (%)')
plt.xlabel('Quarter')
plt.axhline(y=overall_rate, color='r', linestyle='--', label=f'Overall Average: {overall_rate:.1f}%')
plt.legend()
plt.tight_layout()
plt.savefig('grant_success_trends.png')Tools
Resources
Research funders and understand their preferences before applying.
NCVO grant application tipstutorialBest practice for grant applications and funder relationships.
Understanding funder datadocumentation360Giving data on UK grant-making - understand funder patterns.
At a glance
- Time to implement
- days
- Setup cost
- free
- Ongoing cost
- free
- Cost trend
- stable
- Organisation size
- small, medium, large
- Target audience
- fundraising, ceo-trustees, operations-manager
Free tools are sufficient. Time cost: 1-2 days initial setup and historical data entry, 1 hour monthly to update with new applications.