Evaluating Crowdfunding Campaigns
Given a campaign listing like:
Title: Ode to Wildflowers Investment
Description: A wildflower...
Raised: $257,256
Goal: $150,000
Category: Climate Change, Other
Investors: +117
Produce a summary using the standard report template:
CAMPAIGN: Ode to Wildflowers Investment
Categories: Climate Change, Other
Funding ratio: 171.5%
Raised / Goal: $257,256 / $150,000
Surplus/Shortfall: +$107,256
Investors: 117
Avg investment: ~$2,199/investor
Status: Overfunded
Risk flags: None
Progress:
- Step 1: Parse input format (HTML/CSV/JSON) and extract fields: title, description, raised, goal, categories, investor count, dates if present
- Step 2: Normalize numbers — strip currency symbols, commas, "+" prefixes, convert K/M suffixes (e.g., "1.2M" → 1,200,000)
- Step 3: Calculate funding ratio = raised / goal × 100%
- Step 4: Calculate surplus/shortfall = raised − goal
- Step 5: Calculate avg investment = raised / investor count (handle investor count = 0 as undefined, not divide-by-zero error)
- Step 6: Classify status:
- Underfunded: <100%
- Fully Funded: 100–119%
- Overfunded: ≥120%
- Failed: campaign closed with <100% (requires end-date/status field)
- Step 7: Flag risk indicators (see Best Practices)
- Step 8: If multiple campaigns given, build comparison table sorted by funding ratio or avg investment
- Step 9: If timestamped snapshots given, compute trend (raised delta / time delta) to estimate velocity and days-to-goal
- Step 10: Output using standard report template
Single campaign:
CAMPAIGN: <title>
Categories: <tag1, tag2, ...>
Funding ratio: <pct>%
Raised / Goal: $<raised> / $<goal>
Surplus/Shortfall: <+/-$amount>
Investors: <count>
Avg investment: ~$<amount>/investor
Status: <Underfunded|Fully Funded|Overfunded|Failed>
Risk flags: <list or "None">
Multi-campaign comparison:
| Campaign | Category | Raised | Goal | % Funded | Investors | Avg Inv. | Status |
|----------|----------|--------|------|----------|-----------|----------|--------|
| ... | ... | ... | ... | ... | ... | ... | ... |
Trend analysis (when multiple time-stamped snapshots exist):
CAMPAIGN: <title>
Velocity: $<amount>/day over last <N> days
Projected days to reach goal: <N> (or "Goal already met")
Momentum: Accelerating | Steady | Decelerating
Example 1: Overfunded, single category Input: Raised $257,256, Goal $150,000, 117 investors, Categories: Climate Change, Other Output:
Funding ratio: 171.5%
Surplus: $107,256
Avg investment: ~$2,199
Status: Overfunded
Risk flags: None
Example 2: Underfunded Input: Raised $42,000, Goal $100,000, 30 investors Output:
Funding ratio: 42%
Shortfall: $58,000
Avg investment: ~$1,400
Status: Underfunded
Risk flags: None
Example 3: Zero investors edge case Input: Raised $0, Goal $50,000, 0 investors Output:
Funding ratio: 0%
Shortfall: $50,000
Avg investment: N/A (no investors)
Status: Underfunded
Risk flags: No investor activity — check if campaign is newly launched or stalled
Example 4: Failed campaign (closed, below goal) Input: Raised $88,000, Goal $200,000, 45 investors, Status: Closed, End date: past Output:
Funding ratio: 44%
Shortfall: $112,000
Avg investment: ~$1,956
Status: Failed
Risk flags: Campaign closed below goal — funds may be returned per platform policy (verify all-or-nothing vs. keep-what-you-raise model)
Example 5: Multi-category, large single investor (institutional signal) Input: Raised $1,200,000, Goal $500,000, 3 investors, Categories: Real Estate, Climate Change Output:
Funding ratio: 240%
Surplus: $700,000
Avg investment: ~$400,000
Status: Overfunded
Risk flags: Extremely low investor count relative to raised amount — likely institutional/whale investment, not representative of broad retail interest
Example 6: Unusual currency formatting Input: Raised "€1.2M", Goal "€900K", 340 investors Output:
Normalized: Raised €1,200,000 / Goal €900,000
Funding ratio: 133.3%
Surplus: €300,000
Avg investment: ~€3,529
Status: Overfunded
Risk flags: Currency is EUR, not USD — do not compare directly to USD campaigns without conversion
Example 7: Side-by-side comparison Input: Three campaigns — A ($257K/$150K, 117 inv.), B ($42K/$100K, 30 inv.), C ($1.2M/$500K, 3 inv.) Output:
| Campaign | Raised | Goal | % Funded | Investors | Avg Inv. | Status |
|----------|--------|------|----------|-----------|-----------|-------------|
| A | $257K | $150K| 171% | 117 | $2,199 | Overfunded |
| C | $1.2M | $500K| 240% | 3 | $400,000 | Overfunded* |
| B | $42K | $100K| 42% | 30 | $1,400 | Underfunded |
*C flagged: low investor count, likely institutional
- Always normalize currency strings before math: strip
$,€,£, commas,+; expandK/M/Bsuffixes - Report both absolute (surplus/shortfall) and relative (%) differences — never one without the other
- Compute avg investment to gauge depth of individual commitment; treat investor count = 0 as "N/A", not an error
- Flag low investor-count + high raised amount as a possible institutional/whale signal, not organic retail traction
- When comparing campaigns across currencies, state the currency explicitly and do not blend totals without conversion
- For trend analysis, require at least two timestamped snapshots; state assumptions if data points are sparse or irregular
- Preserve original category tags verbatim for thematic grouping/comparison
- Distinguish platform models (all-or-nothing vs. keep-what-you-raise) when assessing "Failed" status, since consequences differ
- Don't assume "Overfunded" means the campaign is closed — check for an explicit end date or status field
- Don't divide raised/investors when investor count is 0 — report "N/A" instead of throwing/propagating an error
- Don't ignore currency symbols/suffixes (K/M/B) when parsing — silently misparsing "1.2M" as "1.2" produces wildly wrong ratios
- Don't conflate "investors" with "donors" — equity crowdfunding and donation-based crowdfunding require different framing (avg investment vs. avg donation)
- Don't rank campaigns by raised amount alone — a campaign with a small goal and small raise can have a higher funding ratio than a campaign with a much larger raise
- Don't treat a single large investor as equivalent signal-strength to many small investors — always cross-check avg investment against investor count