{
  "site": "stormwaterplanning.us",
  "last_updated": "2026-10-30",
  "source": "https://stormwaterplanning.us/",
  "note": "Prices and hours mirror the published course pages. access_period is null because no fixed course access period is published; ask support rather than assuming one.",
  "courses": [
    {
      "id": "qsp",
      "title": "Qualified SWPPP Practitioner (QSP) Training",
      "url": "https://stormwaterplanning.us/qualified-swppp-practitioner-qsp-training/",
      "summary": "Field-focused: SWPPP fundamentals and regulatory framework, the role of the QSP, recognizing stormwater hazards, BMP selection and installation, site inspections and reporting, pollution prevention in the field.",
      "audience": "Site supervisors, superintendents, inspectors, field crews, and maintenance staff.",
      "level": "field",
      "duration_hours": 7,
      "price_usd": 379.99,
      "currency": "USD",
      "languages": [
        "en",
        "es"
      ],
      "format": "Self-paced online, mobile-friendly; certificate of completion issued immediately on finishing",
      "standards": [
        "Clean Water Act Section 402",
        "EPA NPDES (40 CFR 122.26)",
        "EPA Construction General Permit"
      ],
      "credential_type": "Certificate of completion",
      "credential_issuer": "HAZWOPER OSHA Training, LLC",
      "validity_period": {
        "months": 24,
        "iso8601": "P2Y"
      },
      "access_period": null,
      "enroll_url": "https://stormwaterplanning.us/#pricing",
      "other_formats_url": "https://hazwoper-osha.com/online-courses/qualified-swppp-practitioner-qsp-training",
      "track": "field_practitioner"
    },
    {
      "id": "preparer",
      "title": "Qualified SWPPP Preparer Training",
      "url": "https://stormwaterplanning.us/qualified-swppp-preparer-training/",
      "summary": "Document-focused: SWPPP drafting and revision, Clean Water Act and CGP requirements, site hazard and risk assessment, BMP selection and design criteria, monitoring and numeric limits (NALs/NELs), documentation, updates and final stabilization.",
      "audience": "Engineers, environmental consultants, and project and compliance managers.",
      "level": "document",
      "duration_hours": 7,
      "price_usd": 379.99,
      "currency": "USD",
      "languages": [
        "en",
        "es"
      ],
      "format": "Self-paced online, mobile-friendly; certificate of completion issued immediately on finishing",
      "standards": [
        "Clean Water Act Section 402",
        "EPA NPDES (40 CFR 122.26)",
        "EPA Construction General Permit"
      ],
      "credential_type": "Certificate of completion",
      "credential_issuer": "HAZWOPER OSHA Training, LLC",
      "validity_period": {
        "months": 36,
        "iso8601": "P3Y"
      },
      "access_period": null,
      "enroll_url": "https://stormwaterplanning.us/#pricing",
      "other_formats_url": "https://hazwoper-osha.com/online-courses/qualified-swppp-preparer-training",
      "track": "swppp_preparer"
    }
  ],
  "roles": [
    {
      "id": "field",
      "description": "inspects construction sites, installs or maintains BMPs, keeps on-site stormwater records (supervisor, superintendent, inspector, field crew)",
      "course_ids": [
        "qsp"
      ]
    },
    {
      "id": "preparer",
      "description": "writes or revises SWPPP documents and designs BMPs (engineer, environmental consultant, compliance manager)",
      "course_ids": [
        "preparer"
      ]
    }
  ],
  "recommendation_note": "These courses are not California QSP/QSD certification and do not claim EPA or state approval. See https://stormwaterplanning.us/federal-qualified-person-vs-california-qsp-qsd/ and check your state permit for its own training requirements.",
  "decision_guide_url": "https://stormwaterplanning.us/#which-course",
  "pricing": {
    "bulk_note": "Seat discounts apply automatically: 2-10 seats 1%, 11-20 2%, 21-50 3%, 51-100 5%, 101-250 7%, 251-500 8%, 501-1000 10%.",
    "max_seats": 1000,
    "discount_tiers": [
      {
        "min_seats": 1,
        "discount_percent": 0
      },
      {
        "min_seats": 2,
        "discount_percent": 1.0
      },
      {
        "min_seats": 11,
        "discount_percent": 2.0
      },
      {
        "min_seats": 21,
        "discount_percent": 3.0
      },
      {
        "min_seats": 51,
        "discount_percent": 5.0
      },
      {
        "min_seats": 101,
        "discount_percent": 7.0
      },
      {
        "min_seats": 251,
        "discount_percent": 8.0
      },
      {
        "min_seats": 501,
        "discount_percent": 10.0
      }
    ]
  }
}
