Full Opinion

Filed 5/11/26; Modified and Certified for Partial Pub. 5/27/26 (order attached) COURT OF APPEAL, FOURTH APPELLATE DISTRICT DIVISION ONE STATE OF CALIFORNIA VOICE OF SAN DIEGO et al., D084327 Plaintiffs and Appellants, (Super. Ct. No. 37-2018- 00026433-CU-WM-CTL) v. SAN DIEGO UNIFIED SCHOOL DISTRICT, Defendant and Respondent. APPEAL from a judgment of the Superior Court of San Diego County, Keri G. Katz, Judge. Affirmed. Law Office of Felix Tinkov, Felix Tinkov; and Glen Smith for Plaintiffs and Appellants. John David Loy for First Amendment Coalition as Amicus Curiae on behalf of Plaintiffs and Appellants. Quarles & Brady, Jeffrey P. Michalowski and Jessika B. Russell for Defendant and Respondent. INTRODUCTION The California Public Records Act (CPRA; Gov. Code,1 § 7920.000 et seq.) imposes a duty on an agency to determine whether a public records request seeks any disclosable records in its possession within 10 days from receipt of the request, or up to 24 days if there are “unusual circumstances.” (§ 7922.535, subd. (b); see id., subd. (a).) If there are disclosable records in the agency’s possession, the agency is then required to make the records “promptly available.” (§ 7922.530, subd. (a), italics added.) Contending that “promptly available” means “ ‘within days or a few weeks’ ” of the initial 10- or 24-day deadline, Voice of San Diego and its editor-in-chief Scott Lewis (sometimes together, Voice) alleged the San Diego Unified School District (District) routinely obstructs and delays the disclosure of public records. According to Voice, the District’s average time in producing records responsive to its CPRA requests submitted over a five-year period was 399 days. Voice filed a petition for writ of mandate asserting, among other causes of action, a taxpayer claim pursuant to Code of Civil Procedure section 526a to enjoin the District’s illegal expenditure of public funds to maintain the alleged unlawful CPRA practice. The trial court rejected Voice’s interpretation of the CPRA, and found the evidence did not prove the District engages in any unlawful practice of delaying or withholding public records. Because the court had previously adjudicated all other causes of action in favor of the District, it entered final judgment denying the petition for writ of mandate. 1 All further statutory references are to the Government Code unless otherwise stated. 2 We affirm. The CPRA does not precisely define the timeframe for the actual production of requested records, and we cannot graft a “within days or a few weeks” requirement onto section 7922.530, subdivision (a). Whether an agency has promptly produced records is to be determined case-by-case considering the scope and burden imposed on the particular agency by the particular request. We further conclude substantial evidence supports the trial court’s factual findings that the District did not maintain an unlawful practice of violating the CPRA. Because there is no basis for a taxpayer action where the challenged governmental conduct is legal, the trial court properly denied the petition for writ of mandate. BACKGROUND I. Overview of the CPRA and Taxpayer Action To provide context for the issues in this appeal, we begin with a brief overview of the CPRA and Code of Civil Procedure section 526a which authorizes taxpayer actions. A. The CPRA The California Legislature enacted the CPRA in 1968. (Stats. 1968, ch. 1473, § 39, p. 2945.) In doing so, the Legislature declared “access to information concerning the conduct of the people’s business is a fundamental and necessary right of every person in this state.” (§ 7921.000;2 2 Effective January 1, 2023, the Legislature recodified the CPRA. (See § 7920.005; Stats. 2021, ch. 614, § 2.) The recodification renumbered the CPRA provisions but did not substantively change the law. (City of Gilroy v. Superior Court (2026) 19 Cal.5th 38, 47, fn. 2 (Gilroy), citing §§ 7920.100– 7920.120.) We will refer to the current section numbers throughout our opinion and cross reference the former section numbers where necessary. 3 Gilroy, supra, 19 Cal.5th at p. 51.) To advance this fundamental right, the CPRA provides that “every person has a right to inspect any public record, except as otherwise provided.” (§ 7922.525, subd. (a).) Unless the Legislature has expressly provided an exemption, “ ‘ “all public records are subject to disclosure.” ’ ” (Gilroy, at p. 51.) The CPRA’s right of access was enshrined in the state Constitution by the voters’ passage of Proposition 59 in 2004. The measure added Article I, section 3, subdivision (b)(1), which states: “The people have the right of access to information concerning the conduct of the people’s business, and, therefore, the meetings of public bodies and the writings of public officials and agencies shall be open to public scrutiny.” (Cal. Const., art. I, § 3, subd. (b)(1).) This right of access was implemented with the imperative that “[a] statute, court rule, or other authority . . . shall be broadly construed if it furthers the people’s right of access, and narrowly construed if it limits the right of access.” (Id., subd. (b)(2).) “The CPRA prescribes detailed procedures governing an agency’s response to a public records request.” (Gilroy, supra, 19 Cal.5th at p. 52.) It specifies two steps an agency must take in its response. First, the agency must determine whether the request for public records seeks any disclosable records in the agency’s possession within 10 days from receipt of the request, and then “promptly” notify the requester of its determination and its reasons for withholding any records. (§ 7922.535, subd. (a).) The agency is further required to “state the estimated date and time when the records will be made available” if it “determines that the request seeks disclosable public records.” (Ibid.) The 10-day deadline may be extended only in six specified “unusual circumstances” and, in any case, may not “result in an extension for more than 14 days,” for a total of 24 days. (Id., subds. (b), (c)(1)–(6).) 4 Second, the agency must produce the requested records. Here, section 7922.530, subdivision (a), provides that the agency “shall make the records promptly available to any person upon payment of fees covering direct costs of duplication, or a statutory fee if applicable.” (Italics added.) Section 7922.500 further provides, “Nothing in [the CPRA] shall be construed to permit an agency to delay or obstruct the inspection or copying of public records.” Our high court has observed that these CPRA provisions “impose a general duty on agencies to act promptly.” (Gilroy, supra, 19 Cal.5th at p. 52.) The CPRA authorizes any person seeking “to enforce that person’s right under [the CPRA] to inspect or receive a copy of any public record or class of public records” to bring an action for injunctive or declarative relief or a writ of mandate to obtain judicial review of an agency’s decision not to disclose requested records. (§ 7923.000.) If, after issuing an order to show cause, the court determines “the public official’s decision to refuse disclosure is not justified” under the CPRA, it “shall order the public official to make the record public.” (§§ 7923.110, 7923.100.) Thus, the remedy available under the CPRA is ordinarily a determination “whether a particular record or class of records must be disclosed.”3 (County of Santa Clara v. Superior Court 3 Although there is no claim the trial court erred in denying Voice relief on its causes of action brought under the CPRA, the California Supreme Court recently held that “declaratory relief under the CPRA is available in at least some circumstances in which all existing responsive, nonexempt records have been disclosed in response to a records request. An Agency’s disclosure of those records does not necessarily moot a request for declaratory relief that would ‘enforce that person’s right under this division to inspect or receive a copy of any public record or class of public records.’ (§ 7923.000.) At a minimum, declaratory relief is available under the CPRA where the declaration would resolve an ongoing dispute regarding the parties’ rights 5 (2009) 171 Cal.App.4th 119, 127 (Santa Clara) [“The CPRA provides no judicial remedy . . . for any purpose other than to determine whether a particular record or class of records must be disclosed.”].) B. Taxpayer Action Although “the CPRA provides the exclusive remedy for resolving whether a public entity has erroneously refused to disclose a particular record or class of records,” a taxpayer citizen may bring an action under Code of Civil Procedure section 526a4 to prevent fiscal waste from the implementation and enforcement of policies and practices alleged to be violative of the CPRA. (Santa Clara, supra, 171 Cal.App.4th at p. 130; see id. at pp. 128–129.) Code of Civil Procedure section 526a “authorizes actions by a resident taxpayer against officers of a county, town, city or city and county to obtain an injunction restraining and preventing the illegal expenditure of public funds.” (Blair v. Pitchess (1971) 5 Cal.3d 258, 267, superseded by statute on other grounds as stated in Taking Offense v. State of California (2025) 18 Cal.5th 891, 914–919.) Its “primary purpose” is to “give a large body of citizens standing to challenge governmental actions.” (Blair, at p. 269.) and obligations in a manner that has some likelihood of affecting future requests for public records or future conduct relating to such requests.” (Gilroy, supra, 19 Cal.5th at pp. 45–46.) 4 “An action to obtain a judgment, restraining and preventing any illegal expenditure of, waste of, or injury to, the estate, funds, or other property of a local agency, may be maintained against any officer thereof, or any agent, or other person, acting in its behalf, either by a resident therein, or by a corporation, who is assessed for and is liable to pay, or, within one year before the commencement of the action, has paid, a tax that funds the defendant local agency.” (Code Civ. Proc., § 526a.) 6 “[N]o showing of special damage to the particular taxpayer” is required, and it is “ ‘immaterial that the amount of the illegal expenditures is small or that the illegal procedures actually permit a saving of tax funds.’ ” (Id. at p. 268.) The mere expending of time by any paid public employee in the performance of illegal and unauthorized acts may constitute unlawful use of public funds, warranting an injunction under Code of Civil Procedure section 526a. (Blair, at p. 268.) All this, of course, makes clear that “[a] taxpayer action does not lie where the challenged governmental conduct is legal.” (Lyons v. Santa Barbara County Sheriff’s Office (2014) 231 Cal.App.4th 1499, 1503 (Lyons); accord Coshow v. City of Escondido (2005) 132 Cal.App.4th 687, 714 (Coshow).) II. Voice’s Petition for Writ of Mandate Voice is an online news service based in San Diego. It devotes extensive coverage to matters of public interest with a focus on local government affairs. Reporting on education is particularly important to Voice and its readers, with two or more reporters working on local school issues at any given time. Like many news organizations, Voice relies heavily on CPRA requests to obtain information from local, regional, and state agencies for their reporting on government activities. From 2015 through 2020, Voice regularly submitted CPRA requests to the District, in such a volume that Voice was the District’s most prolific requester of public records. In May 2018, Voice filed a verified petition for writ of mandate against the District, alleging that the District engages in “the regular and ongoing practice . . . to delay, obstruct and withhold public records in a manner contrary” to the CPRA. Voice asserted three causes of action under the CPRA, seeking declaratory and injunctive relief. In February 2021, Voice 7 amended its petition to add a taxpayer cause of action under Code of Civil Procedure section 526a, and Lewis (Voice’s Chief Executive Officer and Editor-in-Chief) as a plaintiff.5 As to this fourth cause of action, Voice alleged the District’s use of public money to carry out its allegedly unlawful CPRA practice constitutes an illegal expenditure of public funds that should be enjoined. III. Proceedings Before Adjudication of the Taxpayer Cause of Action The litigation that followed spanned six years. Discovery was extensive, and so was the parties’ briefing of numerous issues that came before the trial court in multiple proceedings. Here, we summarize the proceedings before the court adjudicated the taxpayer cause of action. A. District’s Motion for Summary Adjudication On June 11, 2021, the trial court granted the District’s motion for summary adjudication of a portion of the first cause of action and the third cause of action under the CPRA, as against Voice only.6 In paragraph 34 of the first cause of action, Voice alleged the District violated section 7922.535, subdivision (a) (former § 6253, subd. (c)), of the CPRA “ ‘by failing to secure responsive records within the statutory 10-day initial response period.’ ” The court determined this claim failed, as a matter of law, because the CPRA “does not require agencies to ‘secure responsive records’ within 10 days of receiving a request.” (Italics added.) 5 We will refer to the operative first amended verified petition for writ of mandate as “the petition” throughout this opinion. 6 Lewis was not subject to the District’s motion for summary adjudication because he had received insufficient notice of the motion. 8 The trial court also determined the third cause of action failed, as a matter of law, because “the injunctive relief Voice seeks is an impermissible ‘comply with the law’ injunction.” Accordingly, the trial court summarily adjudicated the section 7922.535, subdivision (a), claim of the first cause of action and the entire third cause of action in favor of the District against Voice.7 B. Voice’s 31 CPRA Requests at Issue During the litigation, the trial court ordered Voice to prepare an index of the public records requests for which it contends the District unlawfully delayed responsive records. Voice identified 31 CPRA requests it made to the District between October 8, 2015 and March 3, 2020, providing the dates of submittal and only the dates of the last production of responsive records. In contrast, the District provided all production dates, including the first dates on which it provided records in rolling productions. This difference resulted in a different calculation of the District’s production time in multiple instances. The District also provided its justification for any delay in production and an explanation of its general process for responding to CPRA requests. 7 The trial court’s ruling on the District’s summary adjudication motion is not properly before us. As we later discuss, Voice’s failure to specifically challenge the court’s adverse ruling on its duty of determination claim under section 7922.535, subdivision (a), results in forfeiture of this claim on appeal. 9 C. Hearing on the CPRA Causes of Action The trial court bifurcated the hearing on the merits of the petition into two phases. It first held a hearing to adjudicate the CPRA causes of action in December 2022, and another hearing to adjudicate the taxpayer cause of action in February 2024. In its briefing for the December 2022 hearing, Voice identified just three record requests as the basis for its CPRA causes of action. They were numbered FY20152016.062, FY20152016.136 and FY20192020.151 (together, misconduct requests).8 By these requests, Voice generally sought information pertaining to allegations of sexual misconduct and abuse perpetrated by a teacher employed at one of the District’s high schools. Voice asserted the District delayed and withheld records responsive to these requests, in violation of sections 7922.530 (former § 6253, subd. (b)) and 7922.500 (former § 6253, subd. (d)). Specifically, it contended the District produced only non-responsive documents that were extensively redacted. Voice sought a court order compelling the District to release all responsive records and remove all improper redactions. Relying on Citizens for Responsibility and Ethics in Washington v. Federal Election Commission (D.C. Cir. 2013) 711 F.3d 180 (Citizens), a case interpreting the federal Freedom of Information Act (FOIA), Voice argued the term “promptly available” in section 7922.530, subdivision (a), is to be interpreted to mean production of responsive records must occur “ ‘within days or a few weeks, . . . not months or years’ ” of the 10- or 24-day deadline 8 Because these CPRA requests were also litigated at the subsequent hearing on the taxpayer cause of action, we describe them and the parties’ related contentions in further detail later in the opinion. 10 for the initial determination. The District responded there is nothing in the CPRA that requires production of responsive records “within a specified period of time,” and that the CPRA “provides no remedy for failure to timely comply with a request for records.” As to allegations that it improperly withheld records, the District submitted the declaration of Jeffrey Day, its CPRA officer, to explain the District’s general process of handling CPRA requests and its process in responding to the three misconduct requests. Day averred the District did not withhold any documents “in their entirety on the basis of privilege or exemption” responsive to the first two requests, but did redact and withhold responsive documents on the basis of student and employee privacy as to the third. Consistent with its ruling on the motion for summary adjudication, the trial court rejected Voice’s argument that the 10-day deadline under section 7922.535, subdivision (a) (former § 6253, subd. (c)) “governs the time period within which records are to be made available.” The court noted the plain language of section 7922.530, subdivision (a) (former § 6253, subd. (b)), requires that records only be made “ ‘promptly available.’ ” On this point, the court rejected Voice’s reliance on Citizens that “promptly available” under the CPRA meant “ ‘within days or a few weeks’ ” of the initial 10-day deadline. As to the District’s production for the misconduct requests, the trial court found, with one limited exception,9 that Voice had failed to meet its 9 The trial court did find the District improperly redacted “ ‘the names of the teachers who were the subject of allegations of assault and/or sexual misconduct’ ” from records produced in response to the third misconduct request. Accordingly, the court ordered the District to produce unredacted records to the court or show cause by submitting a declaration supporting why certain teacher names should not be produced. After the District filed a 11 burden of proving any CPRA violation. Specifically, the court found the evidence did not establish the District improperly delayed, withheld, or redacted any responsive records. Accordingly, on December 20, 2022, the trial court denied the petition as to the first, second, and third causes of action under the CPRA.10 IV. Hearing on Taxpayer Cause of Action The trial court adjudicated Voice’s remaining taxpayer cause of action in February 2024. The parties submitted extensive briefings and numerous witness declarations for this hearing. Together, they lodged nearly 5,500 pages of exhibits. A. Voice’s Contentions As noted, Voice alleged the District’s use of public funds to carry out its unlawful practice of delaying and obstructing the release of public records constitutes an illegal expenditure of public funds that should be enjoined under Code of Civil Procedure section 526a. In its briefing for this hearing, Voice explicitly framed that “[t]he question before the [trial c]ourt is whether [the District] may ignore the legislative mandate under [the CPRA] requiring disclosures be made promptly (Gov. Code, § 7922.530)” and that it was suing “to enjoin waste of taxpayer funds by [the District] in its failure to comply with the prompt disclosure requirements set forth in the CPRA.” As such, the trial court understood this to be the dispute before it at the hearing on declaration in response to the order to show cause, the parties stipulated that Voice no longer wanted to pursue disclosure of the names. 10 The trial court’s ruling on the CPRA causes of action is also not properly before us because, again, Voice does not specifically challenge it. 12 the taxpayer cause of action and that Voice had identified Government Code section 7922.530’s duty of prompt disclosure, buttressed by section 7922.500’s general prohibition against delay or obstruction, as the CPRA provision it alleged the District “routinely abrogates.”11 Relying on Citizens, Voice again argued production of public records under section 7922.530 “must be made within days or weeks, not months or years”12 of the initial determination. (Capitalization and boldface omitted.) Under this standard, Voice claimed that the District “blatantly disregards” its duty to make prompt disclosures, instead “averaging 399 days to produce records requested by Voice,” with its shortest amount of time being over a month and its longest as over five years. (Capitalization and underlining omitted.) Voice claimed that the District “constructed a system intended to slow down CPRA responses,” including by employing a single CPRA officer who lacked formal training and was “ignoran[t]” of the CPRA requirements; whose absence brings the process to a “screeching halt” until he returns; and whose process of working on groups of 10 to 12 requests at a time ensures backlog and delay.13 11 On appeal, Voice does not claim the trial court misidentified the CPRA provisions relied on by Voice for its taxpayer cause of action. 12 In its reply brief, Voice argued “production typically must be made within a month.” (Capitalization and boldface omitted.) 13 In making this claim that the District “constructed a system intended to slow down CPRA responses,” Voice resurrected its complaint—previously rejected by the trial court when it granted summary adjudication of this issue in favor of the District in June 2021, which Voice does not challenge—that the District’s CPRA officer’s “efforts to gather records in response to the public’s CPRA requests are routinely ignored [by the District’s record custodians]” and, as such, the District does not meet its 10-day deadline for 13 B. District’s Response The District again responded that the CPRA does not mandate “a strict timeline” for public agencies to produce responsive records. Instead, the District argued “promptness is relative to the request,” requiring the courts to consider “the breadth, context, and specificity of the request, the nature of the records requested, review [required] of such records, the volume of other requests received, and the resources available to the agency.” As to the 31 CPRA requests at issue, the District asserted the evidence failed to show it intentionally delayed or withheld records responsive to them. The District submitted two more declarations by its CPRA officer, Day, to explain the District’s process of handling public records requests generally and its process of responding to each of the 31 requests at issue, and the declaration of Joseph W. Pannone, a municipal law attorney with expertise in CPRA practices. We discuss the District’s response to Voice’s 31 CPRA requests in detail later in our review of the court’s factual findings for substantial evidence. Here we summarize Day’s and Pannone’s testimony about the District’s process generally. The San Diego Unified School District is the second largest school district in California, with 181 schools.14 It receives a high volume of CPRA the initial determination under section 7922.535, subdivision (a). Here, we do not address Voice’s limited reference to section 7922.535; to the extent it relies on this provision as a basis for its taxpayer cause of action on appeal, we discuss it later and conclude it has not been preserved for our review. 14 We deny the District’s request for judicial notice of the “Departments page” of its website because, as the District acknowledges, it was not presented to the trial court. (See Vons Companies, Inc. v. Seabest Foods, Inc. (1996) 14 Cal.4th 444, fn. 3 [“Reviewing courts generally do not take judicial notice of evidence not presented to the trial court. Rather, normally ‘when 14 requests each year. Day is the District’s single CPRA officer and is responsible for receiving and responding to all public record requests, which includes locating, collecting, and producing responsive documents to members of the public. Upon receipt of a public records request, Day first determines whether the District has responsive documents in its possession within 10 days of the request. If a request is overly broad or unclear, Day communicates with the requester to help clarify or limit the request. He drafts a response with his initial determination to the requester, sends it to the District’s attorney for approval and, once approved, sends the final response to the requester. At the same time, Day assesses where the requested records might be within the District, which spans multiple departments and 181 schools, and contacts individuals to obtain responsive documents. Depending on the request, searches could require inquiry into both electronic and hard copy documents located at any of the District’s multiple departments.15 At the reviewing the correctness of a trial court’s judgment, an appellate court will consider only matters which were part of the record at the time the judgment was entered.’ ”].) 15 For requests that include e-mail, Day causes the Information Technology (IT) department to run a search using terms and a potential date range found in the request. Depending on the complexity of the search and volume of e-mail involved, results may take “10 minutes to several days later.” If the search volume is too large, IT will break the search into “separate smaller searches” and even when it operates correctly, the volume of e-mail returned may be too large to export, requiring IT to break the search up into multiple smaller searches. If “the scope of the search is simply too large,” IT may request that Day work with the requester “to narrow down the search to a manageable scope.” And because IT runs only one search at a time “to ensure each one completes properly,” the District prioritizes “time sensitive search requests” such as those from police departments over others. 15 time the litigation commenced, the District maintained over 1 billion e-mails on its network servers. Once Day receives the records, he reviews them for responsiveness and conducts a second review to identify documents that must be withheld or redacted based on attorney-client privilege, student privacy, or other CPRA exemptions. Day sends these documents to the District’s attorney for review and, once approved, Day sends the finalized documents to the requester. During the relevant five-year period, 2015 to 2020, the District received an average of 320 requests per year.16 In 2015 and 2016, the District processed requests in the order received, but since 2017 it has taken requests out of order so that large requests do not delay narrower and less time consuming requests. Day typically works on a group of 10 to 12 requests at a time, adding a new request to the group only when one response is completed. During this five-year period, the District received over 75 CPRA requests from Voice. Day averred he has never been requested to delay or withhold production of records from Voice, “other than for legitimate reasons” such as verifying accuracy or completeness, and he has never delayed his After the search is done and the e-mails exported, IT performs a quality check and sends Day an Outlook data file containing the e-mails. Day then reviews the e-mails for responsiveness to the request and does another second-level review to determine if any need to be withheld or redacted for attorney-client privilege, student privacy, or another applicable statutory exemption. Day then sends the responsive documents, including proposed redactions, to the District’s attorney for review and, if approved, to the requester. 16 The District received 278 public record requests in the 2015–2016 school year; 326 in the 2016–2017 school year; 300 in the 2017–2018 school year; 383 in the 2018–2019 school year; and 315 in the 2019–2020 school year. 16 efforts to search for records for Voice “beyond the prioritizing that occurs for all requests.” Day explained, to the contrary, he spent “substantially more time” gathering and reviewing records for Voice than any other requester and, in his view, Voice’s requests were “consistently the most vague and overbroad.” Pannone, a licensed attorney who has exclusively practiced municipal law for more than 40 years, was offered as an expert on the CPRA practices of various public agencies, including the school districts in Fresno, Long Beach, and San Bernardino City; as well as the County of San Diego.17 Like the District, these school districts also charge one employee with handling CPRA requests from initial review to production of records. The County of San Diego employs two CPRA officers, but both have other assigned duties. Based on his experience as a city attorney representing the cities of Baldwin Park, Bellflower, Culver City, Lompoc, Morro Bay, Palos Verdes Estates, and South Pasadena, Pannone explained they too had only one employee (the city clerk) assigned to handle CPRA requests. According to Pannone, these cities’ and public agencies’ CPRA processes are “substantially the same” as the District’s. In Pannone’s opinion, the time to respond to a records request can vary depending on the volume and type of documents sought, as well as the volume of other record requests. And “[i]n some cases, depending on the breadth of the request and the search terms, the number of records requiring review, the nature of the records reviewed, and the volume of other requests, production of records 17 The trial court overruled Voice’s evidentiary objections to Pannone’s declaration, and Voice has not challenged the court’s ruling on appeal. 17 may take over one year, or more to complete. In such cases, public agencies sometime produce records on a ‘rolling basis.’ ” C. Trial Court’s Ruling The trial court, for a second time, rejected Voice’s contention (and its reliance on Citizens) that section 7922.530, subdivision (a), requires a public agency to produce responsive documents within days or weeks of the initial determination upon receipt of a request. Instead, the court interpreted the term “promptly” in section 7922.530, subdivision (a), to “allow[ ] for an evaluation of a variety of factors in assessing the promptness of an entity’s production of records.” Turning to the evidence, the trial court credited Day’s declarations explaining the District’s response to each of the 31 CPRA requests and found the evidence did not establish the District unlawfully delayed or withheld responsive documents. It further credited Day’s and Pannone’s declarations in rejecting Voice’s contentions that the District “constructed a system intended to slow down CPRA responses.” Additionally, the court found “the majority” of the requests “[we]re very broadly worded and cover[ed] extensive periods of time.” The requests were also complicated by Voice often requesting information in several formats, including final documents as well as drafts, addendums, and modifications. Many of the requests required the District to search and review both electronically stored and hard copy records maintained by multiple departments across the District, and triggered student or employee privacy exemptions that required redaction. And the District was processing Voice’s requests amidst a heavy volume of public record requests during the 2015 to 2020 time period. The court determined all of these circumstances were relevant and justified the District’s production time for Voice’s requests. 18 Because Voice failed to establish any unlawful CPRA practice, the trial court found no basis for finding there was an illegal expenditure of public funds within the meaning of Code of Civil Procedure section 526a. This order disposed of the last of Voice’s claims. Accordingly, the court entered a final judgment in favor of the District denying the petition in March 2024. DISCUSSION On appeal, Voice challenges the trial court’s denial of its petition only as to the taxpayer cause of action. It contends the court erred in denying injunctive relief under Code of Civil Procedure section 526a because, in its view, the District maintains an unlawful practice of violating two provisions of the CPRA: the duty of determination under section 7922.535, and the duty of disclosure under section 7922.530. As we shall explain, Voice has failed to preserve its section 7922.535 duty of determination claim. As to its section 7922.530 duty of disclosure claim, Voice advances the same arguments that it made in the trial court. In doing so, Voice fails to persuade us of any error. We address Voice’s duty of disclosure claim first. I. “Promptly Available” Under Section 7922.530, Subdivision (a) Relying once again on Citizens, Voice asserts section 7922.530’s term “promptly available” means production of disclosable records must be made within “a few days or weeks, not months or years” of the initial determination that is made 10 or 24 days upon receipt of the request. Voice contends the trial court erred in rejecting this construction, and instead construing the provision to “ ‘allow[ ] for an evaluation of a variety of factors’ ” that are “nowhere in the law.” We find no error, because we also disagree with Voice’s construction of the statute. 19 “Statutory interpretation is a question of law that we review de novo.” (Bruns v. E-Commerce Exchange, Inc. (2011) 51 Cal.4th 717, 724.) “ ‘Our fundamental task in interpreting a statute is to determine the Legislature’s intent so as to effectuate the law’s purpose.’ ” (Ibid.) We begin by looking to the statutory language, “ ‘giving it a plain and commonsense meaning. We do not examine that language in isolation, but in the context of the statutory framework as a whole in order to determine its scope and purpose and to harmonize the various parts of the enactment.’ ” (Ibid.) “ ‘If the language is clear in context, our work is at an end. If it is not clear, we may consider other aids, including the statute’s legislative history.’ ” (Gilroy, supra, 19 Cal.5th at p. 51.) We turn to the language in section 7922.530, subdivision (a). It provides, “Except with respect to public records exempt from disclosure by express provisions of law, each state or local agency, upon a request for a copy of records that reasonably describes an identifiable record or records, shall make the records promptly available to any person upon payment of fees covering direct costs of duplication, or a statutory fee if applicable.” (Italics added.) By its plain text, section 7922.530, subdivision (a), does not set any deadline expressed in number of days for the actual production of records. (See Rittiman v. Public Utilities Commission (2022) 80 Cal.App.5th 1018, 1035 [construing former § 6253, subd. (b), the “[C]PRA does not set forth a specific timeframe for actual production of requested records”]; Motorola Communication & Electronics, Inc. v. Dept. of General Services (1997) 55 Cal.App.4th 1340, 1349 (Motorola) [same].) To accept Voice’s argument, we would have to insert words such as “days or weeks,” or some other quantification of time, into the statute. Doing so would violate the cardinal rule that a statute “is to be interpreted by the 20 language in which it is written” (People v. Campbell (1902) 138 Cal. 11, 15), and that “[w]e must presume the Legislature meant what it said, and we may not add words to the statute under the guise of legislative interpretation” (Linovitz Capo Shores LLC v. California Coastal Commission (2021) 65 Cal.App.5th 1106, 1122, citing Burden v. Snowden (1992) 2 Cal.4th 556, 562 [“Where the words of the statute are clear, we may not add to or alter them to accomplish a purpose that does not appear on the face of the statute or from its legislative history.”]). But unlike the duty of disclosure, the CPRA does precisely define the time in which a public agency must comply with its duty of determination under section 7922.535, subdivision (a). As noted, section 7922.535, subdivision (a), provides that “upon a request for a copy of records,” a public agency “shall, within 10 days from receipt of the request, determine” whether the request seeks disclosable public records in its possession. The 10-day deadline may be extended in specified “unusual circumstances” but, in any case, may not “result in an extension for more than 14 days,” for a total of 24 days. (§ 7922.535, subds. (b), (c)(1)–(6).) Thus, the Legislature clearly knows how to draft language to impose precise deadlines for compliance with a CPRA duty. That it did not do so with the duty of disclosure under section 7922.530, subdivision (a), significantly undercuts Voice’s argument. As the California Supreme Court has observed on many occasions, “the CPRA describes its procedures . . . ‘in exceptionally careful detail.’ ” (Haynie v. Superior Court (2001) 26 Cal.4th 1061, 1073; accord Gilroy, supra, 19 Cal.5th at p. 52 [the “CPRA prescribes detailed procedures governing an agency’s response to a public records request”].) Its silence regarding any requirement, “suggest[s] that no such requirement exists.” (Gilroy, at p. 46.) For this reason, our high court has declined to add to the CPRA a records 21 retention requirement (Gilroy, at p. 65), or a requirement that