Tag: Developer Reference

  • RCP API Reference: Accessing the Framework Programmatically

    The RCP REST API endpoint allows software developers, ESG platforms, and job management systems to programmatically access the full Restoration Carbon Protocol framework — all articles, emission factors, schema documentation, and article relationships — without scraping the site. This endpoint is part of the Tygart Media REST API and is publicly accessible without authentication.

    Base URL: https://tygartmedia.com/wp-json/tygart/v1/rcp


    Endpoints

    GET /wp-json/tygart/v1/rcp

    Returns the complete RCP framework index: all published articles with metadata, their relationship type within the framework, and links to full content.

    Request:

    GET https://tygartmedia.com/wp-json/tygart/v1/rcp
    Accept: application/json

    Response structure:

    {
      "rcp_version": "1.0",
      "schema_version": "RCP-JCR-1.0",
      "last_updated": "2026-04-11",
      "framework_url": "https://tygartmedia.com/rcp/",
      "contact": "rcp@tygartmedia.com",
      "license": "CC BY 4.0",
      "articles": [
        {
          "id": 2481,
          "type": "introduction",
          "title": "Introducing the Restoration Carbon Protocol",
          "url": "https://tygartmedia.com/restoration-carbon-protocol-introduction/",
          "excerpt": "...",
          "tags": ["RCP", "GHG Protocol", "ESG", "Scope 3"]
        },
        ...
      ],
      "article_types": [
        "introduction", "regulatory", "job_type_guide",
        "data_standard", "commercial", "technical", "strategy"
      ]
    }

    GET /wp-json/tygart/v1/rcp/schema

    Returns the full RCP-JCR-1.0 JSON Schema for a Job Carbon Report — the machine-readable data standard for per-job Scope 3 emissions records. This is the canonical schema endpoint for software developers implementing native RCP data capture.

    Request:

    GET https://tygartmedia.com/wp-json/tygart/v1/rcp/schema
    Accept: application/json

    Response: Full JSON Schema Draft-07 object as published in the RCP JSON Schema v1.0 article.

    GET /wp-json/tygart/v1/rcp/factors

    Returns all RCP emission factors as structured JSON — vehicle emission factors, material factors, waste disposal factors, demolished building material factors, and the eGRID subregional table. This allows ESG platforms and carbon calculators to pull the current RCP factor set programmatically rather than hardcoding values.

    Request:

    GET https://tygartmedia.com/wp-json/tygart/v1/rcp/factors
    Accept: application/json

    Response structure:

    {
      "factor_vintage": "EPA 2025 EF Hub, EPA eGRID 2023, EPA WARM v16, DEFRA 2024",
      "gwp_basis": "IPCC AR6 GWP-100 for refrigerants; IPCC AR5 for other gases",
      "last_updated": "2026-04-11",
      "transportation": {
        "units": "kg_co2e_per_mile",
        "factors": {
          "passenger_car_gasoline": 0.355,
          "light_truck_gasoline": 0.503,
          "light_truck_diesel": 0.523,
          "medium_truck_diesel": 1.084,
          "heavy_truck_unloaded": 1.612,
          "heavy_truck_loaded": 2.25,
          "hazmat_hauler_acm": 3.20,
          "medical_waste_hauler": 2.80
        }
      },
      "electricity": {
        "units": "kg_co2e_per_kwh",
        "national_average": 0.3497,
        "subregions": {
          "NYUP": 0.1101,
          "CAMX": 0.1950,
          "NEWE": 0.2464,
          "ERCT": 0.3341,
          "FRCC": 0.3560,
          "SRSO": 0.3837,
          "NYCW": 0.3927
        }
      },
      "waste_disposal": {
        "units": "tco2e_per_short_ton",
        "factors": {
          "mixed_cd_landfill": 0.16,
          "gypsum_drywall_landfill": 0.16,
          "gypsum_drywall_recycled": 0.02,
          "carpet_pad_landfill": 0.33,
          "carpet_pad_recycled": 0.05,
          "vinyl_lvp_landfill": 0.28,
          "vinyl_lvp_recycled": 0.08,
          "mixed_plastics_landfill": 0.25,
          "biohazard_incineration": 0.97,
          "biohazard_autoclave_landfill": 0.50,
          "acm_inert_transport_only": 0.018
        }
      },
      "materials_kg_co2e_per_unit": {
        "nitrile_glove_each": 0.0277,
        "n95_respirator_each": 0.05,
        "tyvek_suit_each": 0.52,
        "h2o2_antimicrobial_per_kg_active": 1.33,
        "lvp_flooring_per_m2": 5.2,
        "ceramic_tile_per_kg": 0.78,
        "ready_mix_concrete_per_kg": 0.13,
        "ldpe_sheeting_per_kg": 1.793
      },
      "refrigerant_gwp_ar6": {
        "R410A_blend": 2256,
        "R32": 771,
        "R454B_blend": 530,
        "R134a": 1530
      },
      "fuel_combustion": {
        "units": "kg_co2e_per_gallon",
        "gasoline": 8.887,
        "diesel": 10.21
      }
    }

    GET /wp-json/tygart/v1/rcp/articles/{type}

    Returns articles filtered by framework type. Valid type values: job_type_guide, regulatory, data_standard, technical, strategy, introduction, commercial.

    Example — get all job type guides:

    GET https://tygartmedia.com/wp-json/tygart/v1/rcp/articles/job_type_guide

    Response: Array of article objects matching that type, with title, URL, excerpt, and job_types array (e.g., ["water_damage", "category_2", "category_3"]).


    Existing WordPress REST API — RCP Queries

    While the tygart/v1/rcp endpoints above are planned for v1.1 deployment, the existing WordPress REST API at /wp-json/wp/v2/ already supports filtered RCP queries using tag and category IDs.

    Get all RCP articles

    GET https://tygartmedia.com/wp-json/wp/v2/posts?tags=409&per_page=50
    # Tag 409 = "RCP" — returns all 30 published RCP articles

    Get RCP articles by sub-type

    # Developer/technical articles only (tag 411 = Developer Reference)
    GET https://tygartmedia.com/wp-json/wp/v2/posts?tags=409,411&per_page=20
    
    # Regulatory articles (tag 369 = SB 253)
    GET https://tygartmedia.com/wp-json/wp/v2/posts?tags=409,369&per_page=20

    Get a specific article with full content

    # RCP v1.0 Full Framework Document (post ID 2976)
    GET https://tygartmedia.com/wp-json/wp/v2/posts/2976
    
    # Returns: id, title, content.rendered, excerpt.rendered, 
    #          link, slug, date, modified, tags, categories

    Get the RCP hub page

    GET https://tygartmedia.com/wp-json/wp/v2/pages?slug=rcp
    # Returns the hub page at /rcp/ with full content and navigation structure

    Response fields available per post

    Field Type Description
    id integer WordPress post ID — stable across updates
    slug string URL slug — permanent, do not rely on for API queries (use ID)
    title.rendered string HTML-decoded article title
    content.rendered string Full article HTML — includes all tables, methodology, worked examples
    excerpt.rendered string Summary paragraph — suitable for search result snippets
    link string Canonical URL
    modified datetime Last updated — use to detect emission factor version updates
    tags array[int] Tag IDs — use 409 (RCP), 411 (Developer) for filtering

    RCP Tag ID Reference

    Tag ID Name Use
    409 RCP All RCP articles — primary filter for the full framework
    408 GHG Protocol All RCP articles (GHG Protocol aligned)
    366 Scope 3 All RCP articles (Scope 3 focused)
    77 ESG All RCP articles (ESG context)
    411 Developer Reference Technical articles: JSON schema, proxy guide, factor table, audit guide, software integration, 12 data points
    369 SB 253 Regulatory articles: SB 253, framework, FEMA, SBTi, CSRD

    Planned v1.1 API Enhancements (Roadmap)

    The following endpoints are targeted for deployment in RCP v1.1, pending implementation by the infrastructure team. The spec above defines the intended response format.

    • GET /wp-json/tygart/v1/rcp — Framework index with article type classification
    • GET /wp-json/tygart/v1/rcp/schema — RCP-JCR-1.0 JSON Schema as a clean API response
    • GET /wp-json/tygart/v1/rcp/factors — All emission factors as structured JSON with vintage metadata
    • GET /wp-json/tygart/v1/rcp/factors/{category} — Filtered factor sets (transportation, electricity, waste, materials)
    • GET /wp-json/tygart/v1/rcp/articles/{type} — Articles filtered by framework type

    Software vendors who want to implement the planned endpoints ahead of formal deployment, or who have implementation questions, contact: rcp@tygartmedia.com


  • RCP Audit Readiness Guide: How to Prepare Emissions Data for Third-Party Verification

    Third-party verification of Scope 3 emissions data is no longer theoretical. California SB 253 requires limited assurance for Scope 3 emissions beginning in 2030. CSRD requires limited assurance for all emissions including Scope 3 from the date of initial reporting. GRESB added GHG data assurance as a newly scored metric in 2025. The direction of travel is clear: the per-job carbon data restoration contractors deliver to commercial clients will eventually be subject to external verification — not as a direct requirement on the contractor, but because the client’s verifier will examine the quality and traceability of the supplier data the client used to build their Scope 3 inventory.

    This guide explains what verifiers actually look for in Scope 3 contractor data, how the RCP framework satisfies those requirements by design, and what documentation you need to retain to be audit-ready when your clients’ verifiers come asking.


    The Two Levels of Assurance and What They Mean for Contractor Data

    Understanding assurance levels prevents confusion about what is actually being asked of you.

    Limited assurance is a negative assurance — the verifier is confirming they found nothing that makes the report materially wrong. It involves reviewing methodologies, sampling data points, and checking for internal consistency. For Scope 3 data from restoration contractors, a limited assurance engagement will typically review: whether the methodology is documented and consistent with the GHG Protocol, whether proxy values are sourced and labeled, and whether the total reported figure is internally consistent with the underlying calculation inputs.

    Reasonable assurance is a positive assurance — the verifier actively confirms the data is accurate. It involves re-performing calculations from source documents, testing internal controls, and in some sectors, site visits. For Scope 3 contractor data under reasonable assurance, verifiers will request the underlying source documents — GPS trip logs, waste manifests, purchase receipts — and verify that the calculation produces the reported number from those inputs.

    The practical implication: for limited assurance, methodology documentation and labeling of proxy data are sufficient. For reasonable assurance, you need the source documents. The RCP 12-point data capture standard is designed to collect exactly those source documents at the time of the job, making reasonable assurance retroactively possible without extra effort.


    The GHG Protocol’s Five Audit Principles — Applied to RCP Records

    The GHG Protocol Corporate Value Chain Standard specifies five principles that a Scope 3 inventory — and by extension, the contractor data that feeds it — must satisfy for assurance purposes. Understanding how RCP records satisfy each principle makes audit preparation straightforward.

    1. Relevance

    What verifiers check: Whether the emissions sources included reflect the actual emissions generated on behalf of the client, and whether any exclusions are documented and justified.

    How RCP satisfies this: The scope boundary section of the RCP Full Framework Document explicitly lists what is included and excluded, with justification for each exclusion. The job_type and damage_category fields in the RCP JSON schema ensure the correct emission domains are applied for each job type. No RCP-compliant record silently excludes a material emission source — exclusions must be documented in the data_quality.notes field.

    2. Completeness

    What verifiers check: Whether all material Scope 3 categories are covered and whether the reporting boundary is consistently applied across all jobs in the portfolio.

    How RCP satisfies this: The RCP portfolio summary covers all jobs at a client’s properties during the reporting period. The four GHG Protocol categories covered (Cat. 1, 4, 5, 12) are documented in the framework as the complete set of material categories for restoration work. A verifier can confirm completeness by checking that every invoiced job appears in the portfolio summary.

    3. Consistency

    What verifiers check: Whether the same methodology and emission factors are applied across all jobs, and whether year-over-year comparisons are valid.

    How RCP satisfies this: The schema_version field (“RCP-JCR-1.0”) ensures every record uses the same schema. The emission factor vintage is documented in the framework (“EPA 2025 EF Hub, EPA eGRID 2023, EPA WARM v16”). When CARB or EPA updates emission factors, the RCP patch version increments, creating a clear record of when methodology changed. Verifiers can request the emission factor table used and verify it matches the published RCP version for that reporting year.

    4. Transparency

    What verifiers check: Whether methodology is fully disclosed, proxy values are labeled, and the calculation can be reproduced from the disclosed inputs and factors.

    How RCP satisfies this: The data_quality section of every RCP Job Carbon Report explicitly lists which data points are primary and which are proxy-estimated. The calculation_method field in each domain section identifies whether primary or proxy methodology was used. The emission factors are published in the RCP Emission Factor Reference Table with source citations. A verifier provided with an RCP JSON record, the proxy value table, and the raw source documents can reproduce the reported number independently.

    5. Accuracy

    What verifiers check: Whether the quantification is systematic, consistent, and not materially biased toward over- or under-reporting.

    How RCP satisfies this: The proxy value hierarchy (primary > derived primary > job-specific proxy > national average proxy) ensures that the calculation uses the most accurate available data for each input. The data_quality section’s primary_data_points list lets verifiers assess what fraction of the total is based on primary data. The systematic use of EPA-sourced emission factors — not custom or proprietary factors — provides a defensible, auditor-recognized basis for every number.


    What Source Documents to Retain and for How Long

    The following source documents underpin each of the 12 RCP data points. Retain these at the job level, linked to the job ID, for a minimum of seven years. This covers the typical verification lookback period under CSRD (5 years) plus margin.

    Data Point Source Document to Retain Assurance Level Required
    1 — Vehicle log GPS trip export or odometer log with vehicle ID, date, start/end location, miles Reasonable assurance
    2 — Waste transport Disposal facility weight receipt or manifest with facility name, date, weight, material type Reasonable assurance
    3 — Equipment power source Job notes confirming building power or generator fuel purchase receipt Limited assurance
    4 — Chemical treatments Purchase order or supply requisition for chemicals used on this job, with quantities Limited assurance
    5 — PPE consumption Supply order by job or proxy rate table reference if job-specific data unavailable Limited assurance (proxy acceptable)
    6 — Containment materials Close-out notes with quantities or proxy rate table reference Limited assurance (proxy acceptable)
    7 — Debris volume Disposal facility weight receipt (see Data Point 2) or dumpster manifest Reasonable assurance
    8 — Disposal method/facility Disposal facility receipt naming the facility and disposal method Reasonable assurance
    9 — Demolished materials Demolition scope from job file (Xactimate estimate or written scope), photo documentation Reasonable assurance
    10 — Replacement materials Purchase orders or materials delivery receipts with quantities Reasonable assurance (if in scope)
    11 — Job classification Initial assessment documentation with damage category, class, and affected area Limited assurance
    12 — Job timeline Job management system record with start and completion dates Limited assurance

    How RCP Records Are Treated by Verifiers Under Limited vs. Reasonable Assurance

    When a property manager’s verifier reviews their Scope 3 inventory under limited assurance, they will typically sample a subset of vendor records — often 10–20% of the total by value — and check for: consistency with stated methodology, that proxy records are labeled as such, and that the calculation produces a plausible number given the stated activity. An RCP JSON record satisfies all three checks without additional preparation, because the schema enforces methodology documentation, proxy labeling is required in the data_quality section, and the calculation is transparent and reproducible.

    Under reasonable assurance, the verifier may specifically request source documents for the sampled records. This is where the seven-year document retention requirement becomes material. A contractor who can produce the disposal facility receipt, the GPS trip log, and the Xactimate estimate for a job from 18 months ago has converted a potential audit finding into a zero-question pass.

    The most common Scope 3 audit finding for contractor data is: proxy data used without documentation of why primary data was unavailable. The RCP data_quality.notes field is specifically designed to prevent this. Every proxy-based data point should have a note explaining why primary data was unavailable: “Vehicle mileage estimated from dispatch records — GPS fleet system not yet deployed” is a valid and audit-acceptable explanation. Silence is not.


    The Chain of Custody for RCP Data

    Verifiers are increasingly attentive to the chain of custody for supplier data — how data traveled from the source activity to the reported number in the client’s inventory. For RCP records, the chain of custody is:

    1. Source activity: Vehicle trip, equipment run, waste disposal event
    2. Source document: GPS log, manifest, purchase receipt
    3. Data entry: Job management system (Encircle, PSA, Dash, manual log)
    4. RCP calculation: Activity data × emission factor = kg CO₂e per domain
    5. RCP Job Carbon Report: JSON record with emissions summary and data quality metadata
    6. Client delivery: Email, ESG platform upload, or API transmission
    7. Client inventory: Aggregate Scope 3 figure in GRESB/CDP/SB 253 disclosure

    Each link in this chain should be documentable. When a verifier asks “how did this number get into the inventory?” you should be able to walk from step 1 to step 7 for any sampled job.


    Conducting Your Own Pre-Audit Review

    Before your clients face their first verified Scope 3 disclosure cycle, run a pre-audit review of your own RCP records. The GHG Protocol explicitly recommends that inventory preparers treat each verification cycle as a learning process. For restoration contractors, a practical pre-audit review involves:

    1. Pull the portfolio summary for your largest commercial client for the most recent year. Count the total jobs and total tCO₂e reported.
    2. Sample 5 jobs — pick 2 large, 2 medium, 1 small by affected area. For each, verify you can locate all 12 data point source documents.
    3. Check proxy labeling. For every job where a proxy was used, confirm the data_quality section identifies the proxy data points and the notes field explains why.
    4. Reproduce one calculation. Take one job record and manually calculate the emissions from the source documents. Verify it matches the reported total within rounding.
    5. Check version consistency. Verify all records in the portfolio used schema_version “RCP-JCR-1.0” and the same emission factor vintage. Mixed vintages require disclosure.
    6. Document your findings. A one-page internal review memo noting what you checked and what you found creates a quality control record that verifiers view favorably as evidence of internal controls.

    The Version Control Requirement

    If a Job Carbon Report is corrected after delivery — because a waste manifest weight was updated, a vehicle mileage was corrected, or a proxy value was replaced with primary data — the corrected record must be issued as a new version. The version increment convention for RCP Job Carbon Reports is appending a revision suffix to the job ID: JOB-2026-04847-R1, JOB-2026-04847-R2, etc. The data_quality.notes field must document what changed and why. The original record should be retained alongside the revision — verifiers may ask why a record was corrected.


    Assurance Standards Your Clients’ Verifiers Will Use

    Different verifiers use different professional standards for GHG assurance. The most common frameworks your clients’ verifiers will reference:

    • ISAE 3000: The International Standard on Assurance Engagements (Revised) — the dominant framework for GHG assurance in the EU and used by the Big Four accounting firms globally
    • ISO 14064-3: Specification with guidance for the validation and verification of GHG statements — widely used in the US and internationally
    • AA1000AS: AccountAbility Assurance Standard — common in voluntary sustainability reporting contexts
    • CSAE 3410: Canadian standard, referenced by SB 253 as an acceptable framework

    None of these standards create requirements that a contractor must meet directly — they govern how the verifier conducts the engagement. But understanding them helps you know what questions to expect if a client’s verifier contacts you directly about sampled records.


    Sources and References


  • How to Integrate RCP Data into Encircle, PSA, Dash, and Xcelerate

    The Restoration Carbon Protocol was designed from the start to be implemented by software, not filled out by hand. The 12 RCP data points map almost entirely to fields that restoration job management platforms already capture — or can capture with minimal configuration. This guide is a direct call to action to the restoration software industry: Encircle, PSA, Dash, Xcelerate, Albiware, Restoration Manager, and any platform serving restoration contractors. Here is exactly what RCP compatibility requires and how to implement it.


    The Business Case for Software Vendors

    Restoration platforms that implement RCP compatibility give their contractor customers a differentiator that commercial property managers will actively request. As California SB 253 Scope 3 reporting requirements come into effect in 2027 and GRESB, CDP, and CSRD pressure continues to build, commercial clients will increasingly require their restoration vendors to provide per-job carbon data. The contractor that can push a button and produce an RCP-compliant Job Carbon Report wins the commercial renewal. The platform that makes that button possible wins the contractor.

    RCP compatibility is also a concrete AI-era feature: it transforms job documentation from a liability tool into a value delivery mechanism. Every well-documented job becomes a carbon asset that the contractor can monetize with commercial clients.


    Platform-by-Platform RCP Compatibility Analysis

    Encircle

    Encircle’s strength is field documentation — photos, moisture readings, drying logs, contents inventories, and report generation. It is the platform closest to capturing the data RCP needs at the source.

    RCP Data Point Encircle Field / Location Implementation
    1 — Vehicle log Not currently captured natively Add custom “Vehicle Trips” section to job close-out form: vehicle type, fuel type, trip count, miles
    3 — Equipment power source Drying log / equipment log Add “Power Source” toggle (building power / generator) to equipment placement form. If generator, add fuel type and gallons fields.
    4 — Chemical treatments Notes / photo documentation Add structured chemical application form: product type, volume in liters, application area. Currently unstructured.
    5 — PPE consumption Not currently captured Add PPE close-out field to job form with unit counts by type. Can default to RCP proxy rates based on damage category/class.
    6 — Containment materials Contained loss setup photos (unstructured) Add structured containment log: poly sheeting meters, zipper door count, HEPA filter replacements.
    7, 8 — Waste log Not currently captured Add waste manifest section to close-out: waste type, weight (tons), disposal method, facility name. Manifest photo upload.
    9 — Demolished materials Scope of work / room sketcher Link demolition scope to material weight calculation. Encircle already captures sqft demolished; apply RCP weight-per-sqft table to produce weight by material type.
    11 — Job classification ✅ Damage category and class, job type, sqft — already captured No change needed. Map Encircle category/class fields directly to RCP job_identification fields.
    12 — Job timeline ✅ Start and completion dates — already captured No change needed. Direct mapping to RCP job_start_date and job_completion_date.

    RCP JSON export implementation: Encircle’s existing report generation engine can be extended to produce an RCP-JCR-1.0 JSON file as an additional report type at job close-out. The JSON structure maps directly to Encircle’s data model with the additions described above.

    PSA (Canam Systems)

    PSA is a full job management, CRM, and accounting platform with open API access. It integrates with Xactimate, XactAnalysis, Encircle, and Matterport. PSA’s open API makes it the platform most ready for RCP integration without UI changes.

    RCP Data Point PSA Field / Module Implementation
    1 — Vehicle log Job tasks / time tracking Add vehicle dispatch fields to job tasks: vehicle ID, fuel type, departure/return mileage. Or pull from GPS integration if enabled.
    4-6 — Materials and PPE Job expenses / purchase orders Map RCP chemical, PPE, and containment line items to job expense categories. Add RCP category tags to existing expense item types.
    7-8 — Waste log Job expenses / subcontractor Add waste disposal as structured expense type with weight, method, and facility fields. Currently tracked as cost, not as physical quantity.
    9 — Demolished materials Job scope / Xactimate import Parse Xactimate line items for demolition scope. Map Xactimate line item codes to RCP material types. Weight is derivable from sqft and material type.
    11-12 — Classification, timeline ✅ Job intake form — already captured Direct mapping. PSA damage type and class fields map to RCP job_type, damage_category, damage_class.

    API integration path: PSA’s open API allows an RCP calculation engine to pull job data at close-out, compute emissions, and POST the resulting RCP-JCR-1.0 JSON to a client-facing endpoint or ESG platform directly. This is the most powerful implementation path and requires no UI changes to PSA itself.

    Dash (Next Gear Solutions)

    Dash is a full restoration business management platform with Xactimate integration and strong insurance claims workflow support. Its equipment tracking and job financials modules are the primary RCP integration points.

    RCP Data Point Dash Module Implementation
    1 — Vehicle log Job scheduling / dispatch Add vehicle type, fuel type, and round-trip miles to dispatch records. GPS integration if available.
    3 — Equipment power source Equipment tracking Add “Power Source” field to equipment deployment record. Dash tracks equipment placement dates already — add power source and generator fuel log.
    9 — Demolished materials Xactimate integration Same as PSA — parse Xactimate line items for RCP material type mapping.
    11-12 — Classification, timeline ✅ Job type, dates — captured Direct mapping from Dash job record to RCP fields.

    Xcelerate

    Xcelerate focuses on operational efficiency and field capture with workflow management and daily checklists. Its customizable daily checklist system is the primary integration point for RCP data capture.

    The Xcelerate daily checklist can be configured to include RCP data fields at each technician check-in: vehicle mileage logged, equipment runtime hours, materials consumed. This captures data points 1, 3, 4, 5, and 6 as part of the existing technician workflow with no additional friction. At job close-out, waste and demolished materials fields complete the 12-point record.


    The Xactimate Integration Opportunity

    Xactimate is the dominant estimating platform across the restoration industry. Its line-item scope database defines what was removed and replaced on virtually every insurance-backed restoration job in the US. This creates a unique RCP integration opportunity: Xactimate line items can be mapped to RCP material types automatically.

    A partial Xactimate → RCP material type mapping:

    Xactimate Category RCP Material Type Weight Proxy
    DRY — Drywall remove and replace drywall_standard 2.2 lbs/sqft (½” standard)
    FLR — Carpet remove and replace carpet 0.75 lbs/sqft
    FLR — Vinyl / LVP remove and replace lvp_flooring 1.2 lbs/sqft
    INS — Insulation remove and replace insulation_fiberglass 0.5 lbs/sqft (batt, 3.5″)
    FRM — Framing remove and replace lumber_framing 1.5 lbs/lf (2×4 stud)

    A software vendor that implements this mapping can auto-populate RCP data points 9 and 10 directly from the Xactimate estimate on any job where an estimate exists — which is the majority of commercial losses. This is the single highest-leverage implementation step in the entire RCP software integration roadmap.


    The API Call Structure for RCP Data Exchange

    For platforms that want to push RCP data to a client-facing endpoint or ESG platform, the standard API pattern is:

    POST /api/rcp/v1/job-carbon-reports
    Content-Type: application/json
    Authorization: Bearer {api_key}
    
    {
      "schema_version": "RCP-JCR-1.0",
      "job_identification": { ... },
      "emissions_summary": { ... },
      "transportation": { ... },
      "materials": { ... },
      "waste": { ... },
      "demolished_materials": { ... },
      "data_quality": { ... }
    }
    
    Response 201 Created:
    {
      "record_id": "RCP-2026-04847",
      "status": "accepted",
      "validation_warnings": [],
      "client_notification": "sent"
    }

    For ESG platforms that receive RCP data from multiple contractors (Measurabl, Yardi Elevate, Deepki, Atrius), the recommended intake pattern is a webhook endpoint that accepts POST requests with RCP-JCR-1.0 JSON bodies, validates against the published schema, and maps emissions totals to the platform’s Scope 3 category data model.


    RCP Compatibility Certification for Platforms

    Software platforms that implement RCP compatibility will be listed on the RCP-compatible platforms registry (forthcoming at tygartmedia.com/rcp). To qualify:

    1. Capture all 12 RCP data points (primary or proxy with documentation)
    2. Produce valid RCP-JCR-1.0 JSON output that validates against the published schema
    3. Label proxy-estimated data points in the data_quality section
    4. Notify Tygart Media at rcp@tygartmedia.com with a sample output record

    Compatibility certification is free. It is a recognition that the platform meets the RCP standard, not a paid endorsement.


    Sources and References


  • RCP v1.0 Full Framework Document — The Complete Restoration Carbon Protocol Standard

    The Restoration Carbon Protocol (RCP) is an open industry self-standard for calculating, documenting, and reporting Scope 3 greenhouse gas emissions from restoration contractor work. It is the first framework purpose-built for the restoration industry to enable contractors to provide defensible, auditor-acceptable emissions data to commercial property managers, REITs, institutional investors, government agencies, and ESG reporting platforms.

    This document is the complete RCP v1.0 specification. It supersedes and consolidates all individual RCP knowledge nodes published at tygartmedia.com/esg-restoration. This is the document you share with RIA, with software vendors, with ESG consultants, and with any organization that wants to understand, adopt, or build on the standard.

    Version: RCP v1.0
    Published: April 2026
    Published by: Tygart Media — tygartmedia.com
    License: Open — free to use, implement, and build upon with attribution
    GHG Protocol alignment: Corporate Value Chain (Scope 3) Accounting and Reporting Standard
    Emission factor vintage: EPA 2025 GHG Emission Factors Hub, EPA eGRID 2023, EPA WARM v16


    Part I: Purpose and Scope

    Why RCP Exists

    Commercial property managers, REITs, hospital systems, and institutional facility owners face mandatory Scope 3 greenhouse gas disclosure requirements under California SB 253 (effective 2027 for Scope 3), the EU Corporate Sustainability Reporting Directive (CSRD), and growing pressure from GRESB, CDP, and institutional investors. Restoration contractor work — water damage, fire and smoke, mold remediation, asbestos and hazmat abatement, and biohazard cleanup — generates Scope 3 emissions that appear in the property manager’s inventory as Category 1 (purchased goods and services) and Category 4 (upstream transportation) emissions.

    No standard existed for how restoration contractors should calculate, document, or report these emissions. Without a standard, each contractor produced different data in different formats, making it impossible for property managers to aggregate across their vendor base. The Restoration Carbon Protocol fills that gap.

    What RCP Covers

    RCP v1.0 defines the emissions calculation methodology, data capture requirements, reporting format, proxy estimation procedures, and emission factors for five core restoration job types:

    1. Water damage restoration (IICRC S500)
    2. Fire and smoke restoration (IICRC S700)
    3. Mold remediation (IICRC S520)
    4. Asbestos and hazmat abatement
    5. Biohazard and trauma scene cleanup

    RCP v1.0 covers the Scope 3 emissions generated on behalf of commercial clients. Contractor Scope 1 and 2 emissions (the contractor’s own buildings, fleet, and purchased energy) are a separate accounting obligation under the GHG Protocol and are not addressed by the RCP.


    Part II: GHG Protocol Alignment

    Scope 3 Categories Addressed

    Restoration contractor work generates client-facing Scope 3 emissions primarily across four GHG Protocol categories:

    GHG Protocol Category What It Covers in Restoration Work Included in RCP v1.0
    Category 1 — Purchased Goods and Services Consumable materials, chemicals, PPE, containment, equipment energy (when building-powered) ✅ Yes
    Category 4 — Upstream Transportation All vehicle trips to/from job site, equipment hauls, waste transport ✅ Yes
    Category 5 — Waste Generated in Operations Disposal of demolished materials, contaminated waste, PPE, wastewater ✅ Yes
    Category 12 — End-of-Life Treatment Embedded carbon in building materials removed and disposed of ✅ Yes
    Category 7 — Employee Commuting Technician commuting to contractor’s office ❌ No — contractor’s own Scope 3
    Category 2 — Capital Goods Embedded carbon in equipment (dehumidifiers, vehicles) manufactured ❌ No — contractor’s own Scope 3

    Part III: The Five Emissions Calculation Domains

    Every RCP calculation is organized into five domains. Each domain has a primary data source, a calculation method, and a set of proxy values for when primary data is unavailable.

    Domain 1: Equipment Energy

    Electricity consumed by contractor-deployed drying, filtration, and remediation equipment. Primary method: metered kWh. Proxy method: equipment wattage × runtime hours × proxy unit power draws.

    • National grid emission factor: 0.3499 kg CO₂e/kWh (EPA eGRID 2023 national average)
    • Use subregion-specific factor where available (EPA Power Profiler at epa.gov/egrid)
    • Proxy unit power draws: LGR dehumidifier 1.1 kWh/hr, air mover 0.25 kWh/hr, HEPA air scrubber 0.50 kWh/hr, desiccant dehumidifier 2.8 kWh/hr

    Domain 2: Vehicle Transport

    All fuel combustion from vehicles operated for job-related purposes. Primary method: fuel volume in gallons. Proxy method: miles × 1/mpg × emission factor.

    • Diesel (mobile combustion): 10.21 kg CO₂e/gallon (EPA 2025 EF Hub)
    • Gasoline (mobile combustion): 8.89 kg CO₂e/gallon (EPA 2025 EF Hub)
    • Proxy fleet mpg: diesel service van 20 mpg; gasoline pickup 18 mpg; diesel dump truck 8 mpg
    • Debris haul: 0.186 kg CO₂e/ton-mile truck freight (EPA 2025 EF Hub)

    Domain 3: Consumable Materials

    Embedded carbon in materials consumed during the job but not remaining in the structure: chemicals, PPE, containment materials. Primary method: purchase records by product. Proxy method: standard consumption rates by job type and crew size.

    • Antimicrobial treatments (default): 2.8 kg CO₂e/liter
    • Polyethylene containment sheeting: 0.22 kg CO₂e/meter
    • Disposable Tyvek suit: 1.8 kg CO₂e/unit
    • N95 respirator: 0.4 kg CO₂e/unit
    • Nitrile glove pair: 0.12 kg CO₂e/pair

    Domain 4: Waste Disposal

    Emissions from disposing of materials removed from the property. Primary method: disposal facility manifests by weight and disposal type. Proxy method: weight estimated from demolition scope or volume.

    • Mixed C&D waste, landfill: 0.021 tCO₂e/short ton (EPA WARM v16)
    • Drywall/gypsum, landfill: 0.006 tCO₂e/short ton (EPA WARM v16)
    • Wood debris, landfill: 0.039 tCO₂e/short ton (EPA WARM v16)
    • Regulated hazmat, incineration: 0.42 tCO₂e/short ton (EPA AP-42)
    • Biohazardous waste, medical incineration: 0.88 tCO₂e/short ton (DEFRA 2024)

    Domain 5: Demolished Materials

    Embedded carbon in building materials removed from the structure as a result of restoration work. Primary method: demolition scope by material type and weight. Proxy method: sqft × standard weight/sqft by material type × emission factor.

    • Standard drywall (½”): 0.12 kg CO₂e/kg (production) — EPA WARM v16
    • Fiberglass insulation batts: 1.35 kg CO₂e/kg — EPA WARM v16
    • Carpet (nylon face): 5.40 kg CO₂e/kg — DEFRA 2024
    • LVP/vinyl flooring: 3.10 kg CO₂e/kg — DEFRA 2024
    • Dimensional lumber: 0.45 kg CO₂e/kg — EPA WARM v16

    Part IV: The RCP 12-Point Data Capture Standard

    Every RCP-compliant job record requires twelve data points captured at the time of the job. These are the minimum inputs needed to produce a defensible Scope 3 emissions calculation. Full definitions, good vs. poor capture examples, and calculation mapping for each data point are documented at: tygartmedia.com/12-data-points-restoration-job-scope-3/

    # Data Point Capture Stage GHG Category
    1 Vehicle log (type, trips, miles, fuel) Daily / GPS Cat. 4
    2 Waste transport log Close-out Cat. 4
    3 Equipment power source (building or generator) Setup Cat. 1 / Cat. 4
    4 Chemical treatments log (volume by type) During / Close-out Cat. 1
    5 PPE consumption log During / Close-out Cat. 1
    6 Containment materials log Setup / Close-out Cat. 1
    7 Debris volume by waste category (weight) Close-out / Manifest Cat. 5
    8 Disposal method and facility Close-out Cat. 5 factor selector
    9 Demolished materials by type and weight Demo scope / Close-out Cat. 12
    10 Replacement materials (if in contractor scope) Close-out Cat. 1
    11 Job classification (type, category, class, sqft) Initial assessment Proxy rate selector
    12 Job timeline (start date, completion date) System-generated Period assignment

    Part V: Proxy Estimation Methodology

    When primary data is unavailable — whether for historical jobs, field situations where documentation was incomplete, or data points that current job management systems don’t capture — the RCP authorizes proxy estimation. All proxy calculations must be labeled as estimated in the data quality section of the Job Carbon Report.

    The complete proxy value reference table is published at: tygartmedia.com/rcp-proxy-estimation-methodology/

    The hierarchy of calculation quality, from highest to lowest:

    1. Primary data: Metered, weighed, or directly measured values from job records
    2. Derived primary: Calculated from primary data using standard conversion factors (e.g., miles from GPS × mpg = gallons)
    3. Proxy — job-specific: Estimated using job classification (type, category, class, sqft) with RCP standard rates
    4. Proxy — national average: Used only when job classification is also unavailable. Lowest quality; flag prominently in data quality notes

    Part VI: The RCP Job Carbon Report

    The Job Carbon Report is the output document delivered to commercial clients. It is the vehicle by which contractor emissions data enters the client’s Scope 3 inventory. The report has two valid formats: document (PDF or structured text) and machine-readable (JSON per RCP-JCR-1.0 schema).

    The full report template, field definitions, and example values are published at: tygartmedia.com/rcp-job-carbon-report-template/

    The RCP-JCR-1.0 JSON schema is published at: tygartmedia.com/rcp-json-schema-v1-machine-readable-standard/

    Required report sections:

    1. Job Identification (contractor, client, property, job type, dates)
    2. Emissions Summary (total tCO₂e and breakdown by GHG Protocol category)
    3. Transportation Calculation (Category 4 detail)
    4. Materials Calculation (Category 1 detail)
    5. Waste Disposal Calculation (Category 5 detail)
    6. Demolished Materials Calculation (Category 12 detail)
    7. Data Quality Notes (primary vs. proxy data points, preparer, date)

    Part VII: Scope Boundaries

    Included in RCP v1.0 Scope

    • All electricity consumed by contractor-deployed drying and remediation equipment from setup to retrieval
    • All vehicle fuel combustion for all trips directly associated with the job
    • Embedded carbon in consumable materials used during the job
    • Disposal emissions for all materials removed as part of the restoration scope
    • Embedded carbon in building materials removed and disposed of

    Excluded from RCP v1.0 Scope

    • Emissions from the original loss event (pipe break, fire, flood) — property owner’s Scope 1/2
    • Employee commuting to/from contractor’s office — contractor’s own Scope 3 Cat. 7
    • Capital equipment manufacturing emissions — contractor’s own Scope 3 Cat. 2
    • Administrative overhead, insurance, office operations
    • Wastewater treatment facility emissions from discharged extraction water (flagged for v2.0)
    • Subcontractor emissions not within the primary contractor’s scope of work

    Part VIII: Per-Job-Type Calculation Guides

    Each job type has a dedicated technical calculation guide with job-type-specific emission factors, worked examples, and proxy values. These are the source-of-record methodology documents for each restoration category:


    Part IX: Emission Factor Reference

    The complete consolidated emission factor reference table — every value used in RCP calculations, with source citations — is published at: tygartmedia.com/rcp-emission-factor-reference-table/

    All emission factors in RCP v1.0 are drawn from:

    • U.S. EPA 2025 GHG Emission Factors Hub (January 2025 update)
    • U.S. EPA eGRID 2023 (published January 2025)
    • U.S. EPA Waste Reduction Model (WARM) v16
    • DEFRA UK Greenhouse Gas Conversion Factors 2024
    • IPCC AR5 Global Warming Potentials (100-year)

    Part X: Governance, Versioning, and Contribution

    Governance Model

    RCP v1.0 operates under a founder-steward governance model. Tygart Media, as the originating organization, maintains editorial control over the standard and is responsible for version releases, emission factor updates, and scope boundary decisions. This model is appropriate for an early-stage standard where consistency and speed of iteration matter more than distributed governance.

    As the standard matures and industry adoption grows — particularly if RIA, IICRC, or another industry body formally endorses or houses the standard — governance may transition to a stewardship board model with representation from contractors, property managers, ESG consultants, and software vendors.

    Versioning Policy

    Version Type When Issued What Changes Backwards Compatible?
    Patch (v1.0.x) Annually or when EPA updates emission factors Emission factor updates only Yes — same schema
    Minor (v1.x) When new fields or job types are added Additive changes — new optional fields, new job type guides Yes — existing records remain valid
    Major (v2.0) When scope boundaries change significantly New required fields, scope expansions (e.g., wastewater treatment), LCA-based material factors Migration path provided

    How to Contribute

    The RCP is an open standard. Contributions from contractors, software vendors, ESG consultants, property managers, and researchers are actively welcomed. The current contribution process:

    1. Propose: Email rcp@tygartmedia.com with the proposed change, the technical rationale, and any supporting sources. Emission factor changes require a peer-reviewed or regulatory source.
    2. Review: Tygart Media reviews within 30 days and responds with acceptance, modification request, or rejection with explanation.
    3. Publish: Accepted contributions are credited by organization in the version release notes and reflected in the next patch or minor version.

    Priority contribution areas for v1.1:

    • LCA-based emission factors for specific replacement material types
    • EV fleet proxy values (kWh/mile × grid factor)
    • Regional proxy rates for markets outside the continental US
    • Subcontractor emissions inclusion methodology
    • Wastewater treatment facility emission factors by treatment type

    Open Source License

    The RCP v1.0 specification, all calculation methodology, the RCP-JCR-1.0 JSON schema, and all associated proxy value tables are released under the Creative Commons Attribution 4.0 International License (CC BY 4.0). You are free to use, share, adapt, and build commercial products on top of this standard with attribution to “Restoration Carbon Protocol v1.0, Tygart Media, tygartmedia.com.”


    Part XI: Commercial Application and Regulatory Context

    California SB 253

    California SB 253 requires companies with California revenues over $1 billion to report Scope 3 emissions for their 2026 fiscal year by 2027. Commercial property managers and REITs in scope must collect contractor Scope 3 data across their vendor base. RCP-compliant Job Carbon Reports provide a standardized format for this data collection. Full context: tygartmedia.com/california-sb-253-2027-restoration-contractors/

    GRESB

    GRESB Real Estate Assessment submissions (due July annually) require Scope 3 data from property managers’ supply chains, including restoration contractors. RCP Job Carbon Reports in JSON format integrate with major ESG data management platforms (Measurabl, Deepki, Yardi Elevate, Atrius) that aggregate GRESB submissions. Full context: tygartmedia.com/restoration-work-gresb-cdp-disclosures/

    CDP Supply Chain

    CDP Supply Chain program participants request annual Scope 3 data from their contractors via standardized questionnaire. RCP portfolio-level data aggregation (sum of per-job records by client property) provides the input for CDP Supply Chain responses.

    EU CSRD

    The EU Corporate Sustainability Reporting Directive requires double-materiality ESG disclosure from large companies, including US-based organizations with EU operations or EU-listed investors. For restoration contractors serving CSRD-obligated property clients, the RCP data format provides the supply chain emissions input required under ESRS E1 (Climate) reporting standards.


    Part XII: Software Integration

    The RCP is designed to be implemented natively in restoration job management platforms. The 12 data points map directly to field types that existing platforms (PSA/Canam, Dash/Next Gear Solutions, Xcelerate, Encircle, Albiware) already capture or can capture with minimal custom field additions. The RCP-JCR-1.0 JSON schema provides the standard data exchange format for platform-to-platform and platform-to-ESG-tool data transfer.

    For software implementation guidance: tygartmedia.com/rcp-json-schema-v1-machine-readable-standard/

    For a call to restoration software vendors to adopt RCP: see the software integration guide (coming April 2026 at tygartmedia.com/esg-restoration).


    Part XIII: Version History

    Version Date Changes
    RCP v1.0 April 2026 Initial publication. Five job types, 12-point data standard, RCP-JCR-1.0 JSON schema, proxy estimation methodology, emission factor reference table, full framework document.

    All RCP v1.0 Knowledge Nodes

    The following articles constitute the complete RCP v1.0 knowledge base. Each is a standalone reference document that can be read independently or cited as a component of this framework:


    Contact and Contribution

    To contribute to the RCP standard, propose changes, report errors, or inquire about software implementation: rcp@tygartmedia.com

    To discuss RCP adoption at the industry level, partnership with RIA, or integration with restoration job management platforms: will@tygartmedia.com

  • RCP JSON Schema v1.0 — The Machine-Readable Data Standard

    The Restoration Carbon Protocol v1.0 JSON Schema is the machine-readable definition of the RCP Job Carbon Report. It specifies every field name, data type, required status, and valid value for a complete RCP emissions record. This is the document software developers, ESG platform integrators, and restoration job management platforms use to implement RCP data capture and exchange.

    This schema is released as an open standard. Any platform that produces RCP-compliant JSON output can be described as RCP-compatible. No license is required. Attribution to the Restoration Carbon Protocol is encouraged.

    Schema version: RCP-JCR-1.0
    Conforms to: JSON Schema Draft-07 (json-schema.org/draft-07)
    GHG Protocol alignment: Corporate Value Chain (Scope 3) Standard
    Emission factor vintage: EPA 2025, EPA WARM v16, EPA eGRID 2023


    Schema Overview

    The RCP Job Carbon Report JSON object has seven top-level sections that mirror the paper report format: job identification, emissions summary, transportation data, materials data, waste data, demolished materials, and data quality metadata. All sections except data_quality are required for a complete RCP record. Partial records (missing sections) are valid as draft records but must not be delivered to clients as final RCP disclosures.


    Full Schema Definition

    {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://tygartmedia.com/rcp/schema/v1.0/job-carbon-report.json",
      "title": "RCP Job Carbon Report",
      "description": "Restoration Carbon Protocol v1.0 — Per-Job Scope 3 Emissions Record",
      "version": "1.0.0",
      "type": "object",
      "required": [
        "schema_version",
        "job_identification",
        "emissions_summary",
        "transportation",
        "materials",
        "waste",
        "demolished_materials"
      ],
    
      "properties": {
    
        "schema_version": {
          "type": "string",
          "const": "RCP-JCR-1.0",
          "description": "Schema version identifier. Must be 'RCP-JCR-1.0' for v1.0 records."
        },
    
        "generated_at": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp of when this record was generated."
        },
    
        "job_identification": {
          "type": "object",
          "required": [
            "contractor_name",
            "job_id",
            "client_name",
            "property_address",
            "job_type",
            "damage_category",
            "damage_class",
            "affected_area_sqft",
            "job_start_date",
            "job_completion_date",
            "reporting_standard",
            "egrid_subregion"
          ],
          "properties": {
            "contractor_name": {
              "type": "string",
              "description": "Legal name of the restoration contractor performing the work."
            },
            "contractor_rcp_id": {
              "type": "string",
              "description": "Optional. RCP self-certification ID if contractor is RCP-certified."
            },
            "job_id": {
              "type": "string",
              "description": "Contractor's internal job identifier. Used to cross-reference with job management system."
            },
            "client_name": {
              "type": "string",
              "description": "Name of the property owner or manager receiving this report."
            },
            "property_address": {
              "type": "object",
              "required": ["street", "city", "state", "zip"],
              "properties": {
                "street": { "type": "string" },
                "city": { "type": "string" },
                "state": { "type": "string", "pattern": "^[A-Z]{2}$" },
                "zip": { "type": "string", "pattern": "^[0-9]{5}(-[0-9]{4})?$" }
              }
            },
            "job_type": {
              "type": "string",
              "enum": [
                "water_damage",
                "fire_smoke",
                "mold_remediation",
                "asbestos_hazmat",
                "biohazard_trauma",
                "combined"
              ],
              "description": "Primary job type per RCP classification."
            },
            "damage_category": {
              "type": "string",
              "enum": ["1", "2", "3", "N/A"],
              "description": "IICRC S500 water damage category (1=clean, 2=gray, 3=black). Use N/A for non-water jobs."
            },
            "damage_class": {
              "type": "string",
              "enum": ["1", "2", "3", "4", "N/A"],
              "description": "IICRC S500 water damage class (1=minimal to 4=specialty drying). Use N/A for non-water jobs."
            },
            "affected_area_sqft": {
              "type": "number",
              "minimum": 0,
              "description": "Total affected area in square feet."
            },
            "job_start_date": {
              "type": "string",
              "format": "date",
              "description": "ISO 8601 date (YYYY-MM-DD) of job mobilization."
            },
            "job_completion_date": {
              "type": "string",
              "format": "date",
              "description": "ISO 8601 date (YYYY-MM-DD) of job close-out."
            },
            "reporting_standard": {
              "type": "string",
              "const": "Restoration Carbon Protocol v1.0, GHG Protocol Corporate Value Chain Standard",
              "description": "Must match this exact string for RCP v1.0 compliance."
            },
            "egrid_subregion": {
              "type": "string",
              "description": "EPA eGRID subregion code for the job site ZIP code. Use 'US_AVG' if subregion unknown.",
              "examples": ["WECC", "SRVC", "RFCW", "US_AVG"]
            }
          }
        },
    
        "emissions_summary": {
          "type": "object",
          "required": [
            "total_job_emissions_tco2e",
            "category_1_materials_tco2e",
            "category_4_transportation_tco2e",
            "category_5_waste_tco2e",
            "category_12_demolished_materials_tco2e"
          ],
          "properties": {
            "total_job_emissions_tco2e": {
              "type": "number",
              "minimum": 0,
              "description": "Total job Scope 3 emissions in metric tons CO2 equivalent (tCO2e). Sum of all categories."
            },
            "category_1_materials_tco2e": {
              "type": "number",
              "minimum": 0,
              "description": "GHG Protocol Scope 3 Category 1 — Purchased Goods and Services. Embedded carbon in consumable materials."
            },
            "category_4_transportation_tco2e": {
              "type": "number",
              "minimum": 0,
              "description": "GHG Protocol Scope 3 Category 4 — Upstream Transportation. All vehicle fuel combustion for job-related trips."
            },
            "category_5_waste_tco2e": {
              "type": "number",
              "minimum": 0,
              "description": "GHG Protocol Scope 3 Category 5 — Waste Generated in Operations. Disposal of materials removed from the property."
            },
            "category_12_demolished_materials_tco2e": {
              "type": "number",
              "minimum": 0,
              "description": "GHG Protocol Scope 3 Category 12 — End-of-Life Treatment. Embedded carbon in building materials removed and disposed."
            },
            "equipment_energy_kwh": {
              "type": "number",
              "minimum": 0,
              "description": "Optional. Total kWh consumed by contractor-deployed equipment. Included in Category 1 if equipment operates on building power; Category 4 if generator-powered."
            }
          }
        },
    
        "transportation": {
          "type": "object",
          "required": ["vehicle_trips", "calculation_method"],
          "properties": {
            "calculation_method": {
              "type": "string",
              "enum": ["primary_fuel_volume", "proxy_mileage"],
              "description": "'primary_fuel_volume' = actual gallons recorded. 'proxy_mileage' = miles x fleet average mpg x emission factor."
            },
            "vehicle_trips": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "required": ["vehicle_type", "fuel_type", "round_trips", "round_trip_miles"],
                "properties": {
                  "vehicle_type": {
                    "type": "string",
                    "enum": ["light_truck", "service_van", "equipment_trailer", "dump_truck", "heavy_equipment", "other"],
                    "description": "Vehicle category."
                  },
                  "fuel_type": {
                    "type": "string",
                    "enum": ["diesel", "gasoline", "electric", "hybrid"],
                    "description": "Primary fuel type."
                  },
                  "round_trips": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Number of complete round trips for this vehicle on this job."
                  },
                  "round_trip_miles": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Miles per round trip."
                  },
                  "fuel_consumed_gallons": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Optional. Actual fuel consumed in gallons. Preferred over proxy when available."
                  },
                  "emissions_kg_co2e": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Calculated emissions for this vehicle entry in kg CO2e."
                  },
                  "trip_purpose": {
                    "type": "string",
                    "enum": ["response", "monitoring", "equipment_delivery", "equipment_pickup", "waste_haul", "crew_transport", "other"],
                    "description": "Primary purpose of these trips."
                  }
                }
              }
            },
            "total_vehicle_miles": {
              "type": "number",
              "minimum": 0,
              "description": "Sum of all vehicle-miles across all entries."
            },
            "total_emissions_kg_co2e": {
              "type": "number",
              "minimum": 0,
              "description": "Total transportation emissions in kg CO2e."
            }
          }
        },
    
        "materials": {
          "type": "object",
          "required": ["calculation_method"],
          "properties": {
            "calculation_method": {
              "type": "string",
              "enum": ["primary_purchase_records", "proxy_job_type_standard"],
              "description": "'primary_purchase_records' = actual quantities from purchase records. 'proxy_job_type_standard' = RCP standard consumption rates by job type."
            },
            "chemicals": {
              "type": "array",
              "items": {
                "type": "object",
                "required": ["product_type", "quantity_liters"],
                "properties": {
                  "product_type": {
                    "type": "string",
                    "enum": ["antimicrobial", "biocide", "encapsulant", "deodorizer", "wetting_agent", "other"]
                  },
                  "quantity_liters": { "type": "number", "minimum": 0 },
                  "emission_factor_kg_co2e_per_liter": { "type": "number" },
                  "emissions_kg_co2e": { "type": "number", "minimum": 0 }
                }
              }
            },
            "ppe_disposable": {
              "type": "object",
              "properties": {
                "tyvek_suits": { "type": "integer", "minimum": 0 },
                "glove_pairs": { "type": "integer", "minimum": 0 },
                "respirators_n95": { "type": "integer", "minimum": 0 },
                "respirators_p100_half_face": { "type": "integer", "minimum": 0 },
                "boot_covers_pairs": { "type": "integer", "minimum": 0 },
                "emissions_kg_co2e": { "type": "number", "minimum": 0 }
              }
            },
            "containment_materials": {
              "type": "object",
              "properties": {
                "poly_sheeting_meters": { "type": "number", "minimum": 0 },
                "zipper_doors_units": { "type": "integer", "minimum": 0 },
                "hepa_filters_replaced": { "type": "integer", "minimum": 0 },
                "emissions_kg_co2e": { "type": "number", "minimum": 0 }
              }
            },
            "replacement_materials": {
              "type": "array",
              "description": "Installed replacement building materials, if reconstruction is within contractor scope.",
              "items": {
                "type": "object",
                "required": ["material_type", "quantity_kg"],
                "properties": {
                  "material_type": {
                    "type": "string",
                    "enum": ["drywall_standard", "drywall_moisture_resistant", "insulation_fiberglass", "insulation_mineral_wool", "lumber_framing", "carpet", "lvp_flooring", "tile_ceramic", "other"]
                  },
                  "quantity_kg": { "type": "number", "minimum": 0 },
                  "emission_factor_kg_co2e_per_kg": { "type": "number" },
                  "emissions_kg_co2e": { "type": "number", "minimum": 0 }
                }
              }
            },
            "total_emissions_kg_co2e": {
              "type": "number",
              "minimum": 0,
              "description": "Total materials emissions in kg CO2e. Sum of chemicals, PPE, containment, and replacement materials."
            }
          }
        },
    
        "waste": {
          "type": "object",
          "required": ["calculation_method", "waste_streams"],
          "properties": {
            "calculation_method": {
              "type": "string",
              "enum": ["primary_manifest_weights", "proxy_volume_conversion"],
              "description": "'primary_manifest_weights' = actual weights from disposal manifests. 'proxy_volume_conversion' = volume estimates converted to weight using RCP standard densities."
            },
            "waste_streams": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "required": ["waste_type", "disposal_method", "quantity_short_tons"],
                "properties": {
                  "waste_type": {
                    "type": "string",
                    "enum": ["cd_debris_mixed", "drywall_gypsum", "wood_debris", "contaminated_water", "regulated_hazmat", "biohazardous_waste", "ppe_disposable", "other"]
                  },
                  "disposal_method": {
                    "type": "string",
                    "enum": ["landfill", "recycling", "hazmat_incineration", "wastewater_municipal", "wastewater_licensed_facility", "other"]
                  },
                  "disposal_facility": {
                    "type": "string",
                    "description": "Optional. Name or identifier of disposal facility."
                  },
                  "quantity_short_tons": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Weight of waste in US short tons."
                  },
                  "haul_miles_one_way": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Optional. One-way distance to disposal facility in miles. Used to calculate haul transport emissions."
                  },
                  "emission_factor_tco2e_per_short_ton": { "type": "number" },
                  "emissions_kg_co2e": { "type": "number", "minimum": 0 }
                }
              }
            },
            "total_emissions_kg_co2e": {
              "type": "number",
              "minimum": 0,
              "description": "Total waste disposal emissions in kg CO2e."
            }
          }
        },
    
        "demolished_materials": {
          "type": "object",
          "required": ["calculation_method"],
          "properties": {
            "calculation_method": {
              "type": "string",
              "enum": ["primary_demolition_records", "proxy_affected_area"],
              "description": "'primary_demolition_records' = actual weights from demolition scope. 'proxy_affected_area' = RCP standard weight-per-sqft by material type."
            },
            "materials_removed": {
              "type": "array",
              "items": {
                "type": "object",
                "required": ["material_type", "quantity_kg"],
                "properties": {
                  "material_type": {
                    "type": "string",
                    "enum": ["drywall_standard", "drywall_moisture_resistant", "insulation_fiberglass", "insulation_mineral_wool", "lumber_framing", "carpet", "lvp_flooring", "tile_ceramic", "concrete", "other"]
                  },
                  "quantity_kg": { "type": "number", "minimum": 0 },
                  "emission_factor_kg_co2e_per_kg": { "type": "number" },
                  "emissions_kg_co2e": { "type": "number", "minimum": 0 }
                }
              }
            },
            "total_emissions_kg_co2e": {
              "type": "number",
              "minimum": 0,
              "description": "Total demolished materials emissions in kg CO2e."
            }
          }
        },
    
        "data_quality": {
          "type": "object",
          "description": "Optional but strongly recommended. Documents data sources and proxy usage for audit purposes.",
          "properties": {
            "preparer_name": { "type": "string" },
            "preparer_date": { "type": "string", "format": "date" },
            "primary_data_points": {
              "type": "array",
              "description": "List of data points captured from primary sources.",
              "items": {
                "type": "string",
                "enum": [
                  "vehicle_mileage_gps",
                  "vehicle_mileage_odometer",
                  "fuel_consumed_recorded",
                  "equipment_kwh_metered",
                  "waste_weight_manifest",
                  "materials_purchase_records",
                  "demolition_scope_documented"
                ]
              }
            },
            "proxy_data_points": {
              "type": "array",
              "description": "List of data points estimated using RCP proxy values.",
              "items": {
                "type": "string",
                "enum": [
                  "vehicle_mileage_estimated",
                  "fuel_consumed_proxy_mpg",
                  "equipment_kwh_proxy_wattage",
                  "waste_weight_estimated",
                  "ppe_consumption_standard_rate",
                  "materials_proxy_sqft"
                ]
              }
            },
            "notes": {
              "type": "string",
              "description": "Free-text field for data quality notes, exceptions, or unusual circumstances."
            }
          }
        }
      }
    }

    Minimal Valid Record Example

    The following is the smallest valid RCP-JCR-1.0 JSON object — all required fields populated, optional fields omitted. This represents a simple water damage job with proxy-based calculations:

    {
      "schema_version": "RCP-JCR-1.0",
      "generated_at": "2026-04-11T09:00:00Z",
    
      "job_identification": {
        "contractor_name": "Acme Restoration LLC",
        "job_id": "JOB-2026-04847",
        "client_name": "Westfield Properties Inc.",
        "property_address": {
          "street": "1200 Commerce Blvd",
          "city": "Sacramento",
          "state": "CA",
          "zip": "95814"
        },
        "job_type": "water_damage",
        "damage_category": "2",
        "damage_class": "3",
        "affected_area_sqft": 2400,
        "job_start_date": "2026-03-14",
        "job_completion_date": "2026-03-22",
        "reporting_standard": "Restoration Carbon Protocol v1.0, GHG Protocol Corporate Value Chain Standard",
        "egrid_subregion": "WECC"
      },
    
      "emissions_summary": {
        "total_job_emissions_tco2e": 1.84,
        "category_1_materials_tco2e": 0.09,
        "category_4_transportation_tco2e": 0.89,
        "category_5_waste_tco2e": 0.70,
        "category_12_demolished_materials_tco2e": 0.16
      },
    
      "transportation": {
        "calculation_method": "proxy_mileage",
        "vehicle_trips": [
          {
            "vehicle_type": "light_truck",
            "fuel_type": "diesel",
            "round_trips": 4,
            "round_trip_miles": 47,
            "emissions_kg_co2e": 189,
            "trip_purpose": "response"
          },
          {
            "vehicle_type": "equipment_trailer",
            "fuel_type": "diesel",
            "round_trips": 2,
            "round_trip_miles": 47,
            "emissions_kg_co2e": 151,
            "trip_purpose": "equipment_delivery"
          },
          {
            "vehicle_type": "dump_truck",
            "fuel_type": "diesel",
            "round_trips": 1,
            "round_trip_miles": 22,
            "emissions_kg_co2e": 50,
            "trip_purpose": "waste_haul"
          }
        ],
        "total_vehicle_miles": 470,
        "total_emissions_kg_co2e": 390
      },
    
      "materials": {
        "calculation_method": "proxy_job_type_standard",
        "chemicals": [
          {
            "product_type": "antimicrobial",
            "quantity_liters": 12,
            "emission_factor_kg_co2e_per_liter": 2.8,
            "emissions_kg_co2e": 33.6
          }
        ],
        "ppe_disposable": {
          "tyvek_suits": 18,
          "glove_pairs": 36,
          "respirators_n95": 24,
          "emissions_kg_co2e": 45
        },
        "containment_materials": {
          "poly_sheeting_meters": 40,
          "emissions_kg_co2e": 9
        },
        "total_emissions_kg_co2e": 87.6
      },
    
      "waste": {
        "calculation_method": "primary_manifest_weights",
        "waste_streams": [
          {
            "waste_type": "cd_debris_mixed",
            "disposal_method": "landfill",
            "disposal_facility": "Sacramento County Transfer Station",
            "quantity_short_tons": 1.8,
            "haul_miles_one_way": 11,
            "emission_factor_tco2e_per_short_ton": 0.021,
            "emissions_kg_co2e": 37.8
          }
        ],
        "total_emissions_kg_co2e": 37.8
      },
    
      "demolished_materials": {
        "calculation_method": "primary_demolition_records",
        "materials_removed": [
          {
            "material_type": "drywall_standard",
            "quantity_kg": 900,
            "emission_factor_kg_co2e_per_kg": 0.12,
            "emissions_kg_co2e": 108
          },
          {
            "material_type": "carpet",
            "quantity_kg": 180,
            "emission_factor_kg_co2e_per_kg": 5.40,
            "emissions_kg_co2e": 972
          }
        ],
        "total_emissions_kg_co2e": 1080
      },
    
      "data_quality": {
        "preparer_name": "Jane Smith, Operations Manager",
        "preparer_date": "2026-03-22",
        "primary_data_points": ["waste_weight_manifest", "materials_purchase_records"],
        "proxy_data_points": ["vehicle_mileage_estimated", "ppe_consumption_standard_rate"],
        "notes": "Vehicle mileage estimated from dispatch address records. PPE consumption from standard Cat 2, Class 3 rate table."
      }
    }

    Emission Factors Referenced in This Schema

    All emission factors used in RCP-JCR-1.0 calculations are drawn from the RCP Emission Factor Reference Table. The authoritative source for each factor is documented there. The key factors for software implementations:

    • Grid electricity (US national average): 0.3499 kg CO₂e/kWh — EPA eGRID 2023
    • Diesel fuel (mobile combustion): 10.21 kg CO₂e/gallon — EPA 2025 EF Hub
    • Gasoline (mobile combustion): 8.89 kg CO₂e/gallon — EPA 2025 EF Hub
    • Mixed C&D waste, landfill: 0.021 tCO₂e/short ton — EPA WARM v16
    • Drywall production: 0.12 kg CO₂e/kg — EPA WARM v16
    • Carpet (nylon): 5.40 kg CO₂e/kg — DEFRA 2024

    Implementation Notes for Software Developers

    Several implementation patterns are worth noting for platforms building RCP compatibility:

    Field nullability: Optional fields should be omitted entirely when no data is available, not set to null or 0. A missing field is distinguishable from a zero-value field, which matters for audit purposes.

    Calculation_method flags: The calculation_method field in each section is required because it tells the receiving system and verifier whether to trust the numbers at primary-data quality or proxy quality. ESG platforms that ingest RCP JSON should surface this distinction to their users.

    Unit consistency: All emissions totals in emissions_summary are in metric tons CO₂e (tCO₂e). All emissions in sub-sections are in kilograms CO₂e (kg CO₂e). The conversion is 1 tCO₂e = 1,000 kg CO₂e. Software implementations should validate unit consistency at write time.

    eGRID subregion codes: The canonical list of eGRID subregion codes is available from EPA at epa.gov/egrid. The US_AVG code is an RCP extension for cases where the subregion is unknown — it instructs consuming systems to apply the national average factor (0.3499 kg CO₂e/kWh).

    Schema validation: Implementations should validate records against this schema before transmission. Invalid records — missing required fields, wrong data types, enum violations — must not be transmitted as final RCP disclosures.


    Versioning and Backwards Compatibility

    The schema_version field is used by consuming systems to identify which version of the RCP schema a record was produced under. RCP v2.0 will introduce a new schema version string and may add fields not present in v1.0. All v1.0 records remain valid and will be processed by systems that implement backwards compatibility for RCP-JCR-1.0. No fields will be removed between minor versions; only additions are permitted.

    The current schema is published at: tygartmedia.com/rcp/schema/v1.0/job-carbon-report.json


    Sources and References


  • RCP Proxy Estimation Guide: How to Calculate When Primary Data Is Missing

    The RCP requires 12 data points per job. In practice, some of those data points will be unavailable — particularly for historical jobs being calculated retrospectively, or for field situations where documentation wasn’t captured as completely as the standard requires. The proxy estimation methodology provides documented substitution methods that produce defensible, auditor-acceptable estimates when primary data is missing.

    Key principle: A documented estimate with a stated assumption is always preferable to a blank field in an RCP report. ESG auditors understand that emissions calculation involves uncertainty — what they require is transparency about where estimation was used and what the basis of that estimation was. Undocumented guesses are not acceptable. Documented proxies are.

    Data Quality Tiers

    The RCP uses three data quality tiers, consistent with GHG Protocol Scope 3 guidance:

    Tier Description Audit Acceptability
    Tier 1 — Primary measured data Actual measurements from job records: GPS mileage, disposal facility receipts with weights, materials purchase orders by job Highest — preferred for all data points
    Tier 2 — Primary estimated data Calculated from documented job parameters using RCP proxy methods: affected area × consumption rate, crew size × duration × unit rate Acceptable — must document calculation method and basis
    Tier 3 — Spend-based / invoice-based proxy Dollar amount × industry average emission factor — the fallback of last resort Lowest — use only when no job-specific data is available; flag prominently in data quality notes

    Proxy Methods by Data Point

    Data Point 1 — Vehicle Mileage (Transportation)

    Primary source: GPS fleet tracking data, dispatch records, driver logs.

    Proxy method: Use Google Maps or equivalent mapping tool to calculate round-trip distance from your facility (or prior job address for multi-stop days) to the job site. Multiply by the number of crew trips documented in time records or invoices. This is a Tier 2 estimate.

    Default proxy (Tier 3, last resort): Industry average mobilization distance for restoration contractors is 22 miles one-way (44 miles round trip). Apply this default only when no address or routing information is available. Note as Tier 3 estimate in data quality section.

    Data Point 2 — Waste Transport Mileage

    Primary source: Waste manifests and hauler receipts (these typically include origin and destination).

    Proxy method: Use the distance from the job site to the nearest licensed disposal facility of the appropriate type (standard C&D landfill, licensed ACM facility, medical waste facility). Use online waste facility directories (EPA RCRA Info for hazmat, state environmental agency databases for C&D landfills) to identify the nearest appropriate facility.

    Default proxies by facility type (Tier 3): Standard C&D landfill: 18 miles. Licensed ACM facility: 60 miles. Licensed PCB incineration: 150 miles. Medical waste facility: 55 miles.

    Data Point 3 — Equipment Power Source

    Primary source: Job documentation noting whether equipment ran on building power or contractor generator; generator fuel logs.

    Proxy method: Default assumption is building electrical supply unless your company policy or the job type (remote location, building power unavailable) indicates otherwise. Note the assumption explicitly. If generator use is suspected but not documented, use the following generator fuel proxy: standard drying equipment setup (3 dehumidifiers + 6 air movers) consuming approximately 2.5 gallons of diesel per 8-hour shift × number of drying days × 10.21 kg CO2e per gallon diesel.

    Data Points 4–5 — Chemical Treatments and PPE Consumption

    Application rate proxies by job type and surface type:

    Job Type / Surface Antimicrobial Rate Tyvek Suits per Tech per Day Glove Pairs per Tech per Day N95/P100 per Tech per Day
    Cat 1 water — porous surfaces 0.008 L/sq ft 0.5 2 0.5
    Cat 2 water — porous surfaces 0.015 L/sq ft 1.0 3 1.0
    Cat 3 water — porous surfaces 0.025 L/sq ft (×2 applications) 2.0 5 2.0
    Mold Condition 3 — first application 0.020 L/sq ft 2.0 4 1.5
    Mold Condition 3 — second application 0.015 L/sq ft 2.0 4 1.5
    Fire — smoke cleaning (chemical sponge + cleaner) 1 sponge per 50 sq ft + 0.010 L/sq ft cleaner 1.5 4 1.5
    Hazmat abatement (Level C, standard exit protocol) N/A (wetting agent: 0.003 L/sq ft ACM) 3.0 (full replacement each exit) 6 2 pairs OV/P100
    Biohazard Level C 0.025 L/sq ft × 2 applications 3.0 (full replacement each exit) 6 2 pairs OV/P100
    Biohazard Level B (decomposition) 0.025 L/sq ft × 2 applications 3.0 Level B full-suit (replace each exit) 6 Supplied air — 0 disposable

    Data Point 6 — Containment Materials

    Proxy method: Standard containment for a single affected room (standard ceiling height 8–10 ft): perimeter of affected area (linear feet) × ceiling height × 1.2 (overlap factor) = m² of poly sheeting. For compartmentalized commercial spaces, add 20 m² per additional doorway or penetration point.

    Zipper doors: 1 per entry/exit point, typically 2 per contained area (entry + equipment pass-through).

    Data Points 7–8 — Waste Volume and Disposal

    Volume proxy: Use weight estimation proxies from the RCP Emission Factor Reference Table (drywall at 2.5 lbs/sq ft, carpet at 3.0 lbs/sq ft, etc.) applied to the demolished area documented in job scope records.

    Disposal method proxy: If disposal facility type is unknown, apply default based on material type: standard C&D for non-contaminated demolition debris, regulated C&D or hazmat for contaminated materials (see Table 3 in the Emission Factor Reference).

    Data Points 9–10 — Demolished and Installed Materials

    Proxy method: Calculate from demolition scope records (affected area by room, material type documented in scope of work or Xactimate/Symbility estimate). Weight estimation proxies apply as above. For installed materials in reconstruction phase, use square footage from scope-of-work documentation and apply standard weight proxies.

    Documenting Proxy Use in Your RCP Report

    Every proxy estimate must be documented in the data quality section of the per-job carbon report. The format for documenting a proxy is: [Data point name]: [Tier 2 or 3 estimate]. [Brief description of proxy method]. [Source of proxy rate or assumption].

    Example: “Vehicle mileage: Tier 2 estimate. Round-trip distance calculated using Google Maps from company facility to job site address (44 miles RT × 4 crew trips). Crew trip count from job invoices. Source: RCP proxy method P-4-1.”

    Example: “PPE consumption: Tier 2 estimate. Cat 3 water damage standard consumption rate applied (2.0 Tyvek/tech/day, 5 glove pairs/tech/day) per RCP Table A-5. Actual PPE not tracked separately on this job.”

    Can a per-job carbon report with all Tier 2 estimates be used in GRESB reporting?

    Yes. GRESB accepts primary data at various quality levels, including documented estimates. A Tier 2 estimate is primary data (not spend-based estimation) and is acceptable. The data quality notation in the RCP report demonstrates that you have applied documented methodology rather than guessing, which is what auditors need to see.

    What is the margin of error typical for Tier 2 proxy estimates?

    Typical uncertainty range for Tier 2 RCP estimates is ±20–35% relative to primary measured data. This compares favorably to spend-based estimation (Tier 3), which typically has ±50–100% uncertainty for restoration work due to the high variability of job type, scope, and emission profile at equivalent invoice amounts.

    Should you disclose the uncertainty range in the per-job carbon report?

    The RCP does not require quantified uncertainty ranges in the per-job report, but noting that Tier 2 estimates were used in the data quality section effectively communicates to auditors that the figure carries inherent estimation uncertainty. For clients whose ESG consultants or auditors specifically request uncertainty ranges, use the guidance values above (±20–35% for Tier 2).


  • RCP Emission Factor Reference Table: All Values in One Place

    This reference table consolidates all emission factors used in Restoration Carbon Protocol calculations. It is the lookup document you use when completing a per-job carbon report — every factor needed for Categories 1, 4, 5, and 12 across all five job types is in this table, with source citations for audit purposes.

    Version: RCP v1.0 | Factor vintage: EPA 2024, DEFRA 2024, EPA WARM v16 | Units: All values in kg CO2e unless noted as tCO2e

    Table 1: Category 4 — Vehicle Transportation

    Vehicle Type Fuel kg CO2e per mile Source
    Passenger car Gasoline 0.355 EPA Table 2, Mobile Combustion 2024
    Light-duty truck / work van (under 8,500 lbs GVWR) Gasoline 0.503 EPA Table 2, Mobile Combustion 2024
    Light-duty truck / cargo van Diesel 0.523 EPA Table 2, Mobile Combustion 2024
    Medium-duty truck / equipment trailer (8,500–26,000 lbs GVWR) Diesel 1.084 EPA Table 2, Mobile Combustion 2024
    Heavy-duty truck — unloaded (26,000+ lbs GVWR) Diesel 1.612 EPA Table 2, Mobile Combustion 2024
    Heavy-duty truck — loaded (waste hauling, C&D) Diesel 2.25 EPA Table 2 + load factor adjustment
    Licensed hazmat waste hauler (ACM, lead, general hazmat) Diesel 3.20 EPA Table 2 + hazmat vehicle premium
    Licensed hazmat hauler (PCB, high-hazard specialty) Diesel 3.80 EPA Table 2 + specialty vehicle premium
    Medical waste hauler (biohazard) Diesel 2.80 EPA Table 2 + medical waste vehicle
    Pack-out truck (contents restoration) — loaded Diesel 2.25 EPA Table 2 + load factor
    Pack-out truck — empty (return trip) Diesel 1.612 EPA Table 2 — unloaded heavy

    Table 2: Category 1 — Materials

    Chemical Treatments

    Material Unit kg CO2e per unit Source
    Quaternary ammonium antimicrobial / biocide (liquid) Liter 2.8 EPA EEIO — Chemical manufacturing sector
    Hydrogen peroxide-based antimicrobial/biocide Liter 1.9 EPA EEIO — Chemical manufacturing sector
    Borax-based mold treatment kg 1.1 EPA EEIO — Inorganic chemical manufacturing
    Hospital-grade disinfectant (EPA-registered) Liter 2.8 EPA EEIO — Chemical manufacturing sector
    Enzyme biological digester / deodorizer Liter 1.6 EPA EEIO — Specialty chemical manufacturing
    Encapsulant / smoke-blocking primer Gallon 4.2 EPA EEIO — Paint and coatings manufacturing
    Thermal fogging agent Liter 2.1 EPA EEIO — Chemical manufacturing sector
    Desiccant drying agent (silica gel) kg 1.4 EPA EEIO — Chemical manufacturing sector
    Wetting agent / amended water (surfactant for ACM) Liter 1.4 EPA EEIO — Chemical manufacturing sector
    Dry ice (CO2 pellets for blast cleaning) kg 0.85 EPA EEIO — Industrial gas manufacturing

    Personal Protective Equipment

    PPE Item Unit kg CO2e per unit Source
    Disposable Tyvek suit (Level C) Each 1.2 EPA EEIO — Apparel manufacturing
    Level B full encapsulating suit Each 3.0 EPA EEIO — Apparel/specialty manufacturing
    Level C PPE full kit (Tyvek + gloves + goggles + boot covers) Kit 1.8 Composite of individual items
    Level B PPE full kit (encapsulating suit + supplied air + gloves) Kit 4.2 Composite of individual items
    Nitrile gloves (pair) Pair 0.3 EPA EEIO — Rubber and plastics manufacturing
    N95 respirator (disposable) Each 0.4 EPA EEIO — Medical equipment manufacturing
    Half-face respirator, P100 cartridges (pair) Pair 0.8 EPA EEIO — Medical equipment manufacturing
    Full-face respirator cartridges (pair) Pair 1.2 EPA EEIO — Medical equipment manufacturing
    Boot covers (pair) Pair 0.15 EPA EEIO — Rubber and plastics

    Containment and Filtration

    Material Unit kg CO2e per unit Source
    6-mil polyethylene sheeting 0.55 EPA EEIO — Plastics product manufacturing
    4-mil polyethylene sheeting 0.37 EPA EEIO — Plastics product manufacturing
    Double-layer 6-mil containment (hazmat/biohazard) 1.10 2× single-layer factor
    Zipper door — disposable Each 1.8 EPA EEIO — Plastics/hardware
    Zipper door — reusable (amortized over 20 uses) Use 0.09 1.8 ÷ 20 uses
    HEPA filter — air scrubber (standard) Each 3.2 EPA EEIO — Industrial machinery manufacturing
    HEPA vacuum bag (commercial grade) Each 0.4 EPA EEIO — Paper/plastics manufacturing
    Biohazard bag — 33-gallon red (medical waste) Each 0.65 EPA EEIO — Medical plastics manufacturing
    ACM disposal bag — 6-mil labeled (33-gallon) Each 0.55 EPA EEIO — Plastics product manufacturing
    Sharps disposal container (1-gallon) Each 0.35 EPA EEIO — Plastics/medical equipment
    Glove bag (pipe insulation removal) Each 0.85 EPA EEIO — Plastics product manufacturing

    Table 3: Category 5 — Waste Disposal

    Waste Type Disposal Method tCO2e per ton Source
    Standard C&D debris (non-hazardous mixed) Landfill 0.16 EPA WARM v16
    Cat 2 water-contaminated porous materials Standard landfill 0.18 EPA WARM + contamination premium
    Cat 3 sewage-contaminated materials Regulated C&D landfill 0.22 EPA WARM + regulated disposal
    Smoke-contaminated C&D debris (standard) Standard landfill 0.16 EPA WARM v16
    Smoke-contaminated C&D (regulated facility) Licensed C&D landfill 0.20 EPA WARM + transport premium
    Mold-contaminated porous materials Standard landfill (most jurisdictions) 0.18 EPA WARM + contamination premium
    Friable ACM (pipe insulation, spray fireproofing) Licensed hazmat landfill 0.42 EPA WARM + licensed facility + transport
    Non-friable ACM (floor tiles, roofing, joint compound) Licensed C&D with ACM cell 0.28 EPA WARM + regulated C&D transport
    Lead paint debris (TCLP-classified hazardous) Licensed hazmat landfill 0.38 EPA WARM + hazmat transport
    PCB-containing materials ≥50 ppm Licensed PCB incineration 1.85 EPA hazardous waste incineration factors
    PCB-containing materials <50 ppm Licensed landfill 0.22 EPA WARM + transport premium
    Mercury-containing lamps/thermostats Mercury recycler 0.15 EPA WARM — recycling credit offset
    Regulated medical/biohazard waste (standard) Autoclave + licensed landfill 0.55 EPA medical waste treatment factors
    High-pathogen biohazard waste High-temperature incineration 0.85 EPA hazardous waste incineration factors
    Sharps waste Sharps autoclave or incineration 0.65 EPA medical waste — sharps category
    Contaminated water (Cat 3, to wastewater treatment) Municipal wastewater treatment 0.000272 per liter EPA WARM v16 — wastewater treatment
    Disposable PPE — standard Standard landfill 0.25 EPA WARM — mixed plastics
    Disposable PPE — hazmat-contaminated Licensed hazmat or medical waste landfill 0.30–0.55 Apply appropriate hazmat or medical waste factor

    Table 4: Category 12 — Demolished Building Materials

    Material tCO2e per ton (landfill) tCO2e per ton (recycled) Source
    Gypsum drywall (1/2″) 0.16 0.02 EPA WARM v16
    Dimensional lumber / wood framing -0.07 -0.15 EPA WARM v16 — carbon storage credit
    OSB sheathing -0.05 -0.12 EPA WARM v16 — carbon storage credit
    Carpet + pad (standard residential/commercial) 0.33 0.05 EPA WARM v16
    Hardwood flooring -0.12 -0.18 EPA WARM v16 — carbon storage credit
    Vinyl / LVP flooring 0.28 0.08 EPA WARM v16 — plastics category
    Ceramic / porcelain tile 0.04 0.01 EPA WARM v16 — inert material
    Fiberglass batt insulation 0.33 0.05 EPA WARM v16
    Cellulose insulation (spray or loose-fill) 0.06 -0.02 EPA WARM v16
    Spray polyurethane foam insulation (SPF) 0.72 N/A EPA WARM v16 — plastics category
    Acoustic ceiling tiles (standard) 0.12 0.03 EPA WARM v16 — ceiling tile category
    Structural steel (demolished) -0.85 -0.95 EPA WARM v16 — steel recycling credit
    Copper pipe / wiring -0.45 -0.60 EPA WARM v16 — copper recycling credit
    Aluminum (ductwork, framing) -1.20 -1.45 EPA WARM v16 — aluminum recycling credit (high value)

    Weight Estimation Proxies

    When disposal receipts are not available, use these weight proxies to estimate demolished material tonnage:

    Material Weight per sq ft (installed, dry) Notes
    1/2″ gypsum drywall 2.5 lbs Use dry weight, not post-water-damage wet weight
    5/8″ gypsum drywall (Type X) 3.1 lbs Common in commercial construction
    Carpet + pad (residential) 3.0 lbs Including pad and tack strips
    Carpet + pad (commercial, glue-down) 2.2 lbs Heavier carpet, no pad
    LVP / vinyl plank flooring 2.8 lbs Including underlayment
    Ceramic tile (floor, 3/8″) 4.5 lbs Including thin-set mortar
    Acoustic ceiling tiles (2’×2′ standard) 1.8 lbs Mineral fiber type
    Fiberglass batt insulation (3.5″ R-13) 0.5 lbs Per sq ft of coverage area
    Dimensional lumber 2×4 wall framing (per linear foot of wall) 4.0 lbs Assumes 16″ OC framing in 8-ft walls
    Non-friable ACM floor tile (9″×9″) 4.0 lbs Including mastic adhesive

    How often will this reference table be updated?

    The RCP emission factor reference table will be updated annually following the release of updated EPA WARM, EPA Mobile Combustion, and DEFRA databases. Version numbers are included in the table header — always cite the version used in your per-job carbon report data quality notes.

    What if I need an emission factor for a material not in this table?

    First check EPA WARM v16 directly (available free at epa.gov/warm). Second, check the EPA EEIO database for the relevant industry sector. Third, check DEFRA’s Conversion Factors for Company Reporting. If none of these sources contain the specific material, use the closest proxy category and document the substitution in your data quality notes.

    Are these factors suitable for use in EU CSRD reporting?

    EPA and EPA WARM factors are US-specific but are accepted in most international ESG frameworks when accompanied by clear source citation. For EU CSRD reporting specifically, DEFRA factors (UK) or OECD emission factors may be preferred by auditors for non-US operations. The RCP will publish a DEFRA-specific factor table in a future supplement for EU-applicable reporting contexts.


    Table 6: Refrigerant GWP Values — IPCC AR6 Update

    The Global Warming Potential values for refrigerants used in restoration drying equipment have been updated under IPCC Sixth Assessment Report (AR6, 2021). AR6 GWP-100 values are 14–18% higher than AR5 for the HFCs commonly found in LGR dehumidifiers. RCP v1.0 uses AR6 values for refrigerant-related calculations. The EPA AIM Act continues to use AR4 values for regulatory compliance; UNFCCC/Paris reporting uses AR5. When delivering data to clients, disclose which GWP vintage was used.

    Refrigerant Common use in restoration AR5 GWP-100 AR6 GWP-100 Change
    R-410A (HFC-32/125 blend) Most current LGR dehumidifiers ~1,924 ~2,256 +17.3%
    R-32 (HFC-32) Dri-Eaz LGR 6000i; newer units 677 771 +13.9%
    R-454B (HFC-32/HFO-1234yf blend) Next-gen low-GWP units ~467 ~530 +13.5%
    HFC-134a (R-134a) Older residential dehumidifiers 1,300 1,530 +17.7%

    Source: IPCC AR6 WG1, Chapter 7, Table 7.SM.7 (2021). EPA Technology Transitions GWP Reference Table.


    Table 7: EPA eGRID 2023 — Subregional Emission Factors for Major Restoration Markets

    The national average grid factor (0.3497 kg CO₂e/kWh, eGRID 2023) used as the RCP default understates or overstates electricity emissions significantly depending on where equipment is operated. Using location-specific subregion factors improves data quality for clients in GRESB, SBTi, and CSRD reporting contexts.

    Use the subregion factor for the state/metro where the job was performed, not where the contractor’s facility is located.

    eGRID Subregion Primary coverage kg CO₂e/kWh vs. RCP default (0.3499)
    NYUP Upstate New York 0.1101 -68.5%
    CAMX California / Western US 0.1950 -44.3%
    NEWE New England 0.2464 -29.6%
    ERCT Texas (ERCOT) 0.3341 -4.5%
    US Average National default (RCP v1.0) 0.3497 Baseline
    FRCC Florida 0.3560 +1.7%
    SRSO Southeast (excluding FL) 0.3837 +9.7%
    NYCW NYC and Westchester 0.3927 +12.2%

    Source: EPA eGRID2023 Summary Tables Rev 2 (published March 2025). Full subregion table available at epa.gov/egrid. A California restoration contractor using the national average overstates electricity emissions by 44%; a Florida contractor understates by 1.7%. The difference is largest for multi-week jobs with sustained equipment energy consumption.


    Table 8: PPE and Consumables — LCA-Sourced Per-Unit Emission Factors

    The EPA EEIO proxies in Table 2 are sector-level estimates. The following values are sourced from published lifecycle assessments and Environmental Product Declarations for specific product types. Use these in place of the EEIO values where the product type matches.

    Item Unit kg CO₂e Source vs. EEIO proxy
    Nitrile glove (3.5g, size M) Each 0.0277 Top Glove LCA 2024, SATRA-verified -82% vs. EEIO pair proxy
    Nitrile glove pair Pair 0.0554 Top Glove LCA 2024 -82% vs. current 0.3 EEIO
    N95 respirator (disposable) Each 0.05 Springer Env. Chem. Letters 2022 -88% vs. current 0.4 EEIO
    DuPont Tyvek 400 coverall (180g HDPE) Each 0.40–0.63 Estimated: 180g × 2.2–3.5 kg CO₂e/kg HDPE -47–65% vs. current 1.2 EEIO
    LVP/LVT flooring (Shaw EcoWorx) 5.2 Shaw Contract EcoWorx Resilient EPD 2023 Consistent with WARM v16 plastics
    Ceramic tile (standard) kg 0.78 ICE Database v3.0 (University of Bath) More granular than WARM v16 inert
    Ready-mix concrete (30 MPa) kg 0.13 ICE Database v3.0 132 kg CO₂e/m³
    Polyethylene LDPE sheeting kg 1.793 DEFRA 2024 (closed-loop recycling scenario) Use as proxy for virgin LDPE sheeting
    H₂O₂ antimicrobial (active ingredient) kg active 1.33 ACS Omega 2025 (anthraquinone process) Lower than EEIO chemical proxy

    Note on Tyvek: DuPont has not published an independent lifecycle assessment for standard Tyvek 400 coveralls. The value above is estimated from HDPE production emission factors. DuPont has commissioned an LCA for Tyvek 500 Xpert BioCircle (a recycled-content variant) claiming 58% reduction versus standard Tyvek, which implies a quantified baseline exists internally. The RCP will update this value if DuPont publishes the underlying LCA data.

    Note on nylon carpet (DEFRA 2024): The DEFRA 2024 value of 5.40 kg CO₂e/kg for nylon carpet should be verified against the actual DEFRA 2024 full spreadsheet to confirm whether this represents virgin nylon production or a closed-loop recycling scenario. DEFRA 2024 uses AR5 GWP values throughout.


    Factor Vintage and GWP Basis: Version Disclosure

    RCP v1.0 uses the following factor vintages:

    • Electricity: EPA eGRID 2023 (published March 2025)
    • Mobile combustion / vehicle fuels: EPA 2025 Emission Factors Hub
    • Waste disposal: EPA WARM v16
    • Refrigerant GWPs: IPCC AR6 (2021)
    • Materials (non-EEIO): ICE Database v3.0, EPD-sourced, DEFRA 2024
    • Materials (EEIO proxy): EPA USEEIO v2.0
    • GWP basis: AR6 GWP-100 for refrigerants; AR5 GWP-100 for all other gases (consistent with EPA GHG Inventory basis)

    When factors are updated in patch releases, the factor vintage table updates accordingly. All RCP Job Carbon Reports should reference the schema_version field (RCP-JCR-1.0) which implicitly references the factor table version used at calculation time. For year-over-year comparisons, use the same factor vintage across both years unless a major correction justifies restating prior-year figures.


  • RCP and KnowHow: How the Internal and External Knowledge Stacks Work Together

    The restoration industry is developing two parallel knowledge infrastructure plays simultaneously, and they are more complementary than they might appear at first.

    KnowHow — the AI-powered operational knowledge platform — solves the internal problem: capturing what your best people know, making it accessible to every team member, and ensuring institutional knowledge doesn’t walk out the door when someone leaves. It makes your operational playbook consistent, scalable, and resilient to turnover.

    The Restoration Carbon Protocol solves the external problem: structuring your operational data — specifically the emissions data generated by your work — in a format that commercial clients can use in their ESG disclosures. It makes your environmental footprint visible, consistent, and credible to institutional clients who need it for their own reporting obligations.

    Where the Two Stacks Connect

    The connection point is job documentation. KnowHow helps your crew follow consistent protocols — which means the data generated during a job (materials used, waste generated, work performed) is more consistent and reliably captured. That consistency directly benefits RCP data quality. When crews follow a KnowHow-documented protocol for Category 3 water damage mitigation, the resulting data consistency makes the RCP calculation for that job more reliable.

    In the other direction: RCP creates external accountability for the quality of your internal processes. When you’re producing per-job carbon reports for commercial clients that may be reviewed by ESG auditors, the incentive to maintain rigorous job documentation increases. External reporting requirements are one of the most effective drivers of internal data discipline.

    The Two-Layer Architecture

    Layer 1 — Internal (KnowHow): Operational SOPs, job protocols, training materials, quality standards. Purpose: consistent execution, scalable training, knowledge retention. Audience: your team. Knowledge stays inside your organization.

    Layer 2 — External (RCP): Per-job carbon data, client-facing reports, ESG vendor profiles, methodology documentation. Purpose: commercial client ESG compliance, preferred vendor status, market differentiation. Audience: commercial clients, their auditors, government contracting officers. Knowledge flows outward in structured, client-usable form.

    Neither layer replaces the other. A contractor with excellent internal processes (Layer 1) but no external reporting capability (Layer 2) has a good operation that commercial clients can’t verify. A contractor with RCP reporting capability (Layer 2) but inconsistent internal processes (Layer 1) has credibility problems — the external reports may not reflect consistent underlying reality. The competitive position that’s hard to replicate is both layers, built deliberately, operating together.

    Does KnowHow integration with RCP require a technical connection between the platforms?

    Not currently. The integration is conceptual — KnowHow documents the protocols, crews follow them, and resulting data consistency benefits RCP calculations. Future integration could include RCP data capture fields within KnowHow’s job documentation workflows.

    Which should a contractor implement first?

    Either order works. If internal processes are inconsistent, KnowHow first — consistent processes make RCP data more reliable. If processes are consistent but no external reporting capability exists, RCP first — the commercial client relationship benefit is more immediately visible. Both are worth pursuing regardless of order.

    Are there other knowledge platforms comparable to KnowHow?

    General knowledge management platforms (Notion, Confluence, Process Street) can serve the same internal documentation purpose with more configuration effort. The RCP is compatible with any internal knowledge management approach — it’s agnostic to which platform captures and delivers your operational SOPs.


  • The RCP Job Carbon Report: Template, Fields, and Example Values

    The RCP Job Carbon Report is the output document restoration contractors provide to commercial clients for their Scope 3 ESG disclosures. It is designed to be completed at job close-out using data captured during the job — not reconstructed after the fact, not requiring an external consultant. The template below defines each field and provides example values from a Category 2, Class 3 water damage job at a commercial office building.

    Section 1: Job Identification

    Contractor name | Job ID | Client name | Property address | Job type | Damage classification | Affected area (sq ft) | Job start date | Job completion date | Reporting standard: “Restoration Carbon Protocol v1.0, GHG Protocol Corporate Value Chain Standard”

    Example: Acme Restoration LLC | JOB-2026-04847 | Westfield Properties Inc. | 1200 Commerce Blvd, Sacramento CA | Water Damage Mitigation | Category 2, Class 3 | 2,400 sq ft | 2026-03-14 | 2026-03-22

    Section 2: Emissions Summary

    Total Job Emissions: 1.84 tCO2e | Category 1 (Materials): 0.09 tCO2e | Category 4 (Transportation): 0.89 tCO2e | Category 5 (Waste): 0.70 tCO2e | Category 12 (Demolished materials): 0.16 tCO2e

    Section 3: Category 4 — Transportation Calculation

    2 light trucks × 47 mi round trip × 4 trips = 376 vehicle-miles → 376 × 0.503 kg CO2e/mi = 189 kg CO2e
    1 equipment trailer × 47 mi × 2 trips = 94 vehicle-miles → 94 × 1.612 kg CO2e/mi = 151 kg CO2e
    1 dump truck to landfill × 22 mi × 1 trip → 22 × 2.25 kg CO2e/mi = 50 kg CO2e
    Equipment power source: building electrical supply (Scope 2 — not included)
    Category 4 Subtotal: 390 kg CO2e = 0.39 tCO2e

    Section 4: Category 1 — Materials Calculation

    Antimicrobial treatment: 12 liters × 2.8 kg CO2e/liter = 34 kg CO2e
    Disposable PPE (18 Tyvek, 36 glove pairs, 24 N95): estimated 45 kg CO2e (standard rate Cat 2)
    Containment materials: 40m poly sheeting → 40 × 0.22 kg CO2e/m = 9 kg CO2e
    Category 1 Subtotal: 88 kg CO2e = 0.09 tCO2e

    Section 5: Category 5 — Waste Calculation

    C&D debris (wet drywall, flooring): 1.8 tons → 1.8 × 0.16 tCO2e/ton = 0.29 tCO2e
    Disposable PPE and consumables: 0.08 tons → 0.08 × 0.25 tCO2e/ton = 0.02 tCO2e
    Contaminated water: 0 liters (Cat 2, extracted water discharged to building drain — property owner’s municipal utility)
    Category 5 Subtotal: 0.31 tCO2e

    Section 6: Category 12 — Demolished Materials

    Wet drywall removed: 1.0 ton → 1.0 × 0.16 tCO2e/ton = 0.16 tCO2e
    Category 12 Subtotal: 0.16 tCO2e

    Section 7: Data Quality Notes

    PPE consumption estimated from standard consumption rate for Category 2, Class 3 commercial job (RCP Table 3A) — actual units not tracked separately on this job. Vehicle mileage from dispatch records. Waste weight from disposal facility receipt dated 2026-03-22. All other data points from primary job records.

    Is the RCP Job Carbon Report a legal document?

    No. It is a technical emissions report for ESG disclosure purposes, similar to an energy audit report. It does not constitute a regulatory filing or create legal liability beyond standard professional services obligations.

    Should the report be signed by the contractor?

    A signature with preparer name and date adds credibility and creates a clear chain of responsibility. Not required by the RCP standard but recommended for clients with third-party verified disclosures.

    Can the report be provided as a structured data file rather than PDF?

    Yes — a CSV or JSON file with the same fields is acceptable and preferred by clients aggregating data across many vendor reports. The RCP will publish a standard data schema for digital delivery as the standard matures.


    Machine-Readable Format: The RCP JSON Record

    The PDF or document version of the Job Carbon Report serves the human reader — the ESG manager reviewing vendor data. The machine-readable version serves the system — the ESG platform, the portfolio carbon database, the GRESB submission tool. Both are valid RCP delivery formats. For commercial clients aggregating data across dozens of contractors and hundreds of jobs per year, JSON is strongly preferred.

    The RCP Job Carbon Report JSON schema (RCP-JCR-1.0) is published at tygartmedia.com/rcp-json-schema-v1-machine-readable-standard/. The schema defines every field name, data type, and valid value. Contractors who want to deliver RCP data digitally should produce JSON that validates against that schema.

    The minimum JSON record for the example job above looks like this — it maps exactly to the seven sections of the document template:

    {
      "schema_version": "RCP-JCR-1.0",
      "job_identification": {
        "contractor_name": "Acme Restoration LLC",
        "job_id": "JOB-2026-04847",
        "client_name": "Westfield Properties Inc.",
        "property_address": { "street": "1200 Commerce Blvd", "city": "Sacramento", "state": "CA", "zip": "95814" },
        "job_type": "water_damage",
        "damage_category": "2",
        "damage_class": "3",
        "affected_area_sqft": 2400,
        "job_start_date": "2026-03-14",
        "job_completion_date": "2026-03-22",
        "reporting_standard": "Restoration Carbon Protocol v1.0, GHG Protocol Corporate Value Chain Standard",
        "egrid_subregion": "WECC"
      },
      "emissions_summary": {
        "total_job_emissions_tco2e": 1.84,
        "category_1_materials_tco2e": 0.09,
        "category_4_transportation_tco2e": 0.89,
        "category_5_waste_tco2e": 0.70,
        "category_12_demolished_materials_tco2e": 0.16
      },
      "data_quality": {
        "preparer_name": "Jane Smith",
        "preparer_date": "2026-03-22",
        "primary_data_points": ["waste_weight_manifest"],
        "proxy_data_points": ["vehicle_mileage_estimated", "ppe_consumption_standard_rate"],
        "notes": "Vehicle mileage from dispatch records. PPE from standard Cat 2/Class 3 rate."
      }
    }

    How Commercial Clients Receive and Use RCP Data

    Understanding how the receiving end processes RCP data helps contractors format and time their delivery correctly. The workflow differs by client type:

    GRESB-reporting clients aggregate contractor Scope 3 data annually for their GRESB Real Estate Assessment submission (typically due in July). They need all vendor data by May or June for the prior calendar year. For these clients, RCP records should be delivered at job close-out and stored — don’t wait for the client to request them. The GRESB-ready delivery format is either a structured CSV with standardized column headers or JSON records that their ESG platform (Measurabl, Deepki, Yardi Elevate, Atrius, or similar) ingests directly.

    CDP Supply Chain program participants send annual questionnaires to their suppliers requesting Scope 3 data. Restoration contractors who receive a CDP Supply Chain questionnaire from a commercial client should be able to pull RCP records for all jobs at that client’s properties during the reporting period and aggregate them into a single portfolio total.

    California SB 253 reporters (companies with California revenues over $1 billion) must report Scope 3 for their 2026 emissions in 2027. Their data collection process is just now being built. Contractors who can deliver machine-readable RCP records position themselves as low-friction vendors in a procurement process that is about to become more carbon-data-intensive.

    LEED O+M certified properties may request contractor emissions data as part of their LEED for Operations and Maintenance documentation. The RCP Job Carbon Report maps directly to the third-party contractor energy and emissions data section of the LEED O+M credit requirements.


    Delivery Timing and Retention Requirements

    The RCP recommends the following delivery and retention standards for Job Carbon Reports:

    • Delivery timing: Within 30 days of job close-out for standard commercial losses. Within 14 days for jobs over $100,000 in scope where the client has indicated ESG reporting needs.
    • Record retention: Contractors should retain all source data (job logs, manifests, GPS records) for a minimum of seven years. ESG disclosures may be subject to third-party verification up to five years after initial reporting.
    • Versioning: If a Job Carbon Report is corrected after initial delivery (e.g., a waste manifest weight is updated), issue a revised report with a version increment and note documenting what changed and why.
    • Format: Both PDF and JSON formats are valid. JSON is preferred for clients using ESG data management platforms. Contractors who cannot produce JSON should at minimum deliver a structured CSV using the RCP field names from the schema.

  • The 12 Data Points Every Restoration Job Ticket Needs for Scope 3 Compliance

    The most common objection restoration contractors raise to Scope 3 emissions reporting is that it requires tracking data they don’t have. In most cases, the data exists — it’s just not being retained in a form usable for emissions calculation. The RCP 12-point standard formalizes what every job ticket should contain.

    Group 1: Transportation Data (Category 4)

    Data point 1 — Vehicle log: For each vehicle used (crew vehicles, equipment trailers, pack-out trucks, heavy equipment), record vehicle type, number of round trips to the job site, and round-trip mileage. Source: dispatch records, GPS fleet data, or driver logs.

    Data point 2 — Waste transport log: Separately from crew/equipment transportation, record vehicle type, trips, and mileage for all waste hauling — to landfills, transfer stations, hazmat facilities, or wastewater treatment facilities. Often omitted from job documentation when waste hauling is subcontracted, but emissions belong to the job regardless.

    Data point 3 — Equipment power source: Document whether drying/filtration/processing equipment operated on building electrical supply or contractor-supplied generators. If generators, record fuel type and quantity consumed. Determines whether equipment energy is Scope 2 (building electricity, property owner) or included in contractor’s Scope 3 calculation.

    Group 2: Materials Data (Category 1)

    Data point 4 — Chemical treatments log: Volume of each chemical product applied: antimicrobials (liters by product type), biocides, encapsulants, deodorizing compounds, wetting agents. Can be estimated from square footage and application rate if purchase records are not job-specific.

    Data point 5 — PPE consumption log: Units of disposable PPE consumed: Tyvek suits, gloves (pairs), N95/P100 respirators, boot covers, eye protection. Can be reconstructed from supply orders or estimated from job duration and crew size using standard consumption rates.

    Data point 6 — Containment materials log: Meters of polyethylene sheeting, number of zipper doors installed, HEPA filter media units replaced. Primarily relevant for mold remediation, hazmat abatement, and Category 3 water damage.

    Group 3: Waste Data (Category 5)

    Data point 7 — Debris volume by waste category: Weight or volume by category: standard C&D debris (tons), regulated hazardous materials (tons by type), contaminated water (liters or gallons). Source: disposal facility receipts, dumpster manifests, or tank/extractor volume logs.

    Data point 8 — Disposal method and facility: For each waste category, record the disposal facility used and disposal method (landfill, recycling, hazmat incineration, wastewater treatment). Facility name is sufficient — national average emission factors apply where facility-specific factors are unavailable.

    Group 4: Demolished Materials (Category 12) and Context

    Data point 9 — Demolished materials log by type: Weight of each building material type removed: drywall (tons), flooring by type, insulation by type (tons), wood framing (tons). Source: demolition scope documentation, dumpster weight receipts.

    Data point 10 — Installed replacement materials (reconstruction only): Weight of new building materials installed if reconstruction is within the contractor’s scope. Available from purchase orders or materials delivery receipts.

    Data point 11 — Job classification: Job type, damage category/class, affected area in square feet, building construction type (pre/post-1980 for hazmat assumptions).

    Data point 12 — Job timeline: Start date, completion date, client property identifier. Assigns emissions to the correct reporting year and property for portfolio-level Scope 3 inventory.

    What if some data points are unavailable?

    Use RCP’s proxy estimation methodology — standard consumption rates by job type and damage class. Document which data points were estimated and the basis for each estimate. A documented estimate is far more useful to your client than no data.

    Who should be responsible for capturing these data points?

    Data points 1-3 and 11-12 at the project management level. Data points 4-10 may require field crew input. Designating a data capture owner at job setup and building capture into the close-out checklist is the most reliable approach.

    Can existing job management software capture these data points?

    Most major restoration platforms (ServiceMonster, Xactimate, Jonas) can accommodate these as custom fields. The RCP will publish integration guidance for common platforms as the standard matures.


    What Good vs. Poor Data Capture Looks Like for Each Data Point

    The difference between an RCP record that passes third-party verification and one that gets flagged is almost always documentation quality, not calculation complexity. The following examples show what each data point looks like when captured well versus when it is reconstructed or estimated poorly.

    Data Point 1 — Vehicle Log

    Good: Fleet GPS system exports a trip report showing: Vehicle ID TRK-04, diesel Sprinter, 3 round trips to 1200 Commerce Blvd Sacramento, 47.2 miles per round trip, 141.6 total miles. Timestamps confirm trips align with job dates.

    Poor: “We sent two trucks, probably drove about 50 miles each way a few times.” No vehicle types, no trip count, no documentation. Requires complete reconstruction from memory — high uncertainty, won’t survive audit review.

    Data Point 2 — Waste Transport Log

    Good: Disposal facility receipt showing: Sacramento County Transfer Station, 2026-03-22, 1.8 short tons C&D debris received, facility address 8 miles from job site. Haul vehicle identified as dump truck (diesel).

    Poor: Subcontractor handled debris removal, no manifest obtained. Waste weight unknown. RCP proxy required: estimate from affected square footage using 0.75 lbs/sqft standard C&D rate. Flag as proxy in data quality section.

    Data Point 3 — Equipment Power Source

    Good: Job notes confirm equipment operated on building electrical service, Circuit 14 in mechanical room. Tenant confirmed access in writing. No generator deployed. Equipment energy excluded from contractor’s Category 4 (attributed to building owner’s Scope 2).

    Poor: Unknown whether generator was used. If generator use is unconfirmed, RCP default is to assume building power and exclude from contractor calculation, noting the assumption in data quality notes.

    Data Point 4 — Chemical Treatments Log

    Good: Field technician log: 12 liters Benefect Botanical Disinfectant applied across 2,400 sqft per IICRC protocol. Product lot number recorded. Purchase receipt available.

    Poor: “We used some antimicrobial, not sure how much.” Apply RCP proxy: 0.005 liters per sqft for Category 2 commercial job = 12 liters estimated. Flag as proxy. Note product type unknown — use default antimicrobial emission factor.

    Data Point 5 — PPE Consumption Log

    Good: Supply requisition for this job: 18 Tyvek suits, 36 glove pairs, 24 N95 respirators, 12 pairs boot covers. Matched against job crew size (3 techs × 6 days).

    Poor: No PPE tracking by job. Use RCP standard consumption rate: Category 2, Class 3, 3-tech crew × 6 days = 18 Tyvek, 36 gloves, 24 N95 (standard table). Flag as proxy rate.

    Data Point 6 — Containment Materials Log

    Good: Pre-job setup photo documentation shows poly sheeting perimeter. Close-out notes: 40 linear meters 6-mil poly, 2 zipper doors, 4 HEPA filter replacements during job.

    Poor: No containment used — Category 1 water loss, no containment required. Record as zero, not as missing data. Explicitly noting why a field is zero is different from leaving it blank.

    Data Point 7 — Debris Volume by Waste Category

    Good: Dumpster manifest: 1.5 tons drywall debris + 0.3 tons flooring debris = 1.8 tons total C&D. Weight confirmed by disposal facility ticket.

    Poor: No manifest. Estimate from demolition scope: 180 sqft drywall removed (½” = 2.2 lbs/sqft × 180 = 396 lbs = 0.20 tons), 80 sqft carpet removed (carpet weight 0.75 lbs/sqft × 80 = 60 lbs). Total proxy: 0.26 tons. Flag as estimated — significantly lower than manifest weight if heavier debris present.

    Data Point 8 — Disposal Method and Facility

    Good: All C&D debris → Sacramento County Transfer Station (municipal landfill). Hazmat materials → none (Category 1, no regulated waste). Water extraction discharged to building drain per property manager approval.

    Poor: “Trash went to the dump.” Technically usable — national average landfill emission factor applies. But facility name enables verification and future use of facility-specific factors when available.

    Data Point 9 — Demolished Materials Log by Type

    Good: Demolition scope from job file: 180 sqft drywall (½” standard) = 900 kg, 80 sqft nylon carpet = 180 kg. Source: field measurement records and material weight lookup table.

    Poor: Dumpster load size only — “one dumpster full.” Apply proxy: standard 10-yard dumpster ≈ 1.5 tons mixed C&D. No material type breakdown available. Use mixed C&D emission factor, flag as proxy.

    Data Point 10 — Installed Replacement Materials

    Good: Purchase orders from supplier: 180 sqft drywall delivered (36 sheets ½” × 4×8 = 36 × 26 kg = 936 kg), 80 sqft carpet (1 roll = 200 kg). Reconstruction within contractor scope confirmed in job contract.

    Poor: Reconstruction handled by property owner’s GC — outside contractor scope. Record as “reconstruction out of scope” with note. Do not estimate — these are the owner’s Category 1 emissions, not the contractor’s.

    Data Point 11 — Job Classification

    Good: Job type: water_damage. Damage category: 2. Damage class: 3. Affected area: 2,400 sqft. Building type: commercial office, post-1980 construction (no asbestos assumed per local building records). Classification documented at initial assessment.

    Poor: Job type recorded, damage category/class not assessed or not recorded. Without class, equipment calculation defaults to Class 2 proxy — may significantly understate or overstate actual equipment deployment. Always classify at initial assessment.

    Data Point 12 — Job Timeline

    Good: Job start: 2026-03-14 (initial response). Job completion: 2026-03-22 (final moisture readings, equipment pickup, client sign-off). Emissions attributed to Q1 2026 reporting period for client’s ESG inventory.

    Poor: Only month recorded. For portfolio-level ESG reporting, commercial clients need the ability to assign job emissions to specific reporting quarters and fiscal years. Date precision to the day is required.


    How Each Data Point Maps to the Emissions Calculation

    The following table makes the calculation pipeline explicit. Each data point feeds one or more specific emission factor applications. Software developers implementing RCP should treat this as the calculation dependency map.

    Data Point GHG Protocol Category Emission Factor Applied Output
    1 — Vehicle log Category 4 10.21 kg CO₂e/gal diesel or 8.89 kg/gal gasoline kg CO₂e, transportation
    2 — Waste transport log Category 4 0.186 kg CO₂e/ton-mile (truck freight) kg CO₂e, haul transport
    3 — Equipment power source Category 1 (if building power) or Category 4 (if generator) 0.3499 kg CO₂e/kWh (grid) or fuel factor (generator) kg CO₂e, equipment energy
    4 — Chemical treatments Category 1 2.8 kg CO₂e/liter antimicrobial (default) kg CO₂e, materials
    5 — PPE consumption Category 1 Standard rate per unit type (RCP Table 3A) kg CO₂e, materials
    6 — Containment materials Category 1 0.22 kg CO₂e/meter poly sheeting kg CO₂e, materials
    7 — Debris volume by type Category 5 0.021 tCO₂e/ton mixed C&D (EPA WARM v16) tCO₂e, waste disposal
    8 — Disposal method/facility Category 5 Selects landfill vs. recycling vs. incineration factor Factor selector, not a numeric input
    9 — Demolished materials by type Category 12 0.12 kg CO₂e/kg drywall; 5.40/kg carpet; etc. kg CO₂e, end-of-life materials
    10 — Replacement materials Category 1 Same factors as demolished materials by type kg CO₂e, materials (if in scope)
    11 — Job classification All categories Selects job-type proxy rates when primary data is unavailable Proxy rate selector
    12 — Job timeline All categories Assigns emissions to reporting period; determines equipment runtime hours Period assignment; runtime calculation input

    Building Data Capture Into Your Job Management Workflow

    The most reliable RCP implementations don’t ask techs to fill out extra forms — they build data capture into the existing job workflow. Three integration points cover most of the 12 data points without adding steps:

    At job setup (Data Points 3, 11, 12): Job classification, power source determination, and start date are all known at mobilization. These should be required fields in the job creation screen of any job management system.

    At daily monitoring check-in (Data Points 1, 3): GPS fleet data or odometer entry captures vehicle mileage passively. Equipment runtime hours accumulate between setup and retrieval timestamps already recorded in the system.

    At job close-out (Data Points 2, 4, 5, 6, 7, 8, 9, 10, 12): The close-out checklist is the natural capture point for waste manifests, material quantities, PPE counts, and completion date. Adding RCP fields to the close-out checklist is the single highest-impact implementation step.

    Platforms that implement close-out checklist capture for RCP data — Encircle, PSA, Dash, and Xcelerate among them — can produce a complete 12-point RCP record as a byproduct of normal job documentation. No additional technician training is required beyond knowing what the fields mean.