ScoutHubSign in

Super Admin/Database

Super Admin

Database

The contract between this app and Postgres, then the live columns. Academy tables sit beside Grant Scout. Better Auth session tables stay hidden.

League directory

People and membership. The registered agent is Mark Jones at the Tampa office. Demo passwords in this preview are hints only — production must store hashes, never plain text.

5 tables · Staff

Academy

Curriculum and the Game Day calendar. Yard points are educational standings. They are not securities, investor rankings, or a promise of capital.

6 tables · Instructors write grades; students see their own rows

Public site & donors

A bio is public only when the athlete says so. Donors log in to see featured project briefings and Game Day invites — never emergency contacts, emails, or private bios.

4 tables · Athletes opt in; donors see invited projects only

League OS

Member categories, the applications inbox, capstone packets, and public market cards. A status change is logged. Nothing here is mailed automatically.

6 tables · Staff

Grant Scout · catalog

A catalog search is not a mailed request. Fit scores rank mission overlap. They do not award funds.

8 tables · Staff

Grant Scout · outreach

Letters stay on hold until a staff member sends them. Sample letters in this preview have not been mailed.

6 tables · Staff

Stewardship

A foundation award is never double-counted as a DonorBox gift. Receipts are issued from donations@capitalforgeleague.org.

7 tables · Staff

63 tables · 591 columns · grouped by the database contract

League directory

People and membership. The registered agent is Mark Jones at the Tampa office. Demo passwords in this preview are hints only — production must store hashes, never plain text.

5 tables

org_directory

8 cols

Legal name, EIN, Tampa office, and registered agent.

  • idtext
  • registrant_nametext
  • registrant_emailtext
  • address_linetext
  • city_linetext
  • eintext
  • legal_nametext
  • updated_attimestamp with time zone

league_users

16 cols

People who can sign in. Role, member category, and org.

  • idtext
  • emailtext
  • full_nametext
  • roletext
  • titletext?
  • password_hinttext
  • sporttext?
  • service_branchtext?
  • locationtext?
  • avatar_initialstext
  • statustext
  • last_seen_attimestamp with time zone?
  • created_attimestamp with time zone
  • categorytext?
  • org_nametext?
  • avatar_srctext?

members

15 cols

Enrolled athletes and veteran founders. Yard points live here.

  • idtext
  • user_idtext
  • member_notext
  • tracktext
  • year_in_programinteger
  • yard_pointsinteger
  • team_idtext?
  • eligibilitytext
  • joined_attimestamp with time zone
  • traction_flagboolean
  • credit_statustext
  • credit_notetext?
  • credit_stagetext
  • credit_recommended_bytext?
  • credit_approved_bytext?

member_profiles

11 cols

School, sport, bio, NIL checklist, and the public-bio opt-in.

  • member_idtext
  • schooltext?
  • sporttext?
  • positiontext?
  • biotext?
  • emergency_contacttext?
  • nil_completeboolean
  • created_attimestamp with time zone
  • public_bioboolean
  • public_slugtext?
  • public_headlinetext?

teams

14 cols

Venture-studio teams. CFL takes no equity in these ventures.

  • idtext
  • nametext
  • slugtext
  • venture_summarytext
  • categorytext
  • coach_user_idtext?
  • statustext
  • yard_pointsinteger
  • created_attimestamp with time zone
  • public_visibleboolean
  • donor_featuredboolean
  • donor_brieftext?
  • stage_labeltext?
  • public_impacttext?

Academy

Curriculum and the Game Day calendar. Yard points are educational standings. They are not securities, investor rankings, or a promise of capital.

6 tables

courses

9 cols

Season curriculum (NIL, discovery, studio, capital).

  • idtext
  • codetext
  • titletext
  • quartertext
  • summarytext
  • weeksinteger
  • instructor_user_idtext?
  • publishedboolean
  • created_attimestamp with time zone

course_modules

6 cols

Weekly lessons inside a course.

  • idtext
  • course_idtext
  • weekinteger
  • titletext
  • summarytext
  • minutesinteger

