Overview: Data Download

The data is compressed, quoted, escaped and without a header. To properly import, use Python’s pandas using code in “How to read this CSV file” under each button. No need to decompress files.

Projects

All classroom projects that have been posted to the site, including lots of school info such as its NCES ID (government-issued), lat/long, and city/state/zip.

Projects data documentation

download project data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
projects = pandas.read_csv(‘opendata_projects000.gz’, escapechar=’\\’, names=[‘_projectid’, ‘_teacher_acctid’, ‘_schoolid’, ‘school_ncesid’, ‘school_latitude’, ‘school_longitude’, ‘school_city’, ‘school_state’, ‘school_zip’, ‘school_metro’, ‘school_district’, ‘school_county’, ‘school_charter’, ‘school_magnet’, ‘school_year_round’, ‘school_nlns’, ‘school_kipp’, ‘school_charter_ready_promise’, ‘teacher_prefix’, ‘teacher_teach_for_america’, ‘teacher_ny_teaching_fellow’, ‘primary_focus_subject’, ‘primary_focus_area’ ,’secondary_focus_subject’, ‘secondary_focus_area’, ‘resource_type’, ‘poverty_level’, ‘grade_level’, ‘vendor_shipping_charges’, ‘sales_tax’, ‘payment_processing_charges’, ‘fulfillment_labor_materials’, ‘total_price_excluding_optional_support’, ‘total_price_including_optional_support’, ‘students_reached’, ‘total_donations’, ‘num_donors’, ‘eligible_double_your_impact_match’, ‘eligible_almost_home_match’, ‘funding_status’, ‘date_posted’, ‘date_completed’, ‘date_thank_you_packet_mailed’, ‘date_expiration’])

Donations

All donations, including donor city, state, and partial-zip (when available).

Donations data documentation

download donation data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
donations = pandas.read_csv(‘opendata_donations000.gz’, escapechar=’\\’, names=[‘_donationid’, ‘_projectid’, ‘_donor_acctid’, ‘_cartid’, ‘donor_city’, ‘donor_state’, ‘donor_zip’, ‘is_teacher_acct’, ‘donation_timestamp’, ‘donation_to_project’, ‘donation_optional_support’, ‘donation_total’, ‘donation_included_optional_support’, ‘payment_method’, ‘payment_included_acct_credit’, ‘payment_included_campaign_gift_card’, ‘payment_included_web_purchased_gift_card’, ‘payment_was_promo_matched’, ‘is_teacher_referred’, ‘giving_page_id’, ‘giving_page_type’, ‘for_honoree’, ‘thank_you_packet_mailed’])

Project resources

All materials/resources requested for the classroom projects, including vendor name.

Project resources documentation

download resource data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
resources = pandas.read_csv(‘opendata_resources000.gz’, escapechar=’\\’, names=[‘_resourceid’, ‘_projectid’, ‘vendorid’, ‘vendor_name’, ‘item_name’, ‘item_number’, ‘item_unit_price’, ‘item_quantity’])

Project written essays

Full text of the teacher-written requests accompanying all classroom projects.

Project essays documentation

download essay data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
essays = pandas.read_csv(‘opendata_essays000.gz’, escapechar=’\\’, names=[‘_projectid’, ‘_teacherid’, ‘title’, ‘short_description’, ‘need_statement’, ‘essay’, ‘thankyou_note’, ‘impact_letter’])

Giving Pages

All website communities (giving pages).

download giving page data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
giving_pages = pandas.read_csv(‘opendata_giving_pages000.gz’, escapechar=’\\’, names=[‘giving_page_id’, ‘_creator_acctid’, ‘created_date’, ‘is_active’, ‘most_recent_donation’, ‘amount_raised’, ‘number_of_donors’, ‘number_of_students’, ‘number_of_projects_supported’, ‘number_of_teachers’, ‘number_of_schools’])

download project list associated with each giving page

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
giving_page_projects = pandas.read_csv(‘opendata_giving_page_projects000.gz’, escapechar=’\\’, names=[‘giving_page_id’, ‘_projectid’])

Gift cards

All website-purchased gift cards, including donor and recipient city, state, and partial-zip (when available).

Giftcard data documentation

download giftcard data

How to read this CSV file

To properly process this quoted and escaped csv file, use pandas and import like so:
giftcards = pandas.read_csv(‘opendata_giftcards000.gz’, escapechar=’\\’, names=[‘_giftcardid’, ‘dollar_tier’, ‘_buyer_acctid’, ‘buyer_city’, ‘buyer_state’, ‘buyer_zip’, ‘date_purchased’, ‘_buyer_cartid’, ‘_recipient_acctid’, ‘recipient_city’, ‘recipient_state’, ‘recipient_zip’, ‘redeemed’, ‘date_redeemed’, ‘_redeemed_cartid’, ‘payment_method’, ‘payment_included_acct_credit’, ‘payment_included_campaign_gift_card’, ‘payment_included_web_purchased_gift_card’, ‘payment_was_promo_matched’])

 

Schema diagram

DonorsChoose-org-data-schema-04012011

We have also published some scripts to help you load the data into your db of choice and into partially normalized tables more suitable for exploration with SQL.

License

This work by DonorsChoose.org is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License (CC BY-NC 3.0).

Commercial usage guidelines

If you’d like to use this data for commercial purposes, get in touch with us and tell us a bit about your plans. Our strong preference is to greenlight your commercial application with no licensing fees, and we have never charged for access to our API or data. We just need to make sure that the application won’t run contrary to our org’s mission, abuse the rich content that our teachers have created, etc.

Thank you to our generous funders: The Anthony E. Meyer Family Foundation and Michael C. Lewis. Also thank you to our judges, our sponsors, Clay JohnsonFrankie Cheung, and Ben Millard.