About This Project
At most of their public meetings, the OUSD School Board approves tens of millions of dollars in spending, in the form of dozens to hundreds of contracts, grants and agreements in one, sweeping vote called theGeneral Consent Report. It is up to both the board and the public to try and read through the entire consent report, often with only a few days notice before it is presented and voted on, in the form of a cluttered PDF or antiquated web platform.
This tool exists to make that process much easier, more organized, and historically trackable. It is built using official public data surfaced by OUSD's Legistar system, and is more or less a consolidated interface that organizes that data for higher transparency and understanding.
I am an involved parent of two OUSD students, and have struggled to understand the official language in basically every consent report. I have also been a web developer for over two decades, and wanted to find a way to leverage LLMs (AI) to systematically decode and demystify these reports as they come out. Massive expenditures of funds are approved by the board in the form of these blanket votes each year. While the district does provide all this information publicly, it clearly has neither the time or resources to present it in a user-friendly format. I do not believe this is done intentionally, but it is a critical gap in the transparency that we depend on to make informed decisions about the district's future.
This project was built to help our school board, district leadership, and the rest of the OUSD community find a set of shared facts about how money is spent here, in the hopes of fostering trust and collaboration between all of us.
Get notified
Sign up to get one email per meeting, sent once the plain-English summaries for that meeting's consent report are ready, usually a few days before the Board votes. You'll confirm your address first, and every email has an unsubscribe link. Your address is only used for these alerts.
How this project uses Artificial Intelligence
AI models are used in a few specific, limited steps. Everything else, including fetching the official records, checking amounts, adding up totals, and most flags, is done by ordinary code with no AI involved. The official text from Legistar is never changed, and it's always shown alongside anything AI wrote about it.
AI-written text is called out as AI-generated throughout this tool, marked with this little robot. Summaries, vendor descriptions and AI-confirmed discrepancies each carry their own label. Item headlines, which appear in long lists, are written by the same AI step as the summaries and are covered by the notice at the bottom of every page rather than labeled one by one.
Item headlines and summaries
For each consent item, an AI model reads only the official item text and writes a short plain-English headline and a 2–3 sentence summary. It's instructed to use neutral language, spell out jargon, avoid speculating beyond the text, and describe individual contractors by role rather than name. Every summary carries a label saying it was written by AI, along with its review status; headlines share that summary's label on the item's own page.
Reading the facts from the text
The same AI step pulls structured facts out of the official text: the vendor, any schools named, the contract dates, and the dollar amounts (what this vote adds, prior and new totals, and whether it's a yearly cap). These are then checked in code:
- Every amount must appear, word for word, in the official text. If it doesn't, the summary isn't published and the item shows the official text alone.
- A second, independent AI reading re-reads the money on items where a check raises a question, without seeing the first answer. If the two disagree in a way that changes totals, a third reading breaks the tie.
- A human is alerted and an item flagged for manual review if disagreement is material (over $10,000 and over 1% of the item) or the official text leaves the money genuinely unclear.
Categories and action types
The AI model assigns each item one category (see Categories), a sub-category when the category is Special education, and one action type, such as new agreement, amendment or change order, using the written definitions on this page. These are this tool's classification, not fields from Legistar, and they're labeled as AI-assigned where they're summarized.
Flags
A few flags, such as “no competitive bid” or “emergency”, are judgments read from the text by AI. Most, such as “raises an existing contract” or “work began before approval”, are computed in code from the facts above. Each flag in the list below says which kind it is. When the AI notices a possible error or inconsistency in the official text itself, it's shown only after it's confirmed by arithmetic in code, a second independent AI reading, or a human, and the item says which.
Vendor descriptions
Some vendor pages have a short description with public contact details, marked with a checkmark in the vendor list and labeled as AI-researched. An AI model researches the vendor from public sources such as its own website and state, IRS and federal registries. The description is published only when:
- the model is highly confident it found the right organization, with at least two independent matches;
- a second, independent AI review checks the sources and agrees;
- every phone number, email, address and registry ID is found, word for word, on a page it cites.
Anything that doesn't pass is left out. A vendor can lack a description because it has little public presence online, its name matches other organizations, its sources couldn't be verified, or it hasn't been researched yet. Individual contractors are never researched. Descriptions don't come from OUSD or Legistar and may be out of date.
Where AI is not used
- Fetching meetings, items, votes, attachments and history from Legistar.
- Matching vendor records across meetings (done by rule, with hand-edited corrections).
- Totals, charts, and the “next consent report” preview.
- The official item text, which is always shown as published by OUSD.
How money is counted
Every item that involves money shows one main dollar figure: what this vote approves. Here's what that means in different situations, and how the meeting totals are added up.
- New contracts show the most the district has agreed it could pay. Most contracts set a ceiling (“not to exceed”), so the district may end up paying less, but never more without a new vote.
- Changes to existing contracts show only the new money being added, not the contract's new overall total. For example, if a $100,000 contract is raised to $150,000, this vote is $50,000. The earlier $100,000 was already approved at a past meeting, so counting it again would double-count it.
- Money coming in, such as grants the district receives, is counted separately from spending. Cuts to existing contracts aren't subtracted from spending either; they're noted on the item.
- Yearly limits: some agreements set a maximum per year instead of one overall amount. Adding a per-year figure to one-time amounts would mix two different things, so these are shown on their own, as a per-year total.
- Sales limits on auctions of surplus district property aren't spending, so they're left out of spending totals.
Every dollar figure comes straight from the official text. Nothing is estimated or filled in: if the text doesn't state an amount, none is shown. Meeting totals are simply these figures added together, and amounts are only rounded for display (for example, $1.2M), never in the underlying data.
Flags
Flags describe procedures, not motives. Most flagged items are routine and legal.
| Flag | What it means | How it's set |
|---|---|---|
| Voted on separately | Taken off the single consent-report vote: voted on separately, or withdrawn, referred, postponed or decided at a later meeting. From Legistar’s official record. | Computed in code |
| Ratifies payments already made | Payroll or vendor checks the district has already paid, under contracts and salaries approved elsewhere. Shown here but not counted as new spending. | Computed in code |
| Grant application | The district is applying for this money, not receiving it yet. Not counted as money coming in; an award usually comes back to the Board to be accepted. | Computed in code |
| Budget allocation | The district dividing up its own funds, such as a Measure N, G1 or H plan, budget or carryover. Not counted as spending: the money is spent through contracts that come to the Board separately. | Computed in code |
| After work began | The agreement’s start date is before this meeting, or it is a ratification with no start date stated. | Computed in code |
| No bid | Bought through another agency’s contract, a state schedule, or a legal exception to bidding. This describes the method; it is often legal. | Read from the text by AI |
| Raises existing contract | An expense where the text states both a previous and a new total, and the new total is higher. | Computed in code |
| Large increase | Raises an existing contract by half or more of its previous total. | Computed in code |
| Text discrepancy | A reviewer confirmed the official text has an error: numbers that don’t add up, a misprint, or a title that doesn’t match. | Computed in code |
| Delayed at earlier meeting | The item was postponed, continued or failed at an earlier meeting. | Computed in code |
| Yearly cap | Sets a limit per year rather than a total. Kept out of spending totals. | Computed in code |
| No total stated | A yearly cap over more than one year, with no overall total in the text. | Computed in code |
| Multi-year | The term spans more than one school year. | Read from the text by AI |
| Time extension only | Extends the end date without adding money. | Read from the text by AI |
| Emergency | The text describes emergency work or emergency contracting. | Read from the text by AI |
Categories
Each item gets exactly one category, based on what the money or agreement is for. When an item could fit more than one, it goes where its purpose is clearest. For example, busing and legal work for special education are under Special education, and software bought for a specific program goes with that program rather than under Technology.
| Category | What it covers |
|---|---|
| Special education | Nonpublic school and agency contracts, special-ed transport, related services and contract staff for students with IEPs, school psychology interns, special-ed legal, SELPA and special-ed compliance, special-ed grants. Doesn't include: General student health. |
| Classroom & academic programs | Curriculum, instructional services, teacher training tied to instruction, field trips, college and career pathways, arts, music, sports and mentoring during the school day. Doesn't include: After-school providers; Measure N, H and G1 plans and budgets (Budget, finance & payments). |
| After-school & summer programs | Programs the text places outside the school day: after school, before school, expanded learning (ELO-P, ASES, 21st Century), summer, intersession, breaks, Saturdays. Doesn't include: Daytime enrichment (Classroom & academic programs). |
| Student health, support & family services | Health centers, counseling, translation and interpretation, family engagement, newcomer support. Doesn't include: Special-ed services. |
| School buildings & construction | Bond projects, design, construction management, inspections, change orders, environmental testing and hazardous-materials cleanup at school sites. Doesn't include: Routine maintenance contracts. |
| Food, transportation & operations | Nutrition purchasing, activity buses, waste, routine maintenance, furniture and supplies, auctions. Doesn't include: Special-ed busing. |
| Technology | Software licenses, devices, IT services. Doesn't include: Tech purchased for a program, when the program is clearer. |
| Staff & hiring | Personnel reports, job descriptions, union agreements, recruitment, workforce grants, teacher-residency and fieldwork partnerships. Doesn't include: Payroll ratifications (Budget, finance & payments). |
| Legal, compliance & risk | Outside counsel, compliance monitoring and reporting, claims administration, insurance premiums, risk services. Doesn't include: Special-ed legal (Special education); environmental cleanup at sites (School buildings & construction). |
| School plans | Approvals of the annual per-school plans themselves: School Plans for Student Achievement (SPSAs) and school safety plans. Doesn't include: Consultants who help write a plan (they go with the plan's subject). |
| Partnerships & data sharing | No-cost agreements and data-sharing agreements without a clearer program home. |
| Budget, finance & payments | Budget adoptions and revisions, interim reports, audits, Measure N, H and G1 plans and carryovers, fund transfers, warrant and payroll ratifications, election costs for bond measures. |
| Governance & board business | Resolutions, board policies, commission items, real property and leases, minutes, appointments, legislative positions. Doesn't include: Budget and finance items. |
A note on “Special Education”
“Special Education” is about a quarter of the consent-report spending this tracker counts, and it's the hardest category to read. The label covers very different things: full-time placements of students in private schools, therapists and nurses, busing, training, legal settlements, and everyday kinds of support, like staff who cover leaves and vacancies, that would be filed somewhere else if they didn't touch a student with an IEP.
Most of the money goes to nonpublic schools (NPS) and nonpublic agencies (NPA), which are very different. A nonpublic school is a state-certified private school where the district places a student full time, sometimes residentially. A nonpublic agency provides services like speech, occupational or behavioral therapy to students who stay in district schools. But the official text for most of these contracts is the same template wording, a not-to-exceed amount “to provide Special Education services,” so the public record rarely says which kind of provider it is, what's being bought, or for how many students.
The sub-categories below are my best attempt at sorting it out. Please read any “Special Education” total as a reason to ask questions, not as a conclusion. I wrote more about this in Addendum: First Revelations from the Consent Report Tracker.
Special education sub-categories
Each Special education item also gets one sub-category, assigned by AI the same way as its category, from the official text.
| Sub-category | What it covers |
|---|---|
| Nonpublic schools & agencies | Annual nonpublic school and agency master authorizations, individual placements including out-of-state residential schools, and paying or receiving money from another district for a student's placement. |
| Transportation | Busing, cabs and other transport to placements and services. |
| Services & contract staff | Therapists (speech, occupational, physical), nurses and health aides, psychologists and psychiatrists, behavior specialists, mental-health providers, interpreters and ASL, evaluators and assessors, whether a staffing agency or an individual contractor. |
| Programs & support | Tutoring and compensatory services, transition and vocational programs, staff training and coaching, intern stipends and fieldwork agreements, consultants, software and materials. |
| Legal, compliance & policy | Attorneys, mediators, due process and settlements, compliance assurances, resolutions, SELPA governance, special-ed grant acceptances and budget items. |
Action types
- New agreement: A new contract or agreement with a vendor or partner.
- Amendment: A change to an existing contract, such as adding money, time or work.
- Change order: A change to the work or price of a construction project already under contract.
- Bid award: Awarding a contract to the winner of a competitive bid.
- Cooperative purchase: Buying through a contract another public agency already bid out (sometimes called "piggybacking"), instead of running the district's own bid.
- MOU or data sharing: A memorandum of understanding (MOU) or data-sharing agreement, usually with a partner organization and often at no cost.
- Grant or funding in: Accepting a grant or other money coming in to the district.
- School plan: Approving a school's annual School Plan for Student Achievement (SPSA).
- Personnel: Staffing matters, such as personnel reports, job descriptions and employee agreements.
- Resolution or policy: A board resolution or a new or updated board policy.
- Termination: Ending an existing contract or agreement.
- Other: Anything that doesn't fit the types above.
Data
All of the data behind this tool, and the code that produces it, is public in the ousd-consent-data repository on GitHub, with a mirror on Codeberg. It includes the official record from Legistar for every meeting, every AI summary and second reading (each with the model and instructions that produced it), every correction, and the published files this site is built from, as JSON and as spreadsheet-friendly CSV. Each meeting page here also links to its own data as JSON.
The repository's history is a public record of every agenda revision, outcome and correction. The code is under the MIT license. This project's own work (headlines, summaries, classifications, flags, second readings and vendor profiles) is under CC BY 4.0; please credit “OUSD Consent Tracker, Oakland vs. the World” and link back. The official text is a public record of the Oakland Unified School District. Tagged releases are archived with a DOI for citing.
Corrections and reporting a problem
When a published claim changes (an amount, vendor, category, flag or the meaning of a summary), the item shows the date and a note. Corrections made by a person always take precedence over what the AI wrote.
If something looks wrong, first compare it with the item's official page on Legistar, which every item links to:
- If Legistar has the same problem, it's an error in OUSD's own records, which only the district can fix. Contact the Office of the Board of Education at boe@ousd.org or (510) 879-1940.
- If Legistar is right and this tool is wrong, please open an issue in the data repository using the “Something's wrong with an item” form. It asks for the meeting date, the item's file number and what the official text says, which is everything needed to check and fix it.
This project is maintained by one busy, human dad. Every report gets read, but it may take a little while to get to stuff.
Disclosure
This tool was created and is maintained as a personal project by Matt Glaser, an OUSD parent and volunteer serving as a lead delegate to OUSD's LCAP Parent and Student Advisory Committee (PSAC), as a founding member of the Multi-Stakeholder Engagement Group (MSEG), a community engagement body established under PSAC, and as the chair of the Peralta Elementary's School Site Council (SSC).
The General Consent Tracker is presented with best intentions but is not meant to speak for, and has not been reviewed by, PSAC, MSEG, any school site council, the Board of Education or the OUSD itself. Engineering, compute and hosting costs are donated by Aleph.