enrollments

6 cols

A member’s progress in a course.

  • idtext
  • course_idtext
  • member_idtext
  • progress_pctinteger
  • statustext
  • enrolled_attimestamp with time zone

assignments

8 cols

Work due this quarter.

  • idtext
  • course_idtext
  • titletext
  • prompttext
  • due_atdate?
  • pointsinteger
  • kindtext
  • suggested_bytext?

submissions

7 cols

What the athlete turned in, plus the coach’s grade.

  • idtext
  • assignment_idtext
  • member_idtext
  • statustext
  • scoreinteger?
  • feedbacktext?
  • submitted_attimestamp with time zone

game_days

7 cols

Studio sessions, stadium nights, and donor-invite sideline days.

  • idtext
  • titletext
  • starts_attimestamp with time zone
  • locationtext
  • notestext?
  • audiencetext
  • donor_inviteboolean

Public site & donors

A bio is public only when the athlete says so. Donors log in to see featured project briefings and Game Day invites — never emergency contacts, emails, or private bios.

4 tables

donor_profiles

6 cols

Giving tier and restriction for a signed-in donor.

  • user_idtext
  • organizationtext?
  • giving_tiertext
  • since_yearinteger?
  • restricted_totext?
  • notestext?

donor_project_access

5 cols

Which studio projects a donor is invited to see in depth.

  • idtext
  • donor_user_idtext
  • team_idtext
  • access_leveltext
  • invited_attimestamp with time zone

game_day_invites

5 cols

Donor RSVPs to Game Days. Members-only nights stay off this list.

  • idtext
  • game_day_idtext
  • donor_user_idtext
  • statustext
  • notetext?

team_updates

6 cols

Studio notes. Public rows appear on the public site; donor rows stay behind login.

  • idtext
  • team_idtext
  • audiencetext
  • titletext
  • bodytext
  • posted_attimestamp with time zone

League OS

Member categories, the applications inbox, capstone packets, and public market cards. A status change is logged. Nothing here is mailed automatically.

6 tables

applications

13 cols

Internship, ambassador, team, sponsorship, technology, and freelancer papers.

  • idtext
  • kindtext
  • full_nametext
  • emailtext
  • summarytext
  • statustext
  • scorenumeric?
  • submitted_attimestamp with time zone
  • applied_roletext?
  • offer_pathtext?
  • offer_roletext?
  • decision_copytext?
  • match_jsonjsonb?

application_events

6 cols

Status moves on an application. Nothing here is mailed.

  • idtext
  • application_idtext
  • from_statustext?
  • to_statustext
  • notetext?
  • attimestamp with time zone

capstone_projects

30 cols

Studio deals, packets, tombstone ads (donor support, project budget, last updated), and whether the card is on the public market.

  • idtext
  • slugtext
  • titletext
  • subtitletext?
  • locationtext?
  • companytext?
  • categorytext
  • summarytext
  • bulletsjsonb
  • statustext
  • packetjsonb
  • public_cardboolean
  • created_attimestamp with time zone
  • vehicletext?
  • investment_typetext?
  • share_typetext?
  • investorsinteger
  • funded_centsinteger
  • min_raise_centsinteger
  • max_raise_centsinteger
  • min_investment_centsinteger
  • authorized_sharesinteger
  • shares_offeredinteger
  • price_per_share_centsinteger
  • banner_srctext?
  • closes_atdate?
  • last_updated_attimestamp with time zone
  • approval_statustext
  • publish_statustext
  • team_idtext?

capstone_seats

9 cols

Named seats on a studio team. Open means still assembling.

  • idtext
  • project_idtext
  • seattext
  • person_nametext
  • filledboolean
  • headlinetext?
  • schooltext?
  • biotext?
  • resumetext?

media_assets

11 cols

Lockup, crest, and studio stills used on the public site.

  • idtext
  • titletext
  • kindtext
  • srctext
  • captiontext?
  • project_idtext?
  • posted_attimestamp with time zone
  • can_publicboolean
  • can_socialboolean
  • can_donorboolean
  • can_studentboolean

