Documentation Index
Fetch the complete documentation index at: https://grantmaster.dev/llms.txt
Use this file to discover all available pages before exploring further.
Intelligence Platform
| Status | Updated | Covered Files |
|---|
| 🟢 Stable | 2026-02-22 | functions/src/intelligence/, functions/src/intelligence/anonymizer.ts, src/components/widgets/platform/, src/shared/platform/ |
Overview
The Intelligence Platform aggregates anonymized data across organizations to provide cross-platform benchmarks, predictive analytics, and sector insights. Privacy is enforced through SHA-256 anonymization with yearly salt rotation, value bucketing, and metric clamping.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Organization Data (per-tenant) │
│ Grants, budgets, compliance, projects, people │
├────────────────────┬────────────────────────────────────┤
│ Anonymizer │ Consent Layer │
│ SHA-256 hashing │ Opt-in per organization │
│ Value bucketing │ IntelligenceOptInWidget │
│ Metric clamping │ │
├────────────────────┴────────────────────────────────────┤
│ Cohort Builder │
│ Size + sector + geography grouping │
├─────────────────────────────────────────────────────────┤
│ Intelligence Outputs │
│ Benchmarks, predictions, sector trends │
└─────────────────────────────────────────────────────────┘
Anonymization System
File: functions/src/intelligence/anonymizer.ts
Core Techniques
| Technique | Implementation | Purpose |
|---|
| SHA-256 hashing | generateAnonymousId(orgId, salt) | Irreversible organization identification |
| Yearly salt rotation | getYearlySalt(baseSalt) — SHA-256 of {baseSalt}-{year} | Prevents cross-year correlation |
| Value bucketing | bucketValue(value, buckets) | Groups continuous values into ranges |
| Metric clamping | clampMetric(value, min, max) | Caps extreme outliers to prevent identification |
| Size categorization | categorizeOrgSize(employeeCount) | Groups: micro, small, medium, large, enterprise |
Anonymization Pipeline
function anonymizeOrgData(orgData: OrgData, config: AnonymConfig): AnonymizedRecord {
const salt = getYearlySalt(config.baseSalt);
const anonymousId = generateAnonymousId(orgData.organizationId, salt);
return {
anonymousId,
cohort: buildCohort(orgData),
metrics: {
grants: computeGrantMetrics(orgData),
finance: computeFinanceMetrics(orgData),
compliance: computeComplianceMetrics(orgData),
people: computePeopleMetrics(orgData),
projects: computeProjectMetrics(orgData),
},
qualityScore: calculateQualityScore(orgData),
};
}
Quality Scoring
A 100-point quality score determines if an organization’s data is sufficient for inclusion:
function calculateQualityScore(data: OrgData): number {
// Scores based on data completeness across domains
// Only records with score ≥ threshold are included in benchmarks
}
function meetsQualityThreshold(score: number): boolean;
function getDataWeight(score: number): number; // Higher quality = more weight
Consent Management
Opt-In Flow
Organizations must explicitly opt in to data sharing:
- SuperAdmin sees
IntelligenceOptInWidget on Platform tab
- Reviews what data is collected and how it’s anonymized
- Grants consent (stored in organization settings)
- Data collection begins on next scheduled pipeline run
Data Retention
- Anonymized records are retained for rolling 3-year windows
- Organizations can revoke consent at any time
- Revocation triggers deletion of all anonymized records within 30 days
Metric Domains
Grant Metrics
| Metric | Description |
|---|
| Application success rate | Proposals submitted vs. funded |
| Average award size | Bucketed by grant type |
| Pipeline velocity | Time from identification to award |
| Diversification index | Funder concentration ratio |
Finance Metrics
| Metric | Description |
|---|
| Overhead ratio | Administrative vs. program costs |
| Burn rate | Monthly expenditure rate |
| Reserve months | Operating reserve duration |
| Budget utilization | Spent vs. allocated percentages |
Compliance Metrics
| Metric | Description |
|---|
| Audit readiness score | Composite compliance indicator |
| Policy violation rate | Violations per 100 transactions |
| Document compliance | Required vs. present documentation |
| Reporting timeliness | On-time vs. late report submissions |
People Metrics
| Metric | Description |
|---|
| Staff utilization | Billable hours ratio |
| Cost per FTE | Fully-loaded employee cost |
| Turnover rate | Annual attrition (bucketed) |
| Volunteer ratio | Volunteer hours vs. staff hours |
Project Metrics
| Metric | Description |
|---|
| On-time delivery rate | Projects completed by deadline |
| Milestone completion | Planned vs. achieved milestones |
| Risk resolution rate | Identified risks mitigated |
| Deliverable quality | Accepted vs. revision-required deliverables |
Cohort System
Organizations are grouped into cohorts for meaningful comparison:
function buildCohort(orgData: OrgData): Cohort {
return {
size: categorizeOrgSize(orgData.employeeCount),
sector: orgData.sector, // e.g. 'health', 'education', 'environment'
geography: orgData.region, // Continental region
};
}
Cohort Dimensions
| Dimension | Values |
|---|
| Organization Size | micro (1-5), small (6-25), medium (26-100), large (101-500), enterprise (500+) |
| Sector | health, education, environment, humanitarian, development, governance, other |
| Geography | Continental regions |
Directory: src/components/widgets/platform/
| Widget | Description |
|---|
SectorBenchmarksWidget | Compare organization metrics against sector peers |
SectorTrendsWidget | Longitudinal trends across the sector |
GrantSuccessPredictorWidget | ML-based grant success probability |
BudgetRiskRadarWidget | Budget risk indicators with peer comparison |
FunderIntelligenceWidget | Funder landscape and opportunity analysis |
IntelligenceOptInWidget | Consent management and data sharing settings |
Key Files Reference
| File | Purpose |
|---|
functions/src/intelligence/anonymizer.ts | SHA-256 anonymization, bucketing, clamping, cohort building |
functions/src/intelligence/pipeline.ts | Scheduled data collection and aggregation |
src/components/widgets/platform/ | Platform intelligence dashboard widgets |
src/components/widgets/platform/IntelligenceOptInWidget.tsx | Consent management widget |
src/shared/platform/ | Platform service utilities |