Google Sign-In Required

Use your company Google account to access the BetterFleet private content.

Back to private home

BetterFleet Support Private
Skip to content
BetterFleet Dev Wiki
Worked Example
Initializing search
    bf-dev
    • Home
    • Process
    • Products
    • Reference
    • Decisions
    • Work
    • Operations
    bf-dev
    • Home
      • Process Handbook
      • BetterFleet Workflow Map
      • Product Development System
      • Product Engineering Workflow
        • Process Workflows
        • Work Intake and Weekly Planning
        • Product Engineering Workflow in Linear
        • Product Engineering Delivery
        • Agent Guidance
        • Workflow
        • Skills
        • Skill Sources
        • Process Guides
        • GitLab Feature Flags
        • In-App Docs Authoring
        • Release Notes
        • Process Templates
        • Release Plan: <title>
      • Process Publishing
      • Product overview
        • General Reference
          • Core Domain Training
          • System Topology
          • Two-Axis Ontology Model
          • Ontology Primer
          • Worked Example
            • Scenario
            • End-To-End Flow
            • Event Timeline
            • Coordinate Classification
            • Implementation Touchpoints
            • What This Example Teaches
          • Evidence, Ownership, and Lineage
          • Energy Management
          • Standards and Protocol Map
          • Charging, Roaming, and Commercial Model
          • Charge Planning and Operations
          • Cross-Cutting Domains
          • Domain Coverage Matrix
        • BetterFleet Product Ontology
        • Core Operations Data Ontology
        • BetterFleet R&D Plan
        • Index
        • Architecture
        • Manage Product Capabilities
        • Manage Data and State
        • Manage Service Interaction Flows
        • Manage Reference
        • Manage Internal Application Diagrams
          • Manage Authorization And Permissions
          • bf-manage-core Auth and Authorization Model
          • Manage Authorization and Permissions
          • bf-manage-web Auth and Permission Model
          • Manage Service Catalog
          • bf-depot-sim
          • bf-digital-twin (Manage Role)
          • bf-fleet-health
          • bf-manage-connect
          • bf-manage-core
          • bf-manage-incidents
          • bf-manage-roaming
          • bf-manage-sitepwrmon
          • bf-manage-web
          • bf-schedule-creator (Manage Role)
          • bf-support-microsite
          • bf-telematics
        • Index
        • Architecture
        • Plan Reference
        • Plan Internal Application Diagrams
        • Plan Migration and Flags
        • Plan Simulation Request Lifecycle
          • Plan Service Catalog
          • bf-bnl-schedule-analysis-compute
          • bf-bnl-settings
          • bf-bnl-ui
          • bf-digital-twin (Plan Role)
          • bf-route-modelling
          • bf-schedule-creator (Plan Role)
      • Where to Ask Product Questions
      • Reference
        • Platform Reference
        • Platform Architecture
        • Script Runtime Model
        • Compose Profiles and Modes
        • Repository Map
        • Monolithic Git Transition FAQ
        • Monolithic Git Sizing
        • CI and Release Integration
        • Shared Reference
        • Shared Infrastructure Architecture
        • Secrets and Env Strategy
        • Vendors and Local Dependencies
        • System Reference
        • Cloud Data Dependencies
        • Ports and URLs
        • Service Matrix
          • API Docs
          • OCPI API Docs
          • OCPP API Docs
          • OSCP API Docs
          • VDV API Docs
          • Yard State API Docs
        • System Design
        • System Design: BBA Microgrid Controller Generic Packet Translation
        • System Design: Depot Simulation
        • System Design: IoT Sensor Packet
        • System Design: Microgrid Energy Orchestration
          • System Design: OCPP Profile 3 And ISO 15118 PKI
          • Architecture: BetterFleet OCPP Profile 3 and ISO 15118 PKI
          • Specification: BetterFleet OCPP Profile 3 and ISO 15118 Certificate Lifecycle Management
          • System Design: On-Prem Control
          • Challenge
          • Specification: BetterFleet On-Prem Continuity Control
          • System Design: OSCP
          • OSCP Protocol Documentation
          • Depot Sim Testing Requirements
          • System Design: OSCP Flexibility Provider Domain
      • Decisions
        • Architecture Decision Records
        • 0001 - Record architecture decisions
        • 0002 - Cognito for Authentication and Authorisation
        • 0003 - AWS Amplify for Authentication
        • 0004 - DynamoDB for default database
        • 0005 - Data Persistence
        • 0006 - Trunk-Based Development
        • 0007 - Generalised principle for automation
        • 0008 - Naming Repositories, Services, and URLs
        • 0009 - Use Timezone Aware DateTimes and UTC
        • 0010 - Use semantic release
        • 0011 - Centralized feature flag repository
        • 0012 - Use Named Exports in Storybook
        • 0013 - RESTful TITLE GraphQL
        • 0014 - Service Granularity
        • 0015 - Async/co-routine exception handling pattern
        • 0016 - Logging & log levels
        • 0017 - Instantiated Models
        • 0018 - Repository Pattern for Database Access
        • 0019 - Use of Design Tokens in TypeScript React Application
        • 0020 - API backwards compatibility and versioning
        • 0021 - Alembic Migration strategy
        • 0022 - Consistent react-hook-form usage
        • 0023 - Domain Event-Driven Architecture
        • 0024 - Domain Event Bus Tech Stack
        • 0025 - No enum types in DB table columns
        • 0026 - In-Memory Ormar Stores for Repository testing
        • 0027 - Storing Tab State in Query and Local Storage
        • 0028 - Adopt OpenTelemetry Semantic Conventions for Structured Logging
        • 0029 - Adopt RFC 9457 for HTTP Error Responses
        • 0030 - Use GitLab registry and Terraform state for ECS services
        • 0031 - Adopt DDD, Hexagonal Architecture, and CQRS for Python Domain Services
      • Work
        • Active Work
          • Work: Bba Microgrid Controller
          • Implementation Specification: BBA Microgrid Controller
          • BBA Microgrid Controller Deliverables (Stories)
          • Work: BFDev Monolithic Git
          • Challenge
          • Specification: BFDev Monolithic Git v2
          • BFDev Monolithic Git v2 Stories
          • Work: Complex Circuit Load Balancing
          • Implementation Specification: Complex Circuit Load Balancing
          • Complex Circuit Load Balancing Deliverables (Stories)
            • COR-10 and COR-11 Consolidation Review
          • Work: Dispatch Reliability and Reconciliation
          • Challenge
          • Specification: Dispatch Reliability and Reconciliation
          • Dispatch Reliability and Reconciliation (Unit User Stories)
            • Dispatch populated vehicle cards grey surface snapshot
            • Dispatch Visual Review
          • Work: Enable Scheduled Managed Charger Access
          • Challenge: Enable Scheduled Managed Charger Access
          • Specification Exploration Dossier: Enable Scheduled Managed Charger Access
          • Specification Review: Enable Scheduled Managed Charger Access
          • Specification: Enable Scheduled Managed Charger Access
          • Work: Guided Cut-Off and Release Orchestration
          • Specification: Guided Cut-Off and Release Orchestration
          • Guided Cut-Off and Release Orchestration (Unit User Stories)
          • Work: Production Deployment Validation
          • Challenge
          • Work: Scheduled Report Parity
          • Specification: Scheduled Report Parity
          • Work: Telematics
          • Telematics EventBridge Path
          • Telematics Ingress Architecture
          • Specification: Telematics Migration into bf-manage-core with 5-Minute Freshness and Health Visibility
          • Telematics Core Migration MVP (Implementation-Time BDD)
          • Work: Vector Derms
          • Implementation Specification: Vector DERMS
          • Vector DERMS Deliverables (Stories)
          • Work: Visiting Vehicle Charging Visibility
          • Specification: Visiting Vehicle Charging Visibility
          • Visiting Vehicle Charging Visibility (Unit User Stories)
          • Work: Workspace Owned Stripe Roaming
          • Specification: Workspace-Owned Stripe Credentials for Roaming Payments
        • Backlog Work
          • Work: Microgrid
          • Microgrid Backlog Stories
          • Work: Mobile Ops Companion
          • Challenge
          • Specification: Mobile Operations Companion v1
          • Mobile Operations Companion Deliverables (Stories)
          • Work: Oscp
          • OSCP Backlog Stories
        • Archived Work
          • Work: Code Canonical Orchestration
          • Challenge
          • Specification: Product Engineering Workflow
          • Product Engineering Workflow Deliverables (Unit User Stories)
          • Work: Release Notes Automation
          • Release Plan: Release Notes Automation
          • Release Notes Automation Backlog Stories
      • Operations
      • Onboarding Runbook
        • Operations Runbooks
        • Production Hotfix Release
        • Staging Hotfix Release
        • Manage Staging Release Validation
        • Terraform Plan Dry Runs
        • Operations Tooling
        • Code Indexing
        • Operations Evidence
        • Database Restoration Test Report
      • Daily Operations Runbook
      • Testing Guide
      • Troubleshooting
    • Scenario
    • End-To-End Flow
    • Event Timeline
    • Coordinate Classification
    • Implementation Touchpoints
    • What This Example Teaches
    1. Home
    2. Products
    3. General
    4. Core Domain Training
    general reference

    Worked Example¶

    This example carries one charging outcome through the whole model. Use it when the ontology feels abstract.

    Scenario¶

    A depot imports tomorrow morning's work. Vehicle BUS-142 must leave at 06:20 with enough charge to complete its first block plus reserve. Overnight, the site receives a lower-capacity grid signal. Smart charging must still make the vehicle ready, keep the site within limits, and preserve evidence for support, reporting, and any commercial allocation.

    End-To-End Flow¶

    flowchart LR
      Schedule["Schedule import<br/>route, block, duty, departure"]
      Work["work<br/>first morning block"]
      Vehicle["vehicle<br/>BUS-142 state and capability"]
      Requirement["energy requirement<br/>target SoC, kWh, deadline, reserve"]
      Envelope["operating envelope<br/>lower site capacity window"]
      EnergySystem["energy system<br/>microgrid, chargers, meters, limits"]
      Allocation["charging allocation<br/>who charges, where, when, power"]
      Command["charger command<br/>profile or limit"]
      Session["charging session<br/>meter and status evidence"]
      Readiness["readiness outcome<br/>met, missed, or at risk"]
      Incident["incident / support state<br/>fault, stale data, missed charge"]
      Commercial["commercial record<br/>tariff, cost allocation, CDR if needed"]
      Report["reporting projection<br/>cost, carbon, reliability, proof"]
    
      Schedule --> Work
      Work --> Requirement
      Vehicle --> Requirement
      Requirement --> Allocation
      Envelope --> EnergySystem
      EnergySystem --> Allocation
      Allocation --> Command
      Command --> Session
      Session --> Readiness
      Session --> Commercial
      Session --> Report
      Readiness --> Report
      EnergySystem --> Report
      Session --> Incident
      Incident --> Report

    Event Timeline¶

    sequenceDiagram
      participant Plan as Schedule / planning source
      participant Core as BetterFleet domain layer
      participant Grid as Grid or flexibility source
      participant SC as Smart charging
      participant CSMS as CSMS / Connect boundary
      participant Charger as Charging station
      participant Reports as Reports / support views
      participant Commercial as Commercial allocation
    
      Plan->>Core: work schedule imported
      Core->>Core: energy requirement calculated
      Grid->>Core: capacity constraint received
      Core->>Core: operating envelope applied to energy system
      SC->>Core: request feasible charging allocation
      Core->>SC: allocation with lineage to work and envelope
      SC->>CSMS: set charging profile or limit
      CSMS->>Charger: OCPP command
      Charger->>CSMS: status and meter evidence
      CSMS->>Core: session and charger-state events
      Core->>Reports: readiness, cost, carbon, and reliability projections
      Core->>Commercial: tariff or CDR input if the session needs billing/settlement

    Coordinate Classification¶

    Moment Problem coordinate Physical coordinate Core concept Main standards or feeds
    Schedule arrives Operations & Dispatch -> Depot & Integration route, block, duty, vehicle, depot, time work VDV 452, VDV 462/NeTEx, GTFS, TransXChange
    Readiness target is calculated Operations & Dispatch -> Dispatch & Scheduling vehicle, battery, block, departure, reserve energy requirement VDV 463 if an upstream system sends charging requests
    Grid capacity changes Energy & Cost Management -> Advanced Energy & Grid grid connection, microgrid node, time window energy system OSCP, OpenADR, DERMS feeds
    Allocation is planned Smart Charging -> Load Management vehicle, charger, connector, site capacity, time charging OCPP charging profiles, site telemetry
    Charger executes Smart Charging -> Charger Control charging station, EVSE, connector, meter, vehicle charging, vehicle activity OCPP, ISO 15118 where available
    A charger fault appears Incidents & Notifications -> Detection charger, EVSE, connector, comms path, time failure projection OCPP status, diagnostics, telemetry freshness
    Readiness is shown Reporting & Insights -> Operational Dashboards depot, vehicle, charging session, work deadline read model projections from work, session, telemetry, incident state
    Cost or settlement is produced Roaming & Shared Charging -> Commercial Settlement & Shared Charging session, tariff, meter, invoice, party, time commercial record OCPI, OICP, OCMF, payment systems

    Implementation Touchpoints¶

    Surface Role in this example Main thing to protect
    bf-schedule-creator Converts source schedule formats into operations-ready work context. Work identity and time validity.
    Plan Tests whether future work can be done with candidate fleet, charger, and grid capacity. Scenario assumptions and planning horizon.
    Manage domain services Own live operational state, readiness, charging meaning, and reporting projections. Domain boundaries and lineage.
    Microgrid / energy model Owns topology, limits, envelopes, and supply-side quality state. Protocol-neutral constraint state.
    Smart charging Turns requirements and constraints into charger allocations. Feasible, auditable control decisions.
    Connect / CSMS boundary Translates domain decisions to charger protocol messages and charger evidence back to the domain. Adapter isolation and raw evidence retention.
    Roaming / commercial services Attach access, tariff, CDR, payment, or allocation meaning where needed. Separation between physical energy transfer and commercial settlement.
    Reports and support Explain outcome, failure, cost, carbon, and readiness with traceable evidence. Rebuildable projections and support-grade reasoning.

    What This Example Teaches¶

    • One physical charging session can support operations, energy, incidents, reporting, and commercial views.
    • The domain owner changes with the decision being made.
    • Standards are input and output boundaries; BetterFleet concepts sit in the middle.
    • Reports and support views need lineage back to work, envelope, allocation, command, meter, and session evidence.
    Made with Material for MkDocs
    BFDev Docs Assistant
    New conversation?
    Ask one focused question at a time, this helps the assistant provide accurate answers about what's been implemented in BetterFleet.