social_posts

6 cols

Queued posts. Scheduled does not mean sent.

  • idtext
  • platformtext
  • bodytext
  • campaigntext?
  • scheduled_attimestamp with time zone
  • statustext

Grant Scout · catalog

A catalog search is not a mailed request. Fit scores rank mission overlap. They do not award funds.

8 tables

org_profiles

10 cols

Versioned mission used to score listings.

  • idtext
  • nametext
  • eintext
  • mission_texttext
  • focus_keywordsjsonb
  • zero_equity_languagetext
  • geographytext
  • versioninteger
  • created_attimestamp with time zone
  • updated_attimestamp with time zone

opportunities

13 cols

Open RFPs and listings from the catalog search.

  • idtext
  • sourcetext
  • external_idtext?
  • titletext
  • funder_nametext
  • amount_mininteger?
  • amount_maxinteger?
  • deadlinedate?
  • eligibility_rawtext?
  • urltext?
  • statustext
  • raw_jsonjsonb
  • created_attimestamp with time zone

opportunity_matches

15 cols

Fit between a listing and the current OrgProfile.

  • idtext
  • opportunity_idtext
  • org_profile_idtext
  • fit_scoreinteger
  • fit_reasontext?
  • knockout_reasontext?
  • created_attimestamp with time zone
  • ai_prioritytext?
  • ai_importanceinteger?
  • ai_rationaletext?
  • ai_efforttext?
  • ai_overlapjsonb
  • ai_risksjsonb
  • ai_modeltext?
  • ai_scored_attimestamp with time zone?

foundations

17 cols

Small-grant foundations in the prospect list.

  • idtext
  • eintext
  • nametext
  • statetext
  • citytext?
  • assetsbigint?
  • total_givingbigint?
  • form_typetext
  • nteetext?
  • ntee_labeltext?
  • sourcetext
  • last_filing_yearinteger?
  • geo_tiertext
  • officersjsonb
  • websitetext?
  • raw_jsonjsonb
  • created_attimestamp with time zone

foundation_grants

8 cols

Historical grants used for sizing.

  • idtext
  • foundation_idtext
  • tax_yearinteger
  • recipient_nametext
  • recipient_eintext?
  • amountinteger
  • purpose_rawtext?
  • source_reftext?

foundation_scores

19 cols

How well a foundation matches CFL’s mission.

  • idtext
  • foundation_idtext
  • org_profile_idtext
  • fit_scoreinteger
  • median_grantinteger?
  • mean_grantinteger?
  • grant_countinteger
  • small_grant_rationumeric?
  • geo_matchtext?
  • computed_attimestamp with time zone
  • fit_reasontext?
  • mission_hitsjsonb
  • ai_prioritytext?
  • ai_importanceinteger?
  • ai_rationaletext?
  • ai_efforttext?
  • ai_overlapjsonb
  • ai_modeltext?
  • ai_scored_attimestamp with time zone?

discovery_runs

9 cols

Log of each catalog search.

  • idtext
  • sourcetext
  • started_attimestamp with time zone
  • finished_attimestamp with time zone?
  • records_ingestedinteger
  • records_newinteger
  • errors_jsonjsonb
  • statustext
  • notestext?

coverage_spikes

7 cols

Sudden listing volume that needs a human look.

  • idtext
  • ran_attimestamp with time zone
  • sample_sizeinteger
  • structured_countinteger
  • paper_countinteger
  • notestext?
  • rows_jsonjsonb

Grant Scout · outreach

Letters stay on hold until a staff member sends them. Sample letters in this preview have not been mailed.

6 tables

drafts

14 cols

Letters that have not been mailed.

  • idtext
  • match_idtext?
  • foundation_idtext?
  • opportunity_idtext?
  • kindtext
  • statustext
  • titletext
  • narrative_sectionsjsonb
  • generated_bytext?
  • reviewed_bytext?
  • versioninteger
  • validation_flagsjsonb
  • created_attimestamp with time zone
  • updated_attimestamp with time zone

