Files
Jason StedwellandClaude Opus 5.5 5b52636003 MPM Documentation Kit v1.3 (CW-034)
MPM Document Standard 1.3, mpmdoc build engine, templates for TN, INS, SOP,
BOM, SVY, TAP, DWG, TSB, PRO, SOW and WO (Chinese editions for TN and DWG),
glossary, MPM fonts and logos, and the mpm-technical-documents plugin 1.3.0.
Worked examples ship in the kit zip on Drive only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NWatTMmqmGatgHjDZvWs5b
2026-11-09 11:51:56 -06:00

71 lines
4.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""TEMPLATE — Statement of Work (SOW). Copy this folder to <PROJECT>/source/ and fill it in.
The contractual scope after award: what MPM delivers, how, and the payment milestones. Follows the
layout of SOW_Nashville_Replacement_Sign_S01012 (Aug 2026). 2–6 pages.
See MPM_Document_Standard.md §9.10.
Order: masthead (Customer · Quotation) → opening paragraph (parties, MSA, end customer, quotation)
→ 1.0 Scope overview → 2.0 Project deliverables (2.1 hardware + 2.1.1 priced BOM, 2.2 documentation)
→ 3.0 Scope of work (3.1 initiation … 3.n warranty) → 4.0 Project milestones → 5.0 Assumptions and
exclusions → [6.0 Acceptance: signatures, when the customer signs the SOW itself] → Revision history
Rules: prices come from the quotation; milestones(expect=doc.price_total) fails the build if the milestones
don't add up. Draft 0.x while negotiating; 1.0 = executed.
"""
import sys, pathlib
HERE = pathlib.Path(__file__).resolve().parent
sys.path.insert(0, str(next(p / "_STANDARDS" for p in HERE.parents if (p / "_STANDARDS").is_dir())))
from mpmdoc import Doc
doc = Doc(
number="SOW-MPM-SUBJ-01", rev="0.1", date="2026-11-06", customer="Partner", subject="Project",
title="Project Name",
lede="Statement of work for the scope, at the site, for the end customer.",
meta=[("Customer", "Partner, for End Customer"), ("Quotation", "S00000")],
slug="Customer_Project_SOW",
history=[("0.1", "2026-11-06", "Initial draft.")],
)
doc.add(
doc.p("This Statement of Work (SOW) is made by and between <b>Partner</b> (Customer) and <b>Message Point Media of "
"Alabama, Inc</b> (MPM), and is subject to the Master Services Agreement between Customer and MPM, whose "
"provisions are incorporated except as amended here. The work is for the benefit of <b>End Customer</b>. "
"Pricing is per MPM Quotation S00000, dated Nov 6, 2026 (expires Feb 4, 2027)."),
doc.section("1.0 Scope overview"),
doc.p("What MPM will provide, in one paragraph. Say what is <i>not</i> included when a reader might assume it is."),
doc.section("2.0 Project deliverables"),
doc.sub("2.1 Hardware deliverables"),
doc.p("MPM will procure, provision and deliver all hardware needed for the work, including:"),
doc.bullets(["Item, with the specification that matters (pitch, size, rating)."]),
doc.sub("2.1.1 Bill of materials (per Quotation S00000)"),
doc.priced([
("Hardware subtotal", [("SKU-0000", "Hardware item", 1, 10000.00), ("MNT-0000", "Mounting and bracket budget", 1, 500.00)]),
("Installation subtotal", [("SVC-INST", "Installation", 1, 2500.00)]),
]),
doc.sub("2.2 Documentation deliverables"),
doc.table([("Document", "", "32%"), ("Purpose", "")],
[["Installation Completion Report", "Confirms installation, configuration and operational verification"],
["As-built update", "Records serial numbers and redline changes"]]),
doc.section("3.0 Scope of work"),
doc.sub("3.1 Project initiation and scheduling"),
doc.p("Within ten (10) business days of award, MPM confirms points of contact, site access and the installation window."),
doc.sub("3.2 Site confirmation"), doc.p("How site conditions are confirmed, and what happens if they differ."),
doc.sub("3.3 Hardware procurement and provisioning"), doc.p("Procurement, provisioning and QA testing before delivery."),
doc.sub("3.4 Hardware delivery"), doc.p("Shipment as directed by Customer."),
doc.sub("3.5 Installation"), doc.p("Installation, configuration, content assignment. Responsibilities for power and network."),
doc.sub("3.6 Operational verification"), doc.p("Online, reporting to MP.TV, displaying assigned content."),
doc.sub("3.7 Warranty"), doc.p("MPM standard Equipment Warranty Policy (name the policy), starting at End Customer approval."),
doc.section("4.0 Project milestones"),
doc.milestones([("Production deposit", "Due on contract execution", "25% of hardware", 2625.00),
("Equipment delivery", "All hardware delivered to site", "75% of hardware", 7875.00),
("Installation completion", "Installed, verified operational, accepted", "100% of installation", 2500.00)],
expect=doc.price_total),
doc.section("5.0 Assumptions and exclusions"),
doc.bullets(["Existing power and network remain in place; changes to them are the End Customer's responsibility.",
"Excludes permits, civil work and licensing unless listed in §2."]),
doc.section("6.0 Acceptance"),
doc.signatures([("Customer", "Name, title · date"), ("Message Point Media", "Jason Stedwell, Director of Technical Services · date")]),
)
doc.build()