The field guide coaches pull out of the bag before first pitch — step-by-step diagrams for the exact situations that decide close games, so your team stops guessing and starts executing.
Rated 4.6★ on Amazon (125+ reviews) and 4.8★ on TikTok Shop (160+ reviews)
The Defensive Situations Guide
Real pages from the guide — every situation diagrammed and assigned by position.
40
Game Situations
125+
Amazon Reviews · 4.6★
160+
TikTok Shop Reviews · 4.8★
30-Day
Money-Back Guarantee
The gap
Same drills. Different results on game day.
What changes between a team that freezes and a team that reacts isn't talent — it's whether every player already knows the read before the ball is hit.
Game Situation
✕ Without the guide
✓ With the guide
Runner on 2nd, ball to the gap
Outfielders unsure who backs up
Cutoff and backup positions locked in
Bunt with runners on
Confusion, blown coverage
Every player knows their assignment
New assistant coach joins staff
Teaches the read differently
Same script, same read, day one
Parent asks "what's he working on?"
Vague, hard to answer
Clear situation, clear progress
Routine popup between two fielders
Both players wave off, ball drops
Clear call-off rules, no confusion
What's inside
40 situations. Every position. One clear read for each.
The core coverages that come up every single game — diagrammed and assigned by position, so you can flip straight to the play you're teaching today.
BUNT
Bunt coverage
Who covers, who charges, and where the throw goes — for every infield alignment.
POP UP
Popup priority
Clear call-off rules by position, so two players never chase the same ball.
CUTOFF
Cutoffs and relays from the gap
Exact positioning for the cutoff man and the backup on a ball hit to any outfield gap.
BACKUP
Backup assignments for every position
Who backs up who on every throw, so a missed catch or bad hop doesn't turn into extra bases.
Built for your whole dugout
One guide, three ways to use it.
FOR COACHES
Run every practice off the same playbook
Cut down repeated corrections mid-game
Hand new assistant coaches a script on day one
FOR PLAYERS
See the exact spot to stand before the pitch
Build reads faster with clear diagrams, not just drills
Walk into tryouts already speaking the language
FOR PARENTS
Help at backyard practice without guessing
Understand what the coach is asking for
Give a gift a player will actually use
Reviews
What buyers say after using the guide.
★★★★★
"Highly recommend — definitely a benefit to any baseball team. Great defense strategies, worth the money, and easy to use with clear illustrations."
GAYLA SORRENTINO — Verified Amazon Purchase
★★★★★
"Great resource for kids learning the game. Great for parents as well. The kids are absorbing the knowledge, even coaching up teammates to their roles."
CALEY SHACKELFORD — Verified Amazon Purchase
★★★★★
"It's very hard to know all of the proper backup positions, let alone the time to coach them to each player. So we can give this to our players."
NICK — Verified Amazon Purchase
★★★★★
"Perfect to help organize the dugout! Can be used year after year!"
HEATHER J — Verified Amazon Purchase
★★★★★
"My son absolutely loves this book! It is easy for him to understand, the pictures are big, and he even shares it with his teammates at practice."
V4VALENTINA — Verified Amazon Purchase
★★★★★
"Great tool for younger players to learn defensive plays and where to go every play!"
HOLLY R HERRON — Verified Amazon Purchase
★★★★★
"The defensive situations are laid out in an easy-to-follow format, and the diagrams make it simple for both coaches and kids to understand their roles."
CHARLI DARBYSHIRE — Amazon review
★★★★★
"Exactly what we needed to help our team understand defensive situations. The layouts are super clear, and each situation is explained easily enough that our players understand."
KELLY KAY — Amazon review
Two ways to get it
Get the guide in your hands today.
Best Value
Baseball IQ Bundle
$67
Both guides, spiral-bound, one purchase — everything your team needs to read the whole game, not just the defensive side.
Use the guide for a full 30 days. If your team isn't reading situations more confidently, just contact us for a full refund — no forms, no hassle.
Order today — free shipping, ships in less than 2 business days.
Before you order
Questions coaches ask us most.
What age or level is this guide for?
Built for coaches and players from 10U through high school, including travel and rec ball. The situations and reads are the same at every level — what changes is the speed of the game, and the guide notes where to adjust for younger players.
Spiral guide vs. the Baseball IQ Bundle — which do I need?
Choose the Spiral-Bound Guide if you only need the Defensive Situations Guide, printed and spiral-bound for the dugout bag. Choose the Baseball IQ Bundle if you want both the Defensive and Base Running guides, both spiral-bound, for the full picture of the game — not just the defensive side.
How fast do I get access?
Both the Baseball IQ Bundle and the Spiral-Bound Guide are printed, spiral-bound copies — both ship free, in less than 2 business days.
What if my team doesn't improve?
You're covered by the 30-day guarantee on every format. If it's not helping your team read situations more confidently, email us within 30 days for a full refund.
Is this a one-time purchase?
Yes — no subscription. You pay once and keep the guide (and any future digital updates) for good.
Ready when you are
Give your team a read for every situation.
Backed by a 30-day money-back guarantee. Free shipping, ships in under 2 days.
// ===== Skip-cart checkout flow =====
// Requires this PHP snippet on the WordPress side (functions.php or a snippet plugin):
//
// add_action( 'init', function () {
// if ( isset( $_GET['buy_now'] ) && is_numeric( $_GET['buy_now'] ) ) {
// $product_id = absint( $_GET['buy_now'] );
// WC()->cart->empty_cart();
// WC()->cart->add_to_cart( $product_id );
// if ( isset( $_GET['bump'] ) && is_numeric( $_GET['bump'] ) ) {
// WC()->cart->add_to_cart( absint( $_GET['bump'] ) );
// }
// wp_safe_redirect( wc_get_checkout_url() );
// exit;
// }
// } );
function buyNow(productId, bumpCheckboxId) {
let url = '/?buy_now=' + encodeURIComponent(productId);
if (bumpCheckboxId) {
const bump = document.getElementById(bumpCheckboxId);
if (bump && bump.checked && bump.dataset.bumpId) {
url += '&bump=' + encodeURIComponent(bump.dataset.bumpId);
}
}
window.location.href = url;
return false;
}
// ===== Live purchase activity toast =====
// IMPORTANT: this array is intentionally EMPTY. Do not fill it with made-up
// names, cities, or timestamps — fabricated "recent purchase" notifications
// are a deceptive dark pattern. To use this feature honestly, wire it to
// real order data: e.g. a small WP REST endpoint that returns the last
// 10-20 real orders, fetched here with
// fetch('/wp-json/mba/v1/recent-orders').then(...).
// Until that's wired up, this component stays silent by design.
const recentActivity = [
// { name: "Real Customer Name", detail: "City, State · X min ago · Baseball IQ Bundle" }
];
function showActivityToast() {
if (!recentActivity.length) return; // no fabricated data — stays off
const toast = document.getElementById('activityToast');
const item = recentActivity[Math.floor(Math.random() * recentActivity.length)];
document.getElementById('activityToastName').textContent = item.name;
document.getElementById('activityToastDetail').textContent = item.detail;
toast.classList.add('show');
setTimeout(() => toast.classList.remove('show'), 5000);
}
setInterval(showActivityToast, 15000);
var iconic_wsb_frontend_vars = {"ajax_url":"/wp-admin/admin-ajax.php","nonce":"dbfd319f93","fbt_use_ajax":"1","is_checkout":"","i18n":{"error":"Please Try Again","success":"Added to Cart","add_selected":"Add Selected to Cart","disabled_add_to_cart":"Please select a variation before adding the selected products to your cart."},"modal_options":{"showCloseBtn":false}};
//# sourceURL=iconic_wsb_frontend_scripts-js-extra
jQuery(document).ready(function(){
jQuery(".pb_img_thumbnail").on("click",function(){
var clikedElID = jQuery(this).attr("id");
jQuery("#pb_lightbox"+clikedElID).css("display","block");
});
jQuery(".pb_single_img_lightbox").on("click",function(){
jQuery(this).css("display","none");
});
jQuery(window).scroll();
});
(function($) {
/**
* Copyright 2012, Digital Fusion
* Licensed under the MIT license.
* http://teamdf.com/jquery-plugins/license/
*
* @author Sam Sehnert
* @desc A small plugin that checks whether elements are within
* the user visible viewport of a web browser.
* only accounts for vertical position, not horizontal.
*/
$.fn.visible = function(partial) {
var $t = $(this),
$w = $(window),
viewTop = $w.scrollTop(),
viewBottom = viewTop + $w.height(),
_top = $t.offset().top,
_bottom = _top + $t.height(),
compareTop = partial === true ? _bottom : _top,
compareBottom = partial === true ? _top : _bottom;
return ((compareBottom <= viewBottom) && (compareTop >= viewTop));
};
jQuery(document).on("click", 'a[href^="#"]', function (event) {
event.preventDefault();
var clickedLinkElAttr = jQuery(this ).attr("href");
if(typeof(jQuery(clickedLinkElAttr).offset() ) != "undefined"){
jQuery("html, body").animate({
scrollTop: jQuery(jQuery.attr(this, "href")).offset().top
}, 500);
}
});
})(jQuery);
if(typeof pluginOpsCheckElViewFrame != "function" ){
function pluginOpsCheckElViewFrame (el) {
if (typeof jQuery === "function" && el instanceof jQuery) {
el = el[0];
}
if( typeof(el.getBoundingClientRect) == "function" ){
var rect = el.getBoundingClientRect();
windowInnerHeight = window.innerHeight;
if(rect.height >= windowInnerHeight){
rect.height = windowInnerHeight - 50;
}
docClientHeight = document.documentElement.clientHeight;
if( rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (windowInnerHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth) ) {
return "InView";
}else{
return "NotInView";
}
}else{
return "Function didnt work";
}
}
}
jQuery(window).scroll();
//# sourceURL=pluginops-landingpage-scripts-inline-js-footer-js-after
document.addEventListener( 'wpcf7submit', function ( event ) {
var detail = event.detail || {};
if ( 'mail_sent' !== detail.status ) {
return;
}
var apiResponse = detail.apiResponse || {};
if ( ! apiResponse.fb_pxl_code ) {
return;
}
try {
var s = document.createElement( 'script' );
s.textContent = apiResponse.fb_pxl_code;
document.head.appendChild( s );
} catch ( e ) {
// no-op
}
}, false );
(function() {
// Always start from a fresh object: a `||` fallback would keep a same-named DOM element alive.
window.wcAnalytics = {};
const wcAnalytics = window.wcAnalytics;
// Set the assets URL for webpack to find the split assets.
wcAnalytics.assets_url = 'https://mbaseballacademy.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/woocommerce-analytics/src/../build/';
// Set the REST API tracking endpoint URL.
wcAnalytics.trackEndpoint = "https://mbaseballacademy.com/wp-json/woocommerce-analytics/v1/track";
// Set common properties for all events.
wcAnalytics.commonProps = {"ui":0,"blog_id":214105619,"store_id":"9e9485fd-e095-4895-b00c-6f417d1ee0ad","url":"https://mbaseballacademy.com","woo_version":"11.2.1","wp_version":"7.1.3","store_admin":0,"device":"desktop","store_currency":"USD","timezone":"-04:00","is_guest":1,"package_version":"0.18.0"};
// Set the event queue.
wcAnalytics.eventQueue = [];
// Features.
wcAnalytics.features = {
ch: false,
sessionTracking: false,
proxy: false,
};
wcAnalytics.breadcrumbs = ["Baseball Defensive Situations 2"];
// Page context flags.
wcAnalytics.pages = {
isAccountPage: false,
isCart: false,
};
})();
// Listen for clicks on the entire document
document.addEventListener('click', function(event) {
console.log(event.target.dataset)
// Check if the clicked element has the 'track-click' class
if (event.target.classList.contains('trk-clk-ulbp')) {
// Get the unique ID from the data-id attribute
const elementTxt = event.target.dataset.btntxt;
const elementUrl = event.target.dataset.btnhref;
// Create a FormData object to send data
const formData = new FormData();
formData.append('clicked_element_text', elementTxt);
formData.append('clicked_element_url', elementUrl);
formData.append('clicked_element_psid', 35486);
//console.log(formData.get('clicked_element_psid'));
// Use the Fetch API to send the data to our PHP script
fetch(
"https://mbaseballacademy.com/wp-admin/admin-ajax.php?action=ulpb_rc_current_usr_click&POPB_CTA_Nonce=4143ebe46f"
, {
method: 'POST',
body: formData
})
.then(response => response.text())
.then(data => {
console.log(data); // Log the response from PHP (e.g., "Success!")
})
.catch(error => {
console.error('Error tracking click:', error);
});
}
});