relationships

10 cols

Pipeline stage for each foundation.

  • idtext
  • foundation_idtext
  • stagetext
  • owner_nametext
  • stage_entered_attimestamp with time zone
  • next_actiontext?
  • next_action_duedate?
  • notestext?
  • gift_donation_idtext?
  • created_attimestamp with time zone

solicitations

16 cols

What was sent, when, how, and to whom.

  • idtext
  • opportunity_idtext?
  • foundation_idtext?
  • relationship_idtext?
  • contact_nametext
  • contact_roletext?
  • methodtext
  • sent_attimestamp with time zone?
  • sent_bytext?
  • package_reftext?
  • statustext
  • notestext?
  • hold_reasontext?
  • created_attimestamp with time zone
  • contact_emailtext?
  • draft_idtext?

solicitation_responses

7 cols

Replies to sent letters.

  • idtext
  • solicitation_idtext
  • response_typetext
  • responded_attimestamp with time zone
  • raw_contenttext?
  • notestext?
  • actor_idtext

pipeline_events

7 cols

Stage changes on a relationship.

  • idtext
  • subject_typetext
  • subject_idtext
  • event_typetext
  • actor_idtext
  • notestext?
  • created_attimestamp with time zone

mail_sends

11 cols

Outbound mail attempts and bounces.

  • idtext
  • draft_idtext?
  • solicitation_idtext?
  • to_nametext
  • to_emailtext
  • from_emailtext
  • subjecttext
  • bodytext
  • statustext
  • bounce_reasontext?
  • created_attimestamp with time zone

Stewardship

A foundation award is never double-counted as a DonorBox gift. Receipts are issued from donations@capitalforgeleague.org.

7 tables

donations

15 cols

Layer 4 gifts — DonorBox and logged awards.

  • idtext
  • donor_nametext
  • amount_centsinteger
  • campaigntext?
  • amount_tiertext
  • recurringboolean
  • restrictedboolean
  • restriction_notetext?
  • sourcetext
  • relationship_idtext?
  • received_attimestamp with time zone
  • raw_jsonjsonb
  • donor_emailtext?
  • receipt_idtext?
  • thankyou_sent_attimestamp with time zone?

donor_receipts

13 cols

Official 501(c)(3) receipts.

  • idtext
  • donation_idtext
  • receipt_notext
  • donor_nametext
  • donor_emailtext?
  • amount_centsinteger
  • received_attimestamp with time zone
  • body_texttext
  • thankyou_texttext
  • sent_attimestamp with time zone?
  • sent_bytext?
  • statustext
  • created_attimestamp with time zone

grant_inbox

13 cols

Mail forwarded from donations@ and grants@.

  • idtext
  • mailboxtext
  • from_nametext
  • from_emailtext
  • subjecttext
  • bodytext
  • received_attimestamp with time zone
  • statustext
  • kindtext
  • linked_donation_idtext?
  • linked_solicitation_idtext?
  • linked_relationship_idtext?
  • amount_centsinteger?

agreements

19 cols

Sponsorship and sponsored-research agreements.

  • idtext
  • kindtext
  • titletext
  • counterparty_nametext
  • counterparty_emailtext?
  • relationship_idtext?
  • donation_idtext?
  • opportunity_idtext?
  • amount_centsinteger?
  • term_monthsinteger?
  • purposetext?
  • terms_jsonjsonb
  • body_texttext
  • statustext
  • generated_bytext?
  • sent_attimestamp with time zone?
  • executed_attimestamp with time zone?
  • created_attimestamp with time zone
  • updated_attimestamp with time zone

documents

8 cols

Attached files on drafts, gifts, and agreements.

  • idtext
  • filenametext
  • mimetext
  • content_texttext
  • versioninteger
  • subject_typetext?
  • subject_idtext?
  • created_attimestamp with time zone

notifications

7 cols

Staff alerts inside Super Admin.

  • idtext
  • kindtext
  • titletext
  • bodytext
  • hreftext?
  • readboolean
  • created_attimestamp with time zone

