AI Skill Report Card

Evaluating Crowdfunding Campaigns

A90·Sep 28, 2026·Source: Extension-page
15 / 15

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
Recommendation▾
Add guidance on handling missing/malformed fields (e.g., no goal specified, missing category) as an explicit edge case
14 / 15

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
Recommendation▾
Clarify how 'Fully Funded' vs 'Overfunded' boundary (120%) was chosen or make it configurable, since thresholds are somewhat arbitrary

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
19 / 20

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
Recommendation▾
Consider adding a brief note on parsing HTML/CSV specifics (e.g., common selector patterns or column name variants) since the description mentions multiple input formats but the workflow treats parsing generically
  • Always normalize currency strings before math: strip $, €, £, commas, +; expand K/M/B suffixes
  • 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
0
Grade AAI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
15/15
Workflow
14/15
Examples
19/20
Completeness
19/20
Format
15/15
Conciseness
13/15