Methodology & Guide
Understanding the calculations, AI drafting, and limitations of the FitRep Calculator.
The Communication Gap
For Reporting Seniors (RS), Relative Value (RV) and Section I comments are two of the most important components of Fitness Reports considered by selection boards. Yet, Reporting Seniors currently operate with a significant blind spot: they cannot see the projected RV of a report before submitting it.
This creates a communication gap. While the RS communicates performance via raw attribute scores, the selection board interprets performance via Relative Value. As noted in Baker and Kwan’s 2015 Marine Corps Gazette article, “Miscalculating Performance,” the RV calculation is more complicated and nuanced than most realize. This can lead to unintentional miscommunications that negatively impact the evaluation process.
The Solution: This tool bridges that gap by estimating Relative Value in real-time. It requires no downloads, no PDF imports, and no maintenance of complex Excel trackers.
The intended workflow is for the RS to score reports per the PES first, then use this tool to confirm the Board will interpret the report exactly as intended.
The Relative Value Engine
To get the most out of this tool, users must understand how the engine handles data processing and precision.
1. The "Precision Gap" (Rounding Errors)
Your Official Military Personnel File (OMPF) rounds all report values to two decimal places. This creates a precision issue when using them for calculations. The tool handles this in two ways:
- Reverse-Engineering the Profile High: The tool takes your rounded Profile High (e.g., 4.08) and compares it against a lookup table of all possible raw scores (e.g., 53 points divided by 13 attributes). This allows us to recover the full-precision value for accurate calculation.
- Range-Bound Profile Averages: Because a Profile Average is an aggregate of many reports, we cannot "reverse engineer" it to a single precise number. Instead, the tool calculates the minimum and maximum possible RV based on the rounding error. This provides you with a transparent accuracy range, ensuring you aren't misled by a single, potentially inaccurate number.
2. Processing Order
The algorithm assumes MMRP processes reports in the linear order they are received, without regard to end date or reporting occasion. Actual RV at processing values may differ depending on MMRP’s actual processing order. However, Cumulative RV would not be affected.
Best Practice: If analyzing multiple reports, enter them in the chronological order you intend to submit them and focus on Cumulative RV.
3. The Formula
The tool uses the standard algorithm to project Relative Value:
$$ RV = \begin{cases} 0, & \text{if reports} < 3 \\ 90, & \text{if reports} \ge 3 \text{ and } \text{High} = \text{Avg} \\ \max\left(80, 90 + 10 \times \frac{Rpt_{avg} - RS_{avg}}{RS_{high} - RS_{avg}}\right) \end{cases} $$AI-Assisted Drafting
A common complaint from selection boards is that narrative comments do not align with the report score. The drafting assistant addresses this by using your projected RV to draft comments that align in tone with that score.
How it Works: Example-Based Prompting
The tool uses a technique called example-based prompting. It selects from publicly available examples (similar to those provided to new officers at TBS) that align with your calculated RV. It then feeds these examples to the Large Language Model (LLM) alongside your selected attributes to generate a draft.
Prompt structures are dynamically adjusted based on the selected model. The comprehensive prompt displayed in the UI is optimized for large foundation models (like GPT-4). If you select the open weight or local model options, the tool automatically simplifies the instructions to align with that model's reasoning capabilities and context window.
Considerations
- Words Have Meaning: Effective narratives require more than just statistical alignment with Relative Value. We strongly recommend reviewing LtCol Tierney’s 2019 Gazette Article, “Words Have Meaning – Are you aware of what you are writing?” for a detailed discussion on Section I writing technique. It is your responsibility to communicate accurate information—do not offload this to a machine.
- Experimental Feature: This feature is currently experimental. It is set up to query three tiers of language models to compare capabilities and cost:
- Local: Requires Local Deployment. Not available in the web app; you must clone the repository from GitHub. Designed for advanced users to run small (7b-8b) parameter models offline on a personal PC.
- Open Weight: Requires Local Deployment. Not available in the web app; you must clone the repository from GitHub. Configured to interface with open-source models via Hugging Face, demonstrating that expensive commercial foundation models are not the only option.
- Foundation: The primary online option. The tool uses OpenAI’s API to query
gpt-4o-minifor narrative generation.
The purpose of providing these options is to compare capabilities and cost across different architectures. While foundation models are typically more expensive to access via API, a centralized interface like this tool could offset costs through efficient token usage and provide better force-wide standardization. Alternatively, self-hosting open weight models could offer a more economical solution where infrastructure permits. Finally, the ability to run small, local models is particularly relevant for expeditionary units operating in austere environments. This tool provides a controlled venue to experiment with these trade-offs on a standardized use case.
Privacy & Security
This tool is designed to be used without identifying information. The app runs in Streamlit’s Community Cloud.
- No Persistent Storage: Data entered is processed in temporary memory and is not saved to any database. All inputs are erased immediately upon refresh or when the session ends.
- API Transmission If you use the AI Drafting feature, the specific data required for the draft (accomplishments and user context) is transmitted to the LLM provider (e.g., OpenAI) for processing. Per OpenAI's API policy, this data is not used for model training.
- No Uploads: We intentionally omitted an "Upload Profile" feature to avoid handling Controlled Unclassified Information (CUI).
- Anonymity: Use fake names or placeholders. Do not enter specific CUI into the narrative generator fields.