settings

3 cols

Sending hold and scoring gates.

  • keytext
  • valuejsonb
  • updated_attimestamp with time zone

Other

cfl_gift_tracking

  • idtext
  • fingerprinttext
  • statustext
  • reasontext
  • donor_nametext?
  • donor_emailtext?
  • amount_centsinteger?
  • campaigntext?
  • raw_jsonjsonb?
  • accepted_donation_idtext?
  • created_attimestamp with time zone

course_questions

  • idtext
  • module_idtext?
  • course_titletext?
  • emailtext
  • bodytext
  • created_attimestamp with time zone

deal_room_access_log

  • idtext
  • project_idtext
  • actor_emailtext
  • actor_roletext
  • actiontext
  • doc_idtext?
  • created_attimestamp with time zone

deal_room_docs

  • idtext
  • project_idtext
  • kindtext
  • titletext
  • bodytext
  • uploaded_bytext
  • created_attimestamp with time zone
  • original_bodytext?
  • ai_bodytext?
  • ai_notestext?
  • used_aiboolean
  • ai_reviewed_attimestamp with time zone?
  • ai_modeltext?

deal_room_questions

  • idtext
  • project_idtext
  • from_emailtext
  • from_nametext
  • from_roletext
  • bodytext
  • answertext?
  • answered_bytext?
  • answered_attimestamp with time zone?
  • created_attimestamp with time zone

deal_room_requests

  • idtext
  • project_idtext
  • actor_emailtext
  • actor_roletext
  • created_attimestamp with time zone

game_day_rsvps

  • idtext
  • game_day_idtext
  • user_emailtext
  • statustext
  • created_attimestamp with time zone

seat_access_log

  • idtext
  • seat_idtext?
  • actor_emailtext
  • actor_roletext
  • actiontext
  • grantedboolean
  • detailtext?
  • attimestamp with time zone

social_analytics

  • idtext
  • platformtext
  • window_labeltext
  • impressionsinteger
  • engagementsinteger
  • clicksinteger
  • followsinteger

social_connections

  • providertext
  • handletext
  • statustext
  • connected_attimestamp with time zone?

social_listen_keywords

  • idtext
  • keywordtext

social_mentions

  • idtext
  • platformtext
  • authortext
  • bodytext
  • keywordtext
  • sentimenttext
  • heard_attimestamp with time zone

stadium_alerts

  • idtext
  • emailtext
  • team_idtext
  • roletext
  • created_attimestamp with time zone

stadium_auction_bids

  • idtext
  • lot_idtext
  • emailtext
  • nametext?
  • amount_centsinteger
  • created_attimestamp with time zone

stadium_auction_lots

  • idtext
  • titletext
  • blurbtext
  • image_kindtext
  • statustext
  • reserve_centsinteger
  • high_centsinteger
  • high_emailtext?
  • ends_attimestamp with time zone
  • created_attimestamp with time zone
  • fmv_centsinteger
  • provenancetext?
  • image_pathtext?
  • sample_onlyboolean
  • snipe_countinteger

stadium_live_events

  • idbigint
  • kindtext
  • payloadjsonb
  • created_attimestamp with time zone

stadium_matchups

  • idtext
  • arena_idtext
  • home_team_idtext
  • away_team_idtext
  • round_labeltext
  • statustext
  • kickoff_attimestamp with time zone

stadium_merch_orders

  • idtext
  • emailtext
  • skutext
  • labeltext
  • price_centsinteger
  • team_idtext?
  • created_attimestamp with time zone

stadium_plays

  • idtext
  • matchup_idtext
  • team_idtext
  • member_idtext?
  • actor_emailtext?
  • event_typetext
  • pointsinteger
  • notetext?
  • created_attimestamp with time zone

stadium_votes

  • idtext
  • matchup_idtext
  • team_idtext
  • voter_emailtext
  • created_attimestamp with time zone

stadium_watchers

  • peer_idtext
  • arena_idtext
  • last_seentimestamp with time zone