Importing Data
Bulk import historical bid records, bidder lists, and contract data with CSV validation and duplicate detection
Importing Data
Data import accelerates your Org Intelligence setup by loading years of historical bid records, competitor lists, and contract data in minutes rather than manually creating thousands of records. Whether you're migrating from spreadsheets, legacy systems, or contract databases, the import system validates data, detects duplicates, and transforms your existing intelligence into actionable analytics.
A single successful import can instantly unlock bid analytics, competitor profiles, and trend analysis that would take months to accumulate through manual record creation.
Why Import Historical Data
Immediate Analytics Value
Creating bid records one-by-one builds intelligence slowly. Importing historical data provides instant analytical insights:
Without import:
- Week 1: Create 3 records → Minimal analytics (tiny sample size)
- Month 1: Create 15 records → Basic analytics emerging
- Month 6: Create 75 records → Meaningful analytics available
- Year 1: Create 150 records → Comprehensive analytics
With import:
- Day 1: Import 150 historical records → Comprehensive analytics immediately
- Week 1: Add 3 new records → Analytics improve further
- Month 1: 165 total records → Very robust analytics
Import provides a head start, making analytics valuable from day one.
Competitive Intelligence Foundation
Historical data reveals competitor patterns:
Import 3 years of bid records:
- Competitor profiles auto-generated for 20-30 rivals
- Win rates calculated across hundreds of encounters
- Pricing patterns identified
- Market positioning insights available
This intelligence base would take years to accumulate organically.
Trend Analysis
Analytics require historical data to identify trends:
Import benefits:
- Immediate win rate trends (vs. waiting months for trends to emerge)
- Category performance comparison (see which categories you've historically dominated)
- Pipeline velocity baselines (understand your typical cycle times)
- Seasonal patterns (identify if certain quarters are stronger/weaker)
Success
Quick win: Import just the last 12 months of bid records (typically 30-100 records for active bidders). This provides immediate meaningful analytics while keeping your first import manageable.
Import Types
The Org Intelligence system supports importing several data types:
1. Bid Records (Full)
Complete bid records with all fields:
What to import:
- Opportunity title and ID
- Issuing organization/department
- Opportunity value
- Dates (posted, deadline, submission, decision)
- Your bid amount
- Status and outcome (won/lost/no-bid)
- Competitors
- Win/loss reasoning
- Categories and tags
Best for:
- Your organization's internal bid tracking data
- Migrating from legacy proposal management systems
- Comprehensive historical records
Data source examples:
- Internal spreadsheets tracking bid history
- CRM exports of proposal/opportunity data
- Legacy database exports
2. Bid Records (Basic)
Minimal bid records capturing essentials:
What to import:
- Opportunity title
- Issuing organization
- Outcome (won/lost/no-bid)
- Decision date
- Bid amount (if available)
Best for:
- Quick setup with limited historical data
- When detailed records don't exist but outcomes are known
- Capturing just wins and losses without full context
Data source examples:
- Simple win/loss tracking logs
- Financial system contract data
- Award notification emails compiled into spreadsheet
3. Bidder Lists
Lists of competitors from past procurements:
What to import:
- Opportunity title or ID
- List of vendors/competitors who bid
- Winner (if known)
- Bid amounts (if disclosed)
Best for:
- Government debrief data (list of bidders provided after award)
- Public procurement award notices
- Building competitor intelligence without your own bid records
Data source examples:
- Debrief letters listing all bidders
- Freedom of Information requests revealing bidder lists
- Public contract award notices
4. Contract Awards (Public Data)
Public contract award data to enrich intelligence:
What to import:
- Contract number
- Winning vendor
- Contract value
- Issuing department
- Contract description
- Award date
Best for:
- Competitor intelligence (who's winning what)
- Market research (contract values and trends in your target market)
- Validating your own data against public records
Data source examples:
- Government contract databases (e.g., Canadian Public Accounts)
- Open data procurement feeds
- Vendor search results (see Vendor Search)
CSV Format Requirements
All imports use CSV (Comma-Separated Values) format. Prepare your data in Excel or Google Sheets and export as CSV.
Standard Bid Records CSV Format
Required columns:
title,issuing_organization,opportunity_value,status,outcome
All available columns:
title,opportunity_id,issuing_organization,department,opportunity_value,posted_date,deadline,submission_date,decision_date,status,outcome,bid_decision,bid_amount,awarded_amount,winner,num_bidders,known_competitors,category,location,bid_type,teaming_partners,why_won_lost,tags,notes
Column Definitions
| Column Name | Type | Format | Example | Required |
|---|---|---|---|---|
| title | Text | Any | "IT Security Services 2024-2026" | Yes |
| opportunity_id | Text | Any | "RFP-2024-12345" | No |
| issuing_organization | Text | Any | "Transport Canada" | Yes |
| department | Text | Any | "Transport Canada" | No |
| opportunity_value | Number | Numeric, no $ or commas | 500000 | Yes |
| posted_date | Date | YYYY-MM-DD | 2024-01-15 | No |
| deadline | Date | YYYY-MM-DD | 2024-02-28 | No |
| submission_date | Date | YYYY-MM-DD | 2024-02-25 | No |
| decision_date | Date | YYYY-MM-DD | 2024-04-10 | No |
| status | Text | Evaluating, Bidding, Submitted, Won, Lost, No-Bid, Cancelled | Won | Yes |
| outcome | Text | Won, Lost, No-Bid, Cancelled, Pending | Won | No |
| bid_decision | Text | Bid, No-Bid, Watch | Bid | No |
| bid_amount | Number | Numeric, no $ or commas | 475000 | No |
| awarded_amount | Number | Numeric, no $ or commas | 475000 | No |
| winner | Text | Company name | "SecureNet Solutions" | No (Yes if outcome=Lost) |
| num_bidders | Number | Integer | 5 | No |
| known_competitors | Text | Pipe-separated: Competitor1 | Competitor2 | Competitor3 | "TechCorp|SecureNet|GlobalIT" | No |
| category | Text | Any | "IT Security" | No |
| location | Text | Any | "Ottawa, ON" | No |
| bid_type | Text | Prime, Subcontractor, Team Member | Prime | No |
| teaming_partners | Text | Pipe-separated | "ABC Corp|XYZ Inc" | No |
| why_won_lost | Text | Any (recommend 1-3 sentences) | "Won due to strong past performance and competitive pricing." | No |
| tags | Text | Pipe-separated | "strategic|it-security|high-value" | No |
| notes | Text | Any | "Client expressed strong interest in our approach." | No |
Warning
Date format: Always use YYYY-MM-DD format (e.g., 2024-03-15). Formats like "3/15/24", "March 15 2024", or "15-Mar-2024" may fail validation or be interpreted incorrectly.
Numbers: Never include currency symbols ($), commas (1,000), or text ("one million"). Use plain numbers only: 1000000
Minimal CSV Example
Absolute minimum for import (just 4 required fields):
title,issuing_organization,opportunity_value,status
"IT Services Contract 2024","Transport Canada",500000,Won
"Cybersecurity Assessment","Public Safety",250000,Lost
"Cloud Migration Project","Health Canada",750000,No-Bid
Complete CSV Example
Comprehensive import with all fields:
title,opportunity_id,issuing_organization,opportunity_value,posted_date,deadline,submission_date,decision_date,status,outcome,bid_amount,winner,num_bidders,known_competitors,category,why_won_lost,tags
"IT Security Services 2024-2026","RFP-2024-001",Transport Canada,500000,2024-01-15,2024-02-28,2024-02-25,2024-04-10,Won,Won,475000,,5,"TechCorp|SecureNet|GlobalIT","IT Security","Strong past performance and competitive pricing","strategic|it-security|win"
"Cybersecurity Assessment","RFP-2024-002","Public Safety",250000,2024-02-01,2024-03-15,2024-03-12,2024-05-01,Lost,Lost,240000,"SecureNet Solutions",4,"SecureNet|TechCorp|CyberDefense","Cybersecurity","Lost to incumbent with stronger recent references","cybersecurity|loss"
"Cloud Migration Project","RFP-2024-003","Health Canada",750000,2024-03-01,2024-04-30,,,,No-Bid,No-Bid,,,,"Cloud Services","Required AWS GovCloud certification we lack","cloud|no-bid|capability-gap"
Bidder List CSV Format
For importing competitor intelligence without your own bid data:
Required columns:
opportunity_title,issuing_organization,winner,all_bidders
Example:
opportunity_title,issuing_organization,opportunity_value,decision_date,winner,awarded_amount,all_bidders
"Network Infrastructure Upgrade","Transport Canada",1200000,2024-05-15,"TechCorp Inc",1150000,"TechCorp Inc|SecureNet Solutions|GlobalIT Services|CyberDefense Corp|Innovate Systems"
"Professional Services 2024","Public Safety",600000,2024-06-01,"SecureNet Solutions",580000,"SecureNet Solutions|TechCorp Inc|ABC Consulting"
This creates competitor profiles and encounter records even for opportunities you didn't bid.
Import Process
Step-by-Step Import Wizard
Tip
Incremental imports: You don't need to import all historical data at once. Start with the most recent year, verify it looks good, then import earlier years in separate batches. This reduces risk and allows you to refine your process.
Data Preparation Best Practices
1. Clean Your Data Before Import
Fix issues in your source spreadsheet before creating the CSV:
Common cleaning tasks:
Standardize organization names:
- Choose one format: "Transport Canada" not mix of "Transport Canada", "TC", "Transport Can"
- Consistency ensures all records from same organization are linked
Standardize competitor names:
- "ABC Corporation" everywhere, not mix of "ABC Corp", "ABC Inc", "ABC Corporation"
- Prevents duplicate competitor profiles
Validate dates:
- Ensure all dates are real (no "2024-02-30")
- Decision dates after submission dates
- Deadlines after posted dates
Check numeric values:
- Remove "$" and commas from amounts
- Verify units (is 500000 = $500K or $500M in your context?)
- No zero or negative opportunity values
Standardize status values:
- Use exact required values (Won, Lost, No-Bid, etc.)
- Don't use variations ("Win", "Didn't bid", "In Progress")
2. Start with Recent Data
If you have many years of history, start with the most recent:
Why recent first:
- Most relevant to current strategy
- Easiest to verify accuracy
- Provides immediate analytics value
- Reflects current capabilities and competition
Recommended approach:
- Batch 1: Last 12 months (~30-100 records)
- Batch 2: Previous 12 months (if Batch 1 goes well)
- Batch 3: Earlier years as time permits
Benefits:
- Learn the import process on smaller batches
- Refine your CSV format based on first batch
- Immediate value from recent data while older imports continue
3. Use Consistent Categories and Tags
Plan your category and tag structure before import:
Categories (typically 5-10):
- IT Services
- Cybersecurity
- Cloud Services
- Professional Services
- Consulting
- etc.
Tags (flexible, 20-50 common ones):
- Outcome tags: win, loss, no-bid
- Priority tags: strategic, routine, opportunistic
- Category tags: it-security, cloud, consulting
- Reason tags: pricing-high, capability-gap, strong-incumbent
In your CSV:
category,tags
"IT Services","strategic|it-security|win"
"Cybersecurity","cybersecurity|loss|incumbent"
Consistent categories enable meaningful category-based analytics.
4. Don't Worry About Perfection
You can always edit records after import:
Import with what you have:
- If some fields are unknown, leave them blank
- Basic records (just title, org, outcome) still provide value
- Enrich records over time as you gather more information
Good enough beats perfect:
- Importing 100 records with 70% complete data is better than waiting to manually create 100 records with 100% complete data (which might never happen)
- Analytics work with partial data (showing confidence levels based on completeness)
Success
Quick start approach: Import with just title, issuing_organization, outcome, and decision_date. This gives you win rate analytics immediately. Add other details (bid amounts, competitors, notes) to individual records later as time permits or when information is useful.
5. Preserve Your Source Data
Keep backups before and after import:
Before import:
- Save original CSV file
- Keep source spreadsheet
- Document any transformations applied
After import:
- Export imported records from Org Intelligence
- Verify export matches your import
- Keep both for reference
Why:
- Easy to re-import if you need to delete and start over
- Historical record of your data migration
- Ability to add forgotten fields later
6. Use Descriptive Filenames
Name your import files clearly:
Good filenames:
bid_records_2024_complete.csvbid_records_2023_basic.csvbidder_lists_transport_canada_2022-2024.csv
Bad filenames:
import.csvdata.csvfinal_version_3.csv
Clear names help you track which data you've already imported and which batches remain.
Common Import Issues and Solutions
Issue: "Invalid date format" errors
Cause: Dates not in YYYY-MM-DD format
Solution:
Wrong: 3/15/2024, March 15 2024, 15-Mar-2024
Right: 2024-03-15
In Excel:
- Select date column
- Format Cells > Custom
- Use format:
yyyy-mm-dd - Export to CSV
Issue: "Must be a number" errors on opportunity_value
Cause: Currency symbols or commas in numeric fields
Solution:
Wrong: $500,000 or "five hundred thousand"
Right: 500000
In Excel:
- Find/Replace "$" with nothing
- Find/Replace "," with nothing
- Ensure column is formatted as Number, not Text
Issue: "Unknown status value" errors
Cause: Using non-standard status values
Solution:
Allowed values ONLY:
- Evaluating
- Bidding
- Submitted
- Won
- Lost
- No-Bid
- Cancelled
Not allowed: Win, Lost Bid, In Progress, Pending, Declined
Fix: Use Find/Replace to standardize to allowed values.
Issue: Many duplicate warnings
Cause:
- Actually re-importing same data
- Similar but different opportunities with same title
Solution:
If actual duplicates: Choose "Skip duplicates" option
If false positives (different opportunities, similar names):
- Make titles more specific (add year, RFP number)
- Or choose "Import as new" and manually merge true duplicates later
Issue: Competitors not creating profiles
Cause: Formatting of known_competitors field
Solution:
Correct format (pipe-separated, no spaces around pipes):
known_competitors
"TechCorp|SecureNet|GlobalIT"
Wrong formats:
"TechCorp, SecureNet, GlobalIT" ← Commas instead of pipes
"TechCorp | SecureNet | GlobalIT" ← Spaces around pipes (may work but inconsistent)
"TechCorp; SecureNet; GlobalIT" ← Semicolons
Issue: Import succeeds but data looks wrong
Common causes:
Amounts off by 1000x:
- Check if your source data was in thousands (500 = $500K) but you imported as full value
- Solution: Re-import with corrected amounts, or bulk-edit to multiply by 1000
Dates shifted:
- Excel may have converted dates to different format during CSV export
- Solution: Open CSV in text editor to verify dates, re-export if corrupted
Text truncated:
- Very long text fields may have been cut off
- Solution: Check CSV character limits, may need to abbreviate or import notes separately
Issue: Import times out or fails with large files
Cause: Importing too many records at once (e.g., 5000+ records)
Solution:
- Split into smaller batches (200-500 records per import)
- Import chronologically (oldest to newest) or by category
- Contact support if persistent issues with large datasets
Advanced Import Techniques
Using Templates for Consistency
Create reusable CSV templates for common import scenarios:
Template: Basic Wins/Losses
title,issuing_organization,opportunity_value,decision_date,outcome,bid_amount,winner
[Fill in data rows]
Template: No-Bid Tracking
title,issuing_organization,opportunity_value,deadline,outcome,why_won_lost,tags
[Data rows with outcome=No-Bid]
Template: Competitor Intelligence
opportunity_title,issuing_organization,opportunity_value,decision_date,winner,awarded_amount,all_bidders
[Market intelligence rows]
Bulk Competitor Intelligence Import
Import competitor data without your own bid involvement:
Use case: You want to track what competitors are winning even in opportunities you didn't bid.
Process:
- Gather public award data (government contract databases)
- Create CSV with opportunity, winner, bidders
- Import as "Bidder List" type
- System creates competitor profiles and encounter records
- Analytics now include market intelligence beyond just your bids
Example CSV:
opportunity_title,issuing_organization,opportunity_value,decision_date,winner,awarded_amount,all_bidders
"Cloud Services 2024","Transport Canada",800000,2024-05-15,"CloudTech Inc",780000,"CloudTech Inc|SecureCloud|GlobalIT|CyberDefense"
"Network Upgrade","Public Safety",1200000,2024-06-01,"SecureNet Solutions",1150000,"SecureNet Solutions|TechCorp|NetworkPro"
This builds competitor intelligence even for opportunities you didn't pursue.
Incremental Updates to Existing Records
Update existing records with new information:
Use case: You initially imported basic records (just title, org, outcome) and later gathered additional details (bid amounts, competitors, notes).
Process:
- Export existing records to CSV
- Add new columns or fill in blanks
- Re-import with "Update existing records" option
- New information is added to existing records without duplicating
Example:
Original import (basic):
title,issuing_organization,outcome
"IT Services 2024","Transport Canada",Won
Update import (add details):
title,issuing_organization,outcome,bid_amount,known_competitors,why_won_lost
"IT Services 2024","Transport Canada",Won,475000,"TechCorp|SecureNet","Strong past performance and competitive pricing"
Record is updated with new fields without creating a duplicate.
Combining Multiple Sources
Merge data from different sources into a comprehensive import:
Example scenario:
- Your internal spreadsheet has titles, outcomes, and bid amounts
- Your financial system has contract values and dates
- Debrief letters have competitor lists
Process:
- Export all three sources
- Use Excel VLOOKUP or similar to merge on common key (e.g., opportunity ID or title)
- Create single comprehensive CSV
- Import once with full data
Result: Richer records than any single source could provide.
Post-Import Actions
1. Verify Import Accuracy
Spot-check imported records:
If issues found, you can delete the import batch and re-import with corrections.
2. Enrich Imported Records
Improve imported data over time:
Priority enrichment (do first):
- Add missing competitors to high-value bids
- Fill in "why we won/lost" for key wins and losses
- Add tags to enable filtering
Ongoing enrichment:
- Attach documents (RFPs, proposals) to important records
- Add intelligence notes as you remember details
- Update competitor information as you learn more
Bulk enrichment:
- Use filters to select groups of records (e.g., all 2024 Transport Canada bids)
- Bulk-add tags or update categories
- More efficient than one-by-one editing
3. Review Auto-Created Competitor Profiles
Imported bid records create competitor profiles automatically:
4. Configure Analytics Baselines
Use imported historical data to set performance baselines:
Establish metrics:
- Historical win rate (e.g., 35% over last 2 years)
- Average deal size (e.g., $450K)
- Pipeline velocity (e.g., 45 days evaluation → 20 days bidding)
Set improvement targets:
- Win rate: Increase from 35% to 40% in next year
- Deal size: Pursue larger opportunities (avg $550K)
- Velocity: Reduce evaluation time from 45 to 30 days
Historical data provides the baseline; ongoing tracking measures improvement.
5. Share with Your Team
Announce the import to your organization:
Communication:
- "We've imported 3 years of bid history into Org Intelligence"
- "Analytics now available showing win rates, competitor intelligence, and trends"
- "Explore the Analytics dashboard to see insights from our historical performance"
Training:
- Show team how to access and use imported data
- Demonstrate analytics dashboards
- Explain how to enrich records over time
Ongoing Import Strategy
Regular Import Schedule
Don't import once and forget—establish routine imports:
Monthly or Quarterly:
- Export recent bid records from other systems (CRM, financial)
- Import to keep Org Intelligence current
- Supplements manual record creation
Annually:
- Import public contract award data for competitor intelligence
- Refresh competitor profiles with market data
- Archive very old records to keep active data relevant
Maintaining Data Quality
As you import regularly, maintain quality:
Duplicate prevention:
- Use consistent opportunity IDs across imports
- System will detect and skip duplicates automatically
Standardization:
- Keep list of standard organization names, categories, tags
- Apply consistently across all imports
- Prevents fragmentation
Validation:
- Always run validation before final import
- Fix errors in source system to prevent recurring issues
- Document any manual transformations needed
Frequently Asked Questions
Next Steps
Success
A well-executed import transforms years of scattered bid history into actionable intelligence in hours. Start with a small test batch, refine your process, then import comprehensively to unlock immediate analytics value.
Related Articles
Was this page helpful?