From 2022 through 2024, the companies collecting waste under LA’s commercial franchise (RecycLA) reported 4.8 million tons of material. The accounting behind the program’s diversion claim credits a load as diverted the moment it first arrives anywhere other than a landfill — a transfer station or sorting facility counts, even when the paper trail ends at the gate. Read that way, the reports produce a 41.66% diversion rate. Counting only destinations the records can support, the rate is 18.48%–24.05%.
docs/audit/2025_tranche.md.
Change in reported tonnage, 2024 → 2025 · 11 franchise zones
Bars show percentage change, so the three streams stay comparable despite black-bin tonnage being sixteen times green-bin tonnage. The organics decline is a steady drift rather than a single drop — month-to-month variation is larger than the trend — but it runs in the same direction all year, in the fourth year of SB 1383. Both years cover the 11 franchise zones only.
This report is about what the public records can verify — not what may have happened outside those records.
The data here comes from RecycLA Service Provider tonnage reports: monthly commercial-franchise waste reports filed by the companies that collect waste under Los Angeles’s commercial franchise system. The dataset covers January 2022 through December 2024. It does not include residential blue-bin or green-bin material, self-haul, construction and demolition debris, medical or hazardous waste, electronic waste, or other waste streams outside the RecycLA commercial franchise.
A few terms matter before the findings begin. The one that matters most: in these records, “diversion” is often an accounting status assigned before the final outcome is visible — that distinction is the central issue in this report. The full glossary is in the fold below.
Diversion means material counted as not landfilled. In ordinary public language, diversion often implies recycling, composting, reuse, or some other recovery outcome. In the records reviewed here, however, diversion is often an accounting status assigned before the final outcome is visible. That distinction is the central issue in this report.
First-stop accounting means crediting material based on where it first arrives. If a load goes to a sorting facility, compost facility, transfer station, or other non-landfill destination, a first-stop formula may treat that load as diverted even if the records do not show what happened afterward.
Final fate means the last outcome the records can support: landfill disposal, verified arrival at a recovery-type facility, or an unresolved endpoint. This report follows each load as far as the records name a next facility. When the chain stops at a transfer station, a sorting facility, or a generic “processed” status with no onward destination, the report does not assume recycling happened.
Transfer stations are facilities where material is consolidated or routed elsewhere. Arrival at a transfer station is not the same as recycling or composting. If the records stop at the transfer-station gate, the material is unresolved.
MRFs, or materials recovery facilities, are sorting facilities. They may recover recyclables, but arrival at a MRF is not the same thing as confirmed recycling. A load can enter a sorting facility and still leave as disposal, residual, transfer, commodity, organics, or another category. This report treats MRF arrival as evidence of arrival, not proof of recovery.
Unknown means the destination could not be resolved to a known facility type. It does not mean landfill, and it does not mean diversion. It means the record is unclassifiable.
First-stop rate: counts anything not first reported as landfill as diverted. This is the most generous reading and is closest to the apparent accounting logic criticized in this report.
Conservative / all-tons rate: counts only material with a supportable non-landfill endpoint as diverted. Unknown and unresolved transfer-station tonnage count against the rate.
Known-destinations-only rate: uses the same numerator as the conservative rate, but sets aside unresolved tonnage instead of counting it against the rate.
The outside evidence layers are cross-checks, not perfect tracking systems. CalRecycle’s RDRS data shows disposal-stream activity at facilities; it does not see all recycling or composting inflows. LA County outbound data can show a facility’s overall outbound mix where available, but it is facility-wide, not load-specific. SB 1383 Report 9 data describes organics routing reported by facilities, not the final composting outcome of RecycLA loads.
So the report’s claim is deliberately narrow: these records verify landfill disposal at scale, but they do not verify much of what is counted as diversion. The report does not prove that every unverified ton was landfilled. It shows that Los Angeles’s public commercial-waste records often stop before recycling, composting, or other recovery can be confirmed.
From 2022 through 2024, LA’s commercial waste franchise reported 4.8 million tons of material.
The records document reported landfill destinations at scale. They do not document recycling or composting outcomes with the same completeness. Using only destinations the records can support, the commercial diversion rate is 18.48%–24.05%. The low end of that range is a floor, not an estimate: it counts every unresolved ton as if it were not diverted. A first-destination reading of the submitted reports produces 41.66% — but reaching that number requires crediting material as diverted even when these records do not identify a final outcome.
This report does not prove that every unverified ton was landfilled. It shows something narrower and still consequential: the public records do not substantiate recovery outcomes for much of the tonnage credited as diversion under that reading.
| Rate | What it counts as diverted | Why it matters |
|---|---|---|
| First-stop rate · 41.66% | Anything not first reported as landfill | Shows the result of crediting reported first destinations |
| Conservative / all-tons rate · 18.48% | Only material with a supportable non-landfill endpoint; unresolved tonnage counts against the rate | Best test of what the records can verify |
| Known-destinations-only rate · 24.05% | Same, but unresolved tonnage is set aside entirely | Shows performance among classifiable records |
docs/audit/independent_recompute.md ·
docs/audit/facility_type_verification.md)
diversion_rates.csv, ALL rows;
docs/methodology.md §3 and Finding 1.
SB 1383 — the state law this program’s organics stream exists to serve — took effect in January 2022, the first month of this data. If the program were gaining ground, this chart would climb. It never does. The supportable diversion rate fell every year, under every definition: the conservative rate (D2) from 21.9% to 17.8% to 15.6%, the classifiable-only rate (D3) from 28.2% to 23.1% to 20.7%.
Even the generous first-stop formula — the one that counts every unresolved ton as diverted — fell, from 44.2% to 40.7% to 40.0%. Because that formula is simply 100% minus the landfill share, its decline is driven entirely by the one well-verified number in these records: the share of tonnage reported to landfill rose from 55.8% in 2022 to 60.0% in 2024.
The shaded band is the range the records support — the two definitions from §1.
diversion_rates.csv (copy of csv_outputs/diversion_rates.csv; 36 monthly periods ×
D2/D3; yearly rates recomputed from the same bucket columns) · docs/methodology.md §3 (definitions), Finding 1 (full-period rates)
& Finding 8 (the declining trend and its records-quality caveat).
The same monthly data, decomposed into the four buckets on which the definitions differ. “Diverted (classifiable)” is D2’s numerator: total minus landfill, unknown, and transfer.
diversion_rates.csv columns tonnage_total / tonnage_landfill / tonnage_unknown / tonnage_transfer
(diverted = total − landfill − unknown − transfer, each load classified at the last facility
its reports name) · docs/methodology.md §3 & Finding 2.
The range exists because the records stop. The largest unresolved bucket is transfer stations and known processing sites: – of this tonnage can only be followed to an intermediate endpoint. Counting that material as "diverted" is exactly what separates a higher headline rate from the supportable range above.
diversion_rates.csv (monthly D2 rows,
tonnage_transfer ÷ tonnage_total per year) ·
docs/methodology.md Finding 8.
docs/methodology.md Finding 8.
standardized_waste_data.csv, grouped by
Zone (the four small Studio- sub-zones are folded into their base
zones); dead-ended = Final_Facility_Type is transfer ·
docs/methodology.md Finding 10 ·
docs/audit/exploratory_findings_phase2_2026-07-08.md X5.
docs/audit/exploratory_findings_phase2_2026-07-08.md X5).
If the records stop at transfer stations, the next question is whether outside records add context about the receiving facilities. Sometimes they do.
This section uses CalRecycle’s Recycling and Disposal Reporting System (RDRS), the state’s facility-level disposal data; an LA County outbound file adds all-stream context at Puente Hills below.
For – of the transfer wedge, the receiving facilities also appear in CalRecycle’s disposal records. Those records do not track LA’s loads end to end, and they never report recycling or composting inflows. But they do show that the matched facilities reported a disposal stream that was overwhelmingly landfill-bound.
transfer_fate.csv columns cr_landfill_share /
our_tonnage (copy of csv_outputs/transfer_fate.csv) ·
docs/audit/transfer_fate_analysis.md §3, §7. Shares are of
RDRS-reported disposal-stream throughput, all customers — where recyclable
streams bypass RDRS disposal reporting, they overstate the landfill share of total
facility throughput.
transfer_fate.csv columns
our_tonnage × cr_landfill_share = est_our_tonnage_to_landfill
(summary rows ALL_TRANSFER / ALL_MRF / ALL) ·
docs/audit/transfer_fate_analysis.md §3, §4. Percentage-point figures are of the
– total reported RSP tonnage.
docs/audit/transfer_fate_analysis.md §3 (figures quoted, not
recomputed): the matched wedge splits into a black-bin/MSW portion of 666,440.50 t
(62.12%), for which an estimated 98.88% continued to landfill per the facilities'
independently reported outbound splits, and a blue+green portion of 275,370.74 t
(25.67%) that is explicitly indeterminate — it may have entered the disposal stream, or
traveled outside the extract's disposal-reporting scope entirely; the extract cannot say which.
131,098.03 t (12.22%) is unmatched and stays unaccounted for. Under either reading the transfer
wedge remains unconfirmed diversion; nothing here moves the audited range upward (§6).
Transfer stations explain why some tonnage cannot be classified. MRFs show a different problem: some tonnage is classified as diverted before recycling is proven. Transfer-station material is unresolved and does not count as diverted under the conservative rate; MRF material does count — and the same independent disposal records suggest a harder reading:
The blue bin is the clearest test of LA’s diversion accounting because its public promise is simple: recycling.
From 2022 through 2024, LA’s commercial franchise reported – of blue-bin material. The records count – of it as diverted because its reported destination was a sorting facility — of the entire program’s tonnage rests on that one accounting rule.
But recycling happens after that door, and these public records do not follow it there. No blue-bin ton is confirmed recycled end-to-end in the public records reviewed here — and for this stream there is no public recycling-outcome metric of any kind: the state’s database never collects recycling inflows and withheld recycling outflows for confidentiality.
standardized_waste_data.csv (blue-bin rows,
Final_Facility_Type = mrf, grouped by facility) joined to
transfer_fate.csv cr_landfill_share ·
docs/audit/recycling_deep_dive_2026-07-08.md R3–R4. Disposal shares are
of RDRS disposal-stream throughput, all customers — ceilings, since
recycling flows are invisible to RDRS.
Where this audit can see beyond sorting-facility arrival, the evidence points mostly away from recycling. – of the counted-diverted blue-bin material went to the three facilities that also appear in the state disposal extract — and those facilities reported disposal-stream landfill shares of 86.8%–99.8% (the single largest recipient files 99.8%). Because the state extract does not see recycling inflows, those percentages are ceilings, not load-specific final fates.
The remaining – went to facilities with no independent evidence layer in this audit — no RDRS match, no LA County all-stream file, no Report 9 metric. For that material, even a ceiling cannot be computed.
The commodity evidence is thin where it exists. In the LA County all-stream file, recovered commodities are small shares of total outbound at the facilities this audit can check: 1.28% at Puente Hills MRF (12,250.9 t over three years) and 3.59% at Downey Area Recycling. Even crediting every commodity ton leaving Puente Hills to RecycLA would cover only 1.9% of the blue bin.
One more fact matters for the close of this report (§9): 56.2% of blue-bin tonnage first stops at a facility owned by the company that filed the report. The stream whose recovery claim is least verifiable is also the stream most likely to be counted at the filer’s own gate.
docs/audit/recycling_deep_dive_2026-07-08.md (findings R1–R6;
every figure reproducible via scripts/explore_recycling.py). Stream totals,
facility split, and yearly volumes are recomputed in-browser from the committed CSVs; the
self-delivery and commodity figures are doc-pinned constants from the same audit artifacts.
This is the whole accounting gap in one building. Every ton RecycLA reports arriving at Puente Hills MRF — 78,646 tons over three years — is counted as diverted. All of it. 100%. Nothing that happens to the material after the gate changes that credit.
In full: –. This does not prove the fate of each RecycLA load — it is the facility’s overall outbound mix in the same period, from the one source that sees everything leaving the site. But it means facility-wide outbound data cannot validate diversion credit based on arrival alone, and only the arrival ledger labels these RecycLA tons as diversion.
la_county_outbound.csv (built by
scripts/build_dashboard_la_county.py from
data/external/calrecycle/cleaned_outbound_all_facilities.csv) ·
docs/audit/transfer_fate_analysis.md §4. LA County's file is the one source
that also sees commodities. South Gate TS is not in our RSP data —
county context only. The LA County file itself is unverified against county
publications; its Puente Hills disposal total agrees with the RDRS LACSD-entity landfill
total to 0.002% (test-asserted in tests/test_dashboard_evidence_layers.py;
a consistency check across the shared state facility ID — the Solid Waste Information
System (SWIS) ID — also runs in-browser at load).
For blue/green-bin loads at other facilities the question stays genuinely open; the organics section below adds the one public dataset that speaks to the green portion.
The same verification gap repeats in the stream SB 1383 is aimed at keeping out of landfills. Transfer stations: the records stop before an endpoint. MRFs and the blue bin: arrival is counted as diversion before recovery is verified. Organics: compost arrival is visible; composting is not.
– of commercial organics moved over 2022–2024, and more of it is typed to a sorting facility (MRF) than to a compost facility. These records confirm arrival at a compost facility; composting itself, and any residuals, are not visible in this data. That MRF-typed organics is arrival counted, fate unrecorded.
The problem is not theoretical: in 2024, verified compost arrivals nearly disappeared while the counted diversion rate did not.
docs/audit/organics_reroute_2024.md.
organics_flows.csv (monthly rows, compost-typed
tonnage ÷ total organics per year) · docs/methodology.md
Finding 5 addendum.
data/external/calrecycle/pra_response_2025-04-24/Outflows-Table 1.csv).
organics_flows.csv (copy of csv_outputs/organics_flows.csv, ALL rows; filter =
Green bin OR Mixed Organics commodity) · docs/methodology.md Finding 5 & §4b.
The pattern above — diversion credited at arrival, fate unverified — is not an
accident of sloppy filing. It follows from where the first stop usually is: at least
48.8% of all tonnage is first received at a facility owned by the company that filed
the report — a lower bound, counting only ownership attested in city records
(LASAN CF 23-1032). Diversion is credited where the reported chain ends; tracing those
chains, 96% of the counted-diverted tonnage is credited at its very first stop. Roughly half the time the filer owns
that stop — so a system that credits first stops is not independently
verifying final outcomes
(docs/audit/exploratory_findings_phase2_2026-07-08.md X8;
docs/methodology.md Finding 10).
Each bar below is one hauler's total reported tonnage, split by the type of facility it was sent to. No per-hauler diversion rate is computed here because one remaining definitional sensitivity can move hauler-level rates by several points.
wm sun valley recycling park bucket is currently typed transfer while a
comparable Athens facility (athens sun valley mrf ts) is typed mrf (recovery);
the entry-by-entry type verification (§1) left this as the one disclosed definitional
sensitivity, worth +5.29 to +6.18 percentage points on the program-wide
D2 rate. A per-hauler rate built on a sensitivity that large would be noise. Two more limits: the
segments describe where tonnage was sent — reaching a recovery-typed or transfer
facility is not confirmation of recovery — and whether this PRA export is complete for every
hauler, zone, and month is unverified (docs/audit/external_crosscheck.md, scope note).
Hauler names appear exactly as reported; which company each name refers to is not something this
dataset alone can establish. Bars are ordered by total reported tonnage.
Athensedt (1.00% of tonnage) is displayed exactly as reported, as a separate hauler value:
the recovered franchise-zone table shows AthensEDT as the EDT zone's assigned RSP — our export
carries Calmet on that zone through 2023-06, then Athensedt (docs/audit/original_mapping_validation.md §3)
— but whether it is the same company as Athens is not settled by this data (methodology §5.2).
standardized_waste_data.csv (copy of
final_standarzed_file/standardized_waste_data.csv, 10,318 rows — the 10,259 kept rows, 59 of them split by destination during standardization, tonnage unchanged; methodology §2), grouped by RSP and
Final_Facility_Type; bucket definitions per docs/methodology.md §3 (D2). Full-period,
duplicates kept (Finding 4).
The short version is below. The full story of what these records can and cannot measure —
and the reporting standard that would fix them — is at
What the records can’t measure. Full methodology, findings,
limitations, and re-run instructions:
docs/methodology.md in this repository.
A California Public Records Act response: the City's copy of the required RecycLA Service Provider (RSP) tonnage reports for the multi-hauler commercial franchise program — 8 hauler names, January 2022 – December 2024.
It is commercial-franchise only: no residential blue/green-bin figures are included, inferred, or estimated anywhere on this page. A 2025 tranche via follow-up PRA request is expected; the pipeline accepts a new year without rework.
docs/methodology.md §5.1).docs/audit/facility_type_verification.md); the one remaining definitional sensitivity — WM's hybrid Sun Valley site — is worth +5.29–6.18 points on the conservative rate (Finding 3, §5.2).docs/audit/external_crosscheck.md, 2026-07-08 addendum). (docs/audit/independent_recompute.md)Full sources and scope notes: docs/audit/coverage_validation.md. External figures above contextualize coverage and are not recomputed from this dataset.
docs/methodology.md Finding 9.
Every figure on this page is computed in the browser from the CSVs in this folder — copies of
the committed pipeline artifacts, cited beneath each chart. Re-running the pipeline from the raw
file takes 5 commands (docs/methodology.md §6.1).
Raw file. raw data/RSP Tonnage Reports January 2022 thru December 2024 2.csv ·
SHA-256 e039cbf9fa578e4096bf26e715c7d7decc4191033b5f6ec210cd8797a3195d6b
(recorded in docs/audit/ENVIRONMENT.md). "RSP" means RecycLA Service Provider —
an earlier project draft misread it as Republic Services; corrected for the record in
docs/methodology.md §1.
Row accounting (100% of parsed rows).
| Status | Rows | Meaning |
|---|---|---|
| Kept | 10,259 | Valid reporting period + identifying content; flows into the analysis. |
| Dropped (summary panel) | 10,259 | No transaction fields; a trailing zone-by-bin summary pivot that reconciles exactly against the kept rows (methodology §2). |
| Dropped (other) | 0 | None found. |
| Total parsed | 20,518 | 100% accounted for. |
Citation: csv_outputs/row_ledger.csv and docs/audit/row_reconciliation.md
(docs/methodology.md §2). The raw file's 25,486 text lines (wc -l
convention; 25,487 by line-iteration, as the file lacks a trailing newline) parse to
20,518 CSV rows — embedded newlines, not missing data.
External CalRecycle RDRS data. The RDRS extract behind the cross-check panels
is verified content-identical to CalRecycle's own PRA response (workbook
generated 2025-04-24, covering 2021 Q1 – 2024 Q4), vendored verbatim with CalRecycle's ReadMe
at data/external/calrecycle/pra_response_2025-04-24/. The ReadMe confirms the
disposal-only scope by design: "recycling and composting inflows are never reported, so RDRS
does not contain any such information," and recycling/composting, brokering/transporting, and
end-use outflows were withheld for confidentiality
(docs/audit/original_mapping_validation.md §2). The LA County monthly file has no
primary counterpart and remains unverified against county publications.
Pipeline version & publication screen. Data pipeline commit
fdfcac413d99db7c7d90f5f8982a181b13545bc9 (docs/methodology.md §1);
dashboard rebuilt on repo state 3d6639b0d7e65cd39aaefced18cafa74ad4a1ea9,
generated 2026-07-03; environment & checksums in docs/audit/ENVIRONMENT.md.
The row-level download (standardized_waste_data.csv) excludes the two free-text
note fields (Comments, InternalNotes1) present in the canonical
file (docs/audit/publication_screen.md); no chart or figure uses those fields.
The findings above are fixed; from here down, the page becomes an explorer. Pick any facility in the table (click a row, or use the selector below) to see its evidence: our RSP-side tonnage and routing, the facility's name-mapping, and — where they exist — three independent external layers (CalRecycle onward flows, Report 9 organics routing, LA County all-stream splits), each in its own sourced card, ending with a statement of exactly what cannot be seen for that facility. The filters scope this section only. Rows are ordered by reported tonnage.
One definition carries this whole section: a facility’s tonnage here means material whose first reported stop was that facility — not everything that ever passed through it. The external evidence cards measure on their own bases (facility-wide outbound from all customers, or our tonnage by final recorded destination) and each card states which basis it uses, so the same facility can correctly show different totals on different cards.
| Facility (canonical name) | Our tonnage, first-stop (t) | Share | Type mix (Final_Facility_Type) | External evidence layers |
|---|
standardized_waste_data.csv grouped by
Facility and Final_Facility_Type; layer badges from
transfer_fate.csv (CalRecycle match), report9_rates.csv, and
la_county_outbound.csv. The table total is reconciled in-browser against
diversion_rates.csv's ALL-period tonnage_total (a mismatch logs a
console error).
Final_Facility_Type column — the same
single classification the KPIs and the trends chart use, so they always agree. The "Unknown" terminal is
tonnage whose destination could not be resolved to a type — unclassifiable, not landfill;
the "Transfer" terminal has no confirmed onward endpoint. Named next-destination facilities and
disposition labels (Processed / Transferred / Pre-processed) appear only as intermediate routing nodes.
Unknown and transfer are never counted in the "Diversion (D2-style)" KPI.
With a facility selected, the KPIs describe the final recorded fates of loads whose
first reported stop was that facility — a transfer station showing 0.0%
diversion means those loads dead-end or continue to landfill in the records, not that the
facility itself performs no recovery.
standardized_waste_data.csv (copy of
final_standarzed_file/standardized_waste_data.csv) · row processing per docs/methodology.md
§2; all terminal buckets from Final_Facility_Type per §3. Explorer KPIs are scoped to the
selected filters and may differ from the fixed full-period figures above.