C
Docs

Importing Data

Bulk import historical bid records, bidder lists, and contract data with CSV validation and duplicate detection

Updated 2026-03-3026 min read

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 NameTypeFormatExampleRequired
titleTextAny"IT Security Services 2024-2026"Yes
opportunity_idTextAny"RFP-2024-12345"No
issuing_organizationTextAny"Transport Canada"Yes
departmentTextAny"Transport Canada"No
opportunity_valueNumberNumeric, no $ or commas500000Yes
posted_dateDateYYYY-MM-DD2024-01-15No
deadlineDateYYYY-MM-DD2024-02-28No
submission_dateDateYYYY-MM-DD2024-02-25No
decision_dateDateYYYY-MM-DD2024-04-10No
statusTextEvaluating, Bidding, Submitted, Won, Lost, No-Bid, CancelledWonYes
outcomeTextWon, Lost, No-Bid, Cancelled, PendingWonNo
bid_decisionTextBid, No-Bid, WatchBidNo
bid_amountNumberNumeric, no $ or commas475000No
awarded_amountNumberNumeric, no $ or commas475000No
winnerTextCompany name"SecureNet Solutions"No (Yes if outcome=Lost)
num_biddersNumberInteger5No
known_competitorsTextPipe-separated: Competitor1 | Competitor2 | Competitor3"TechCorp|SecureNet|GlobalIT"No
categoryTextAny"IT Security"No
locationTextAny"Ottawa, ON"No
bid_typeTextPrime, Subcontractor, Team MemberPrimeNo
teaming_partnersTextPipe-separated"ABC Corp|XYZ Inc"No
why_won_lostTextAny (recommend 1-3 sentences)"Won due to strong past performance and competitive pricing."No
tagsTextPipe-separated"strategic|it-security|high-value"No
notesTextAny"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.csv
  • bid_records_2023_basic.csv
  • bidder_lists_transport_canada_2022-2024.csv

Bad filenames:

  • import.csv
  • data.csv
  • final_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:

  1. Select date column
  2. Format Cells > Custom
  3. Use format: yyyy-mm-dd
  4. 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:

  1. Find/Replace "$" with nothing
  2. Find/Replace "," with nothing
  3. 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:

  1. Gather public award data (government contract databases)
  2. Create CSV with opportunity, winner, bidders
  3. Import as "Bidder List" type
  4. System creates competitor profiles and encounter records
  5. 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:

  1. Export existing records to CSV
  2. Add new columns or fill in blanks
  3. Re-import with "Update existing records" option
  4. 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:

  1. Export all three sources
  2. Use Excel VLOOKUP or similar to merge on common key (e.g., opportunity ID or title)
  3. Create single comprehensive CSV
  4. 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.

Was this page helpful?

Importing Data | Cothon Docs | Cothon