Tool Selection Considerations
The right tool depends on:
| Factor | Consideration |
|---|---|
| Data scale | Hundreds vs millions of nodes |
| Technical capacity | Staff programming skills |
| Analysis needs | Basic metrics vs advanced algorithms |
| Visualization goals | Internal analysis vs public presentation |
| Integration needs | Connection to existing CRM |
Software Comparison
NetworkX (Python)
Best for: Large datasets, computational analysis, scripted workflows
| Strength | Limitation |
|---|---|
| Handles massive datasets | Requires Python programming |
| All standard algorithms | No built-in visualization |
| Highly scriptable | Steeper learning curve |
| Free and open source | No GUI |
| Extensive documentation |
Installation:
pip install networkx
Basic Usage:
import networkx as nx
# Create network
G = nx.Graph()
# Add nodes (organizations)
G.add_node("ACLU", type="legal")
G.add_node("MutualAid", type="grassroots")
G.add_node("FaithGroup", type="faith")
# Add edges (relationships)
G.add_edge("ACLU", "MutualAid", weight=3)
G.add_edge("MutualAid", "FaithGroup", weight=5)
# Calculate centrality
betweenness = nx.betweenness_centrality(G)
print(betweenness)
# Export for visualization
nx.write_gexf(G, "coalition_network.gexf")
Gephi
Best for: Interactive visualization, exploration, non-programmers
| Strength | Limitation |
|---|---|
| Excellent visualization | Limited to desktop |
| Interactive exploration | Slow with very large networks |
| Calculates metrics via GUI | No scripting/automation |
| Free and open source | Import/export workflow required |
| Layout algorithms |
Workflow:
- Prepare data in CSV or import from NetworkX (.gexf)
- Import nodes and edges
- Calculate statistics (built-in panels)
- Apply layout algorithm
- Style nodes and edges
- Export visualization
Data Format (CSV):
Nodes file:
Id,Label,Type
1,ACLU,legal
2,MutualAid,grassroots
3,FaithGroup,faith
Edges file:
Source,Target,Weight
1,2,3
2,3,5
igraph
Best for: Statistical analysis, community detection, research pipelines
| Strength | Limitation |
|---|---|
| Very fast computation | Requires R or Python |
| Advanced algorithms | Less intuitive than Gephi |
| Statistical integration | Visualization more limited |
| Available in R, Python, C | |
| Community detection |
Python Usage:
import igraph as ig
# Create network
g = ig.Graph()
g.add_vertices(["ACLU", "MutualAid", "FaithGroup"])
g.add_edges([("ACLU", "MutualAid"), ("MutualAid", "FaithGroup")])
# Community detection
communities = g.community_multilevel()
print(communities)
# Calculate metrics
betweenness = g.betweenness()
print(betweenness)
Kumu
Best for: Collaborative mapping, stakeholder engagement, presentations
| Strength | Limitation |
|---|---|
| Web-based, no install | Limited free tier |
| Collaborative editing | Less analytical depth |
| Beautiful visualizations | Export limitations |
| Stakeholder presentations | Proprietary |
| Easy learning curve |
Best Use: Presenting network insights to non-technical stakeholders
Tool Comparison Matrix
| Feature | NetworkX | Gephi | igraph | Kumu |
|---|---|---|---|---|
| Learning curve | High | Medium | High | Low |
| Max network size | Millions | ~100K | Millions | ~10K |
| Visualization | Via export | Excellent | Basic | Excellent |
| Scripting | Yes | No | Yes | No |
| Collaboration | Via code | File sharing | Via code | Built-in |
| Cost | Free | Free | Free | Freemium |
| Community detection | Good | Good | Excellent | Basic |
Data Collection Tools
Survey Platforms
| Platform | Network Features | Cost |
|---|---|---|
| Google Forms | Basic roster surveys | Free |
| Qualtrics | Advanced skip logic | $$ |
| SurveyMonkey | Moderate features | Free-$$ |
| Typeform | User-friendly | Free-$$ |
| Airtable | Database + forms | Free-$$ |
Roster Survey Template (Google Forms)
COALITION NETWORK SURVEY
Your Organization: [Dropdown of coalition members]
For each organization below, please indicate your relationship:
[Organization A]
□ We exchange policy information
□ We collaborate on programs
□ We share funding opportunities
□ We meet at least monthly
□ We refer clients to each other
□ No direct relationship
Relationship strength: [1-5 scale]
[Repeat for each organization]
Social Media Data Collection
| Source | API Access | Data Available |
|---|---|---|
| Twitter/X | Researcher API | Followers, mentions, retweets |
| Limited (CrowdTangle) | Page interactions, group membership | |
| Very limited | Connection data restricted |
Ethical note: Social media scraping raises significant privacy concerns. See ethics guide.
CRM Integration
Action Network
Network capability: Action Builder for relationship tracking
Action Network → API → NetworkX → Analysis
↓
Gephi → Visualization
Integration approach:
- Use Action Builder to track relationships between activists
- Export via API or SQL mirror
- Process in NetworkX for centrality calculations
- Visualize in Gephi or Kumu
Salesforce
Network capability: Custom relational objects
| Object | Purpose |
|---|---|
| Contact | Individual nodes |
| Account | Organization nodes |
| Custom Relationship | Edge tracking |
| Tags | Node attributes |
Airtable
Network capability: Linked records as relationships
| Table | Purpose |
|---|---|
| Organizations | Node data |
| Relationships | Edge data (linked records) |
| Contacts | Individual nodes |
| Projects | Joint activities |
Visualization Best Practices
Avoiding "Hairball" Networks
| Problem | Solution |
|---|---|
| Too many nodes | Filter to significant actors |
| Too many edges | Show only strong ties |
| Cluttered layout | Use force-directed algorithms |
| No meaning visible | Encode data visually |
Visual Encoding
| Element | Encode Using | Example |
|---|---|---|
| Node size | Centrality measure | Larger = more connected |
| Node color | Category | Legal = blue, grassroots = green |
| Edge thickness | Relationship strength | Thicker = stronger tie |
| Edge color | Relationship type | Funding = gold, info = gray |
| Position | Network structure | Clusters grouped together |
Layout Algorithms
| Algorithm | Best For | In Gephi |
|---|---|---|
| ForceAtlas2 | General networks | Yes |
| Fruchterman-Reingold | Small networks | Yes |
| Circular | Showing all connections | Yes |
| Geographic | Location-based networks | Manual |
Presentation Tips
| Audience | Approach |
|---|---|
| Coalition board | Simplified, key metrics highlighted, clear legend |
| Community members | Geographic overlay, plain language labels |
| Funders | Impact metrics, reach visualization |
| Internal strategists | Full complexity, interactive dashboard |
Interactive Dashboards
Options
| Platform | Features | Cost |
|---|---|---|
| Kumu | Web-based, collaborative | Free-$$ |
| Observable | Code-based, D3.js | Free |
| Tableau | Business intelligence | $$$ |
| Power BI | Microsoft ecosystem | $$ |
| Custom (D3.js) | Maximum flexibility | Dev time |
Dashboard Elements
| Element | Purpose |
|---|---|
| Network map | Visual overview |
| Metric table | Key statistics |
| Node search | Find specific actors |
| Filters | Subset by type/region |
| Time slider | Show change over time |
Data Management
Secure Storage
| Requirement | Implementation |
|---|---|
| Encryption at rest | Encrypted database/files |
| Access control | Role-based permissions |
| Audit logging | Track who accessed what |
| Backup | Regular, encrypted backups |
| Retention limits | Delete when no longer needed |
Data Formats
| Format | Use Case | Tool Support |
|---|---|---|
| CSV | Simple import/export | All |
| GEXF | Gephi native format | Gephi, NetworkX |
| GraphML | Standard interchange | Most tools |
| JSON | Web applications | Custom |
| Pajek | Legacy format | Specialized |
Version Control
Track network data changes:
networks/
├── 2026-01-coalition.gexf
├── 2026-04-coalition.gexf
├── 2026-07-coalition.gexf
└── changelog.md
Learning Resources
NetworkX
| Resource | Type |
|---|---|
| Official documentation | Reference |
| Network Analysis Made Simple | Tutorial |
| Python for Social Scientists | Book |
Gephi
| Resource | Type |
|---|---|
| Gephi Quick Start | Tutorial |
| Martin Grandjean tutorials | Video |
| Official wiki | Reference |
igraph
| Resource | Type |
|---|---|
| Official documentation | Reference |
| Statistical Analysis of Network Data | Book |
| R-bloggers tutorials | Blog |
General SNA
| Resource | Type |
|---|---|
| Social Network Analysis (Wasserman & Faust) | Textbook |
| Networks, Crowds, and Markets | Free online book |
| Coursera SNA courses | Online course |
Implementation Workflow
Minimum Viable Setup
- Collect data via Google Forms roster survey
- Process in Google Sheets (edge list format)
- Import to Gephi
- Calculate basic centrality metrics
- Visualize with ForceAtlas2 layout
- Export PNG for presentation
Advanced Setup
- Collect data via Action Network + API
- Store in secure database
- Process with NetworkX scripts
- Analyze with igraph for community detection
- Visualize in Gephi (interactive) + Kumu (presentation)
- Dashboard with Observable or custom D3
Tool Checklist
For Getting Started
- [ ] Define network scope (what nodes and edges?)
- [ ] Select survey tool for data collection
- [ ] Choose analysis tool based on team skills
- [ ] Set up secure data storage
- [ ] Plan visualization approach
- [ ] Identify learning resources needed
For Ongoing Analysis
- [ ] Establish data collection schedule
- [ ] Create analysis scripts (if using code)
- [ ] Document workflow for reproducibility
- [ ] Train additional staff on tools
- [ ] Plan for data updates
Next Steps
- Review ethical considerations before collecting data
- Follow implementation guide for getting started
- Plan interventions based